Amazon EKS の機能

AWS とオンプレミスで Kubernetes を簡単に実行できるマネージド Kubernetes サービス。

コンテナのスケジューリング、アプリケーションの可用性管理、クラスターデータの保存などの主要タスクを担当する Kubernetes コントロールプレーンノードの可用性とスケーラビリティを自動的に管理する。

Amazon Elastic Compute Cloud (Amazon EC2) と AWS Fargate の両方で Kubernetes アプリケーションを実行可能。

Azure の Kubernetes Service (AKS) 相当

マネージド型 Kubernetes クラスター

  • マネージド型コントロールプレーン
    • 複数の AWS アベイラビリティーゾーン (AZ) 全体で動作するスケーラブルで可用性の高い Kubernetes コントロールプレーンがある。
    • Kubernetes API サーバーと etcd 永続レイヤーの可用性とスケーラビリティを自動的に管理する。
    • 3 つの AZ にわたって Kubernetes コントロールプレーンを実行し、高可用性を確保する。また、正常に作動していないコントロールプレーンノードを自動的に検出して置き換える。
  • サービスの統合
    • AWS Controllers for Kubernetes (ACK) では、Kubernetes 環境内から AWS のサービスを直接管理制御することができる。
    • ACK を使用すると、AWS のサービスを利用するスケーラブルで可用性の高い Kubernetes アプリケーションを簡単に構築できる。
  • ホストされている Kubernetes コンソール
    • Kubernetes クラスター用の統合コンソールを提供する。
    • EKS を単一の場所として使用して、Amazon EKS で実行されている Kubernetes アプリケーションを整理、視覚化、トラブルシューティングすることができる。
    • EKS コンソールは AWS によってホストされ、すべての EKS クラスターで自動的に利用できる。
  • EKS アドオン
    • EKS アドオンは、Kubernetes の運用機能を拡張するための一般的な運用ソフトウェア。
    • オブザーバビリティ、ネットワーキング、自動スケーリング、AWS のサービス統合のための Kubernetes ツールが含まれる。
  • マネージド型ノードグループ
    • 1 つのコマンドでクラスターのノードを作成、更新、スケーリング、および終了できる。これらのノードは、Amazon EC2 Spot Instances を活用してコストを削減することもできる。 マネージド型ノードグループは AWS アカウントの最新の EKS 最適化またはカスタム Amazon マシンイメージ (AMI) を使用して Amazon EC2 インスタンスを実行するが、更新と終了はアプリケーションが使用可能な状態を維持するようにノードを適切にドレインする。

ノードの起動と単一行の管理に eksctl を使用する

eksctl コマンドラインツールを使えば、Amazon EKS を数分で起動して実行することができる。

「eksctl create cluster」コマンドを実行するだけで、EKS クラスターを作成できる。eksctl を使用すれば、ノードやアドオンの管理など、クラスターの管理と操作を簡素化できる。

  • Windows サポート
    • Windows ワーカーノードと Windows コンテナスケジューリングをサポートする。 Windows ワーカーノードと Linux ワーカーノードの同時実行をサポートしているため、利用者はどちらのオペレーティングシステムでもアプリケーションの管理に同じクラスターを使用できる。
  • ARM サポート
    • AWS Graviton2 プロセッサは、Arm ベースの EC2 インスタンスに電力を供給し、パフォーマンスと機能を大幅に向上させ、大幅なコスト削減を実現する。アプリケーションのコスト効率を改善することは、コンテナを実行する第一の目標です。両方を組み合わせると、優れた価格性能比が得られる。
      • ワークロードのテストでは、Graviton2 プロセッサに基づくインスタンスタイプが、同等の x86 ベースの M5、C5、および R5 ファミリーよりも最大 40% 優れた価格性能比。

ネットワークとセキュリティ

  • IPv6 のサポート
  • AWS Cloud Map
    • アプリケーションリソースのカスタム名を定義し、動的に変化するリソースの更新された場所を管理することができる。これにより、ウェブサービスで常に最新のリソースの場所が検出されるため、アプリケーションの可用性は向上する。Cloud Map では、Kubernetes サービスの起動時に内部サービスロケーションを開始および削除するたびに、それらを Cloud Map サービスレジストリに自動で伝播するオープンソースの Kubernetes コネクタである external-dns と連携する。
  • サービスメッシュ
    • サービスメッシュは、アプリケーション内の各マイクロサービスにおける通信方法を標準化し、複雑なマイクロサービスアプリケーションの構築および実行を容易にする。AWS App Mesh は、エンドーツーエンドの可視性と高可用性を実現するように、アプリケーションを設定する。Kubernetes 用の AWS App Mesh コントローラーを使用して、メッシュに接続された新しいサービスを作成し、トラフィックルーティングを定義し、暗号化などのセキュリティ機能を設定できる。さらに、App Mesh では、サービスを検出するために Kubernetes ポッドを AWS Cloud Map に自動的に登録できる。App Mesh は、提供された Envoy ブートストラップ構成で指定されたエンドポイントに、メトリクス、ログ、およびトレースをエクスポートする。App Mesh では、メッシュ対応のマイクロサービス間で、トラフィックルーティング、回路遮断、再試行などの制御を設定するための API を使用できる。App Mesh Mutual TLS は、サービスがプライベートネットワークで発生した場合でも、サービス間のすべてのリクエストを暗号化する際に役立ちます。さらに、認証コントロールを追加することで、許可したサービス間でのみ通信が可能。
  • VPC ネイティブネットワーキング
    • EKS クラスターは Amazon VPC で実行されるため、独自の VPC セキュリティグループとネットワークアクセスコントロールリスト (ACL) の使用が可能。他の利用者とコンピューティングリソースを共有しないため、安全で信頼性の高いアプリケーションを構築するための高レベルの分離性が得られる。EKS は、Amazon VPC のコンテナネットワークインターフェイス (CNI) を使用し、Kubernetes ポッドが VPC から IP アドレスを受け取れるようにする。 Amazon EKS では、Project Calico ネットワークポリシーエンジンと連動し、きめ細かなネットワークポリシーを Kubernetes ワークロードに付加する。Kubernetes ネットワークポリシー API を使用して、サービス単位でアクセスを制御することができる。
  • AWS IAM Authenticator
    • Kubernetes RBAC (Kubernetes 用ネイティブロールベースのアクセスコントロールシステム) を AWS IAM に統合する。RBAC ロールを各 IAM エンティティにを直接割り当てることができるため、Kubernetes コントロールプレーンノードへのきめ細かなアクセス許可の制御が可能になる。
  • サービスアカウントの IAM
    • Amazon EKS で Kubernetes サービスアカウントに IAM アクセス許可を割り当てることができる。IAM ロールは、他のコンテナ化されたサービス、データベースやシークレットなどのクラスター外部の AWS リソース、または AWS 外で実行されているサードパーティーのサービスやアプリケーションへのアクセスを制御できる。これにより、クラスターの可用性とコストの最適化を簡素化しつつ、複数の同じ場所に配置されたサービスを使用してクラスターを実行する際に、きめ細かなポッドレベルのアクセス制御が可能になる。
  • コンプライアンス
    • SOC、PCI、ISO、FedRAMP-Moderate、IRAP、C5、K-ISMS、ENS High、OSPAR、HITRUST CSF、HIPAA に準拠。

ロードバランシング

Application Load Balancer (ALB)、Network Load Balancer (NLB)、および Classic Load Balancer を含む Elastic Load Balancing の使用をサポートする。

Amazon EKS クラスターでは、標準の Kuberentes クラスターロードバランシング、または Kubernetes をサポートする任意のイングレスコントローラーを実行することができる。

サーバーレスコンピューティング

AWS Fargate がサポートされている。Fargate ではサーバーのプロビジョニングと管理が不要となり、アプリケーションごとにリソースを指定してその分のみ料金を支払うことができる。また、設計段階からのアプリケーション分離によりセキュリティを強化できる。

ハイブリッドデプロイ

  • AWS Outposts
    • オンプレミスシステムへの特に低いレイテンシーを必要とするコンテナ化したアプリケーションを実行できる。AWS Outposts は、AWS のインフラストラクチャ、AWS のサービス、API、およびツールを、実質的にすべての接続サイトに拡張するフルマネージドサービス。EKS on Outposts では、クラウド上でコンテナを管理するのとまったく同じように簡単にオンプレミスのコンテナを管理できる。
  • AWS Local Zones または AWS Wavelength
    • 実行されているノードを EKS に接続して、エッジで AWS が管理するインフラストラクチャの選択肢を増やすことができる。
  • Amazon EKS Distro
    • 独自のオンプレミスのインフラストラクチャで使用するために、AWS 上の Amazon EKS で使用されているものと同じオープンソースの Kubernetes ソフトウェアディストリビューションをパッケージ化する。EKS Distro クラスターを、独自のツールまたは Amazon EKS Anywhere (2021 年以降) を使用して管理する。
  • Amazon EKS Anywhere
    • 独自の仮想マシン (VM) やベアメタルサーバーを含め、オンプレミスで Kubernetes クラスター (Amazon EKS Distro のソフトウェアを使用して構築) を簡単に作成および操作できる。EKS Anywhere を使用すると、Kubernetes クラスターを管理するための独自のツールを構築およびサポートする際の複雑さが軽減される。EKS Anywhere は、ベアメタル、VMware vSphere、クラウド仮想マシンなどのインフラストラクチャで、クラスターの作成、管理、運用を簡素化するオートメーションツールを提供する。これには、デフォルトのログ記録、モニタリング、ネットワーク、およびストレージ構成を持つクラウド仮想マシンも含まれる。EKS Anywhere は、クラスターのインストールやライフサイクル管理、オブザーバビリティ、クラスターのバックアップ、ポリシー管理など、Kubernetes を本番環境で運用するために必要な追加のツールやコンポーネントを追加する。

ログ記録

AWS CloudTrail と統合され、監査履歴を含む EKS 管理操作の可視性を提供する。CloudTrail を用いると Amazon EKS API への API コールを表示することができる。Amazon EKS は、分析、デバッグ、監査を行う目的で、Kubernetes コントロールプレーンログを Amazon CloudWatch に配信する。

認定準拠性

アップストリーム版の Kubernetes が実行されており、Kubernetes への準拠性が認証されているので、Kubernetes コミュニティで提供されている既存のプラグインやツールがすべて利用可能。Amazon EKS で動作するアプリケーションは、オンプレミスのデータセンターで実行されているかパブリッククラウドで実行されているかにかかわらず、標準的な Kubernetes 環境で動作しているアプリケーションと完全に互換性がある。これは、コードをリファクタリングすることなく、標準的な Kubernetes アプリケーションならどれでも Amazon EKS に簡単に移行できることを意味する。

マネージド型クラスターの更新

アップデート作業を管理することなく、実行中のクラスターを、最新バージョンの Kubernetes に簡単にアップデートできる。Kubernetes バージョンのアップデートはインプレースで実行されるため、新規クラスターの作成やアプリケーションの新規クラスターへの移行の必要はない。

Kubernetes の新バージョンは Amazon EKS での使用向けにリリースされ検証されている。3 種類の Kubernetes の安定バージョンが更新プロセスの一部として常にサポートされている。SDK、CLI、または AWS コンソールを介して、新しいバージョンのインストールを開始し、飛行中のアップデートステータスを確認することができる。

アドバンストワークロードサポート

最適化された Amazon マシンイメージ (AMI) を提供し、これには GPU 対応の P2 と P3 Amazon EC2 インスタンス向けに設定された NVIDIA ドライバーも含まれている。これにより、Amazon EKSを使用して、機械学習 (ML)、Kubeflow、深層学習 (DL) コンテナ、ハイパフォーマンスコンピューティング (HPC)、財務分析、ビデオトランスコーディングなどの高度なコンピューティングを行うワークロードの実行が容易。

オープンソースとの互換性

Kubernetes コミュニティツールと完全な互換性があり、よく利用されている Kubernetes アドオンをサポートする。これには、クラスター用の DNS サービスを作成する CoreDNS および Kubernetes Dashboard のウェブベースの UI と kubectl コマンドラインツールの両方が含まれ、Amazon EKS でクラスターにアクセスし管理できる。

Kubernetes コミュニティツールと完全な互換性があり、よく利用されている Kubernetes アドオンをサポートする。これには、クラスター用の DNS サービスを作成する CoreDNS および Kubernetes Dashboard のウェブベースの UI と kubectl コマンドラインツールの両方が含まれ、Amazon EKS でクラスターにアクセスし管理できる。

EKS コネクタ

任意の準拠した Kubernetes クラスターを AWS に接続し、Amazon EKS コンソールで視覚化することができる。オンプレミスで実行されている Amazon EKS Anywhere クラスター、Amazon Elastic Compute Cloud (Amazon EC2) でのセルフマネージドクラスター、AWS の外部で実行されている他の Kubernetes クラスターなど、任意の準拠した Kubernetes クラスターに接続できる。クラスターが実行されている場所にかかわらず、Amazon EKS コンソールを使用して、接続されているすべてのクラスターとそれらで実行されている Kubernetes リソースを表示できる。