Amazon EKS

Kubernetes のコントロールプレーンをフルマネージドで提供するサービスで、オンプレミスの Kubernetes ワークロードをクラウドにシームレスに移行できる

概要

Amazon Elastic Kubernetes Service (EKS) は、Kubernetes のコントロールプレーン (API サーバー、etcd、スケジューラーなど) をフルマネージドで提供するサービスです。Kubernetes の標準 API と完全互換であるため、既存の Kubernetes ツール (kubectl、Helm、Argo CD など) やアプリケーションをそのまま利用できます。ワーカーノードには EC2 インスタンス (マネージドノードグループまたはセルフマネージド)、Fargate、または EKS Anywhere (オンプレミス) を選択できます。EKS は Kubernetes のバージョンアップグレード、セキュリティパッチの適用、コントロールプレーンの高可用性 (3 つの AZ に分散) を自動的に管理します。AWS の IAM、VPC、ELB、EBS、EFS などのサービスとネイティブに統合されており、Kubernetes のワークロードから AWS リソースをシームレスに利用できます。

EKS と ECS の選択基準

EKS と ECS はどちらもコンテナオーケストレーションサービスですが、対象とするユースケースが異なります。EKS は Kubernetes エコシステムとの互換性を重視する場合に選択します。既に Kubernetes を使用しているチーム、マルチクラウドやハイブリッドクラウド戦略を採用している組織、Kubernetes の豊富なエコシステム (Istio、Prometheus、Argo CD など) を活用したい場合に適しています。ECS は AWS に特化したシンプルなコンテナ運用を求める場合に選択します。Kubernetes の学習コストを避けたいチーム、AWS サービスとの深い統合を重視する場合、小規模から中規模のコンテナワークロードに適しています。料金面では、EKS はコントロールプレーンに時間あたり 0.10 ドル (月額約 73 ドル) の固定費が発生するのに対し、ECS のコントロールプレーンは無料です。ワーカーノードの料金 (EC2 または Fargate) は両者とも同じです。

Azure Kubernetes Service との比較

Azure で EKS に対応するサービスは Azure Kubernetes Service (AKS) です。両者とも Kubernetes のマネージドサービスですが、料金モデルに大きな違いがあります。EKS はコントロールプレーンに時間あたり 0.10 ドルの料金が発生するのに対し、AKS のコントロールプレーンは無料です (Standard 層は月額約 73 ドル)。ただし、AKS の Free 層は SLA が提供されないため、本番環境では Standard 層以上が推奨され、結果的に同程度のコストになります。ノード管理では、EKS のマネージドノードグループは AMI の自動更新とドレインを行い、AKS のノードプールも同様の自動管理機能を提供します。EKS の特徴として、EKS Anywhere によりオンプレミスで EKS と同じ Kubernetes ディストリビューションを実行でき、クラウドとオンプレミスで一貫した運用が可能です。AKS にも Azure Arc 対応の AKS がありますが、EKS Anywhere の方がオンプレミス環境での独立性が高い設計です。