Amazon EKS は、AWS での Kubernetes の実行を容易にするマネージドサービスであり、独自の Kubernetes コントロールプレーンやワーカーノードをインストールして操作する必要はありません。
Kubernetes はオープンソースのコンテナオーケストレーションシステムであり、コンテナ化されたアプリケーションを大規模にデプロイおよび管理できるようにします。Kubernetes は、コンテナを論理的なグループに分けてを管理、発見できるようにしてから、Amazon Elastic Compute Cloud (Amazon EC2) インスタンスのクラスター上で起動します。Kubernetes をお使いになると、オンプレミス、クラウドで同じツールセットを用いて、マイクロサービス、バッチプロセスワーカー、サービスとしてのプラットフォーム (PaaS) などのコンテナ化されたアプリケーションを実行できます。
Amazon EKS は、優れた可用性と耐障害性を実現するために、複数の AWS アベイラビリティーゾーン (AZ) 全体でアプリケーションプログラミングインターフェイス (API) サーバーやバックエンド永続レイヤーなどの Kubernetes コントロールプレーンをプロビジョニングおよびスケールします。Amazon EKS は異常なコントロールプレーンノードを自動的に検出して置き換え、コントロールプレーンにパッチを適用します。コンテナ向けサーバーレスコンピューティングを提供する AWS Fargate を使用して EKS を実行できます。Fargate ではサーバーのプロビジョンと管理が不要で、アプリケーションごとにリソースを指定してその分のみ料金を支払うことができるだけでなく、設計段階からのアプリケーション分離によりセキュリティを強化します。
Amazon EKS は、多くの AWS のサービスと統合し、ユーザーのアプリケーションにスケーラビリティとセキュリティを提供します。これらのサービスには、Elastic Load Balancing による負荷分散、AWS Identity and Access Management (IAM) による認証、Amazon Virtual Private Cloud (VPC) による分離、AWS CloudTrail によるログ記録、などがあります。
Amazon EKS は、ユーザーに代わって Kubernetes コントロールプレーンとワーカーノードをプロビジョニング (起動) し、管理することによって機能します。高いレベルでは、Kubernetes は次の 2 つの主要コンポーネントで構成されています。ひとつはコンテナを実行する「ワーカーノード」のクラスターで、もうひとつはクラスター上でいつ、どこでコンテナが開始されるかを管理し、その結果をモニターするコントロールプレーンです。
Amazon EKS を使わない場合は、Kubernetes コントロールプレーンとワーカーノードのクラスターの両方を自分で実行する必要があります。Amazon EKS では、EKS コンソール、コマンドラインインターフェイス (CLI)、または API で単一のコマンドを使用してワーカーノードをプロビジョニングします。AWS は、Kubernetes のコントロールプレーンのプロビジョニング、スケーリング、および管理を、高可用かつ安全な設定で行います。これにより、 運用上の負担は大きく軽減され、AWS インフラストラクチャの管理に時間を割くことなく、アプリケーションの構築に集中できます。
Amazon EKS は、Kubernetes との互換性がある Linux x86、ARM、および Windows Server オペレーティングシステムのディストリビューションをサポートしています。Amazon EKS は、Amazon Linux 2、Bottlerocket および Windows Server 2019 向けに最適化された AMI を提供します。現時点では、AL2023 用の Amazon EKS に最適化された AMI はありません。その他の Linux ディストリビューション用の EKS に最適化された AMI (Ubuntu など) は、それぞれのベンダーから入手できます。
AWS Container Services Public Roadmap で機能リクエストを開いて、追加や改善をご希望の点をお知らせください
Amazon EKS はオープンソースの Kubernetes を実行するため、Kubernetes コミュニティで提供されている既存のプラグインやツールのすべてを使用できます。Amazon EKS で動作するアプリケーションは、オンプレミスのデータセンターで実行されているかパブリッククラウドで実行されているかにかかわらず、標準的な Kubernetes 環境で動作しているアプリケーションと完全に互換性があります。そのため、コードを修正することなく、標準的な Kubernetes アプリケーションを Amazon EKS に簡単に移行できます。
はい。AWS Fargate と Amazon EKS を使用すると、Kubernetes アプリケーションをサーバーレスコンテナとして実行できます。
EKS アドオンを使用すると、EKS クラスターのオブザーバビリティ、スケーリング、ネットワーキング、AWS クラウドリソース統合などの機能を提供する Kubernetes 運用ソフトウェアを有効にして管理できます。EKS アドオンは、起動時に EKS API を介した AWS VPC CNI プラグインの起動とバージョンの制御をサポートします。
Amazon EKS アドオンは、Kubernetes 運用ソフトウェアのワンクリックインストールと管理機能を提供します。これにより、1 つのコマンドでクラスターの作成からアプリケーションの実行に移行でき、クラスターに必要な運用ソフトウェアを簡単に最新の状態に保つことができます。これにより、Kubernetes クラスターの安全性と安定性が確保され、本番環境に対応した Kubernetes クラスター AWS を開始して管理するために必要な作業量が削減されます。
現在サポートされている Kubernetes のバージョンについては、Amazon EKS ドキュメントをご覧ください。Amazon EKS は、今後も追加の Kubernetes バージョンをサポートする予定です。
はい。Amazon EKS は、Kubernetes および Amazon EKS 両方のプラットフォームのバージョンに合わせて、マネージド型インプレースクラスターのアップグレードを行います。これによりクラスターのオペレーションが簡易化され、最新の Kubernetes の機能や、Amazon EKS 設定の更新およびセキュリティパッチを利用できます。
Amazon EKS クラスターに適用できる更新は 2 種類あります。Kubernetes のバージョン更新と、Amazon EKS プラットフォームのバージョン更新です。Kubernetes の新バージョンは Amazon EKS での使用向けにリリースされ検証されています。常に 3 種類の Kubernetes の安定バージョンが更新プロセスの一部としてサポートされています。
Amazon EKS プラットフォームバージョンは、有効化されている Kubernetes API サーバーフラグや、現在の Kubernetes パッチバージョンなど、クラスターコントロールプレーンの機能を表します。各 Kubernetes マイナーバージョンには、Amazon EKS プラットフォームバージョンが 1 つ以上関連付けられています。異なる Kubernetes マイナーバージョンのプラットフォームバージョンはそれぞれ独立しています。
新しい Kubernetes マイナーバージョンが Amazon EKS (1.13 など) で利用可能になると、その Kubernetes マイナーバージョンの最初の Amazon EKS プラットフォームバージョンは eks.1 から始まります。ただし、Amazon EKS では、新しいプラットフォームバージョンが定期的にリリースされ、新しい Kubernetes コントロールプレーン設定の有効化や、セキュリティ修正の提供が行われます。
Kubernetes の新しいバージョンは Kubernetes API に大幅な変更を導入するため、アプリケーションの動作が変わることがあります。クラスターの Kubernetes のバージョンを手動で制御することで、本稼働クラスターをアップグレードする前に、Kubernetes の新しいバージョンに対してアプリケーションをテストできます。Amazon EKS を使用すると、EKS クラスターに対する変更をいつ適用するかを選択できます。
AWS は、必要なワーカーノードバイナリ (Docker および Kubelet) を含む、EKS 最適化 Amazon マシンイメージ (AMI) を公開しています。 この AMI は定期的に更新されるため、これらのコンポーネントの最新バージョンが含まれています。EKS コンソール、API または CLI における単一コマンドで、EKS マネージドノードを、最新バージョンの EKS に最適化された AMI にアップデートできます。
EKS ワーカーノードで使用する独自のカスタム AMI を構築している場合、AWS は構築ステップが記載された Packer スクリプトも公開しているので、AMI の各バージョンに含まれるバイナリを特定できます。
Kubernetes バージョンの Amazon EKS の延長サポートでは、Kubernetes のマイナーバージョンが Amazon EKS から一般提供された時点から、そのバージョンを 最大 26 か月間使用できます。延長サポート対象の Amazon EKS バージョンには、Amazon EKS が管理する Kubernetes コントロールプレーンのセキュリティパッチが継続的に適用されます。さらに、Amazon EKS は、Amazon VPC CNI、kube-proxy、CoreDNS のアドオン、Amazon Linux と Bottlerocket 用の AWS 公開の EKS 最適化 Amazon マシンイメージ (AMI)、および EKS Fargate ノードのための重要なパッチをリリースする予定です。AWS では万全な技術サポート体制が整っており、Amazon EKS のすべてのバージョンを、標準サポートと延長サポートの両方でバックアップしています。Kubernetes バージョンに対する延長サポートは、AWS GovCloud (米国) リージョンを含む、Amazon EKS が利用可能なすべての AWS リージョンでご利用いただけます。Amazon EKS バージョンのサポートポリシーの詳細については、 Amazon EKS ドキュメントをご覧ください。
作成した各 Amazon EKS クラスター、および Kubernetes ワーカーノードを実行するために作成した AWS リソースについて、0.10 USD/時間をお支払いただきます。実際に使用した分に対してのみ料金が発生します。最低料金や前払いの義務はありません。詳細については、EKS の料金ページをご覧ください。
Amazon EKS を利用できるリージョンの最新情報については、AWS グローバルインフラストラクチャのリージョン表にアクセスしてください。
Amazon EKS SLA は、こちらでお読みいただけます。