Amazon EKS
Kubernetes クラスターを AWS 上で簡単に構築・運用できるマネージドサービス
何ができるか
Amazon EKS (Elastic Kubernetes Service) は、AWS 上で Kubernetes を簡単に実行できるマネージドサービスです。Kubernetes のコントロールプレーン (API サーバーや etcd など) の構築・運用・スケーリングを AWS が自動で管理するため、利用者はアプリケーションのデプロイに集中できます。オープンソースの Kubernetes と完全な互換性があり、既存の Kubernetes ツールやプラグインをそのまま利用できます。
どのような場面で使うか
大規模なマイクロサービスの運用と管理、オンプレミスの Kubernetes 環境からのクラウド移行、マルチクラウド戦略における AWS 側のコンテナ基盤、機械学習ワークロードの分散実行、ステートフルアプリケーション (データベースやメッセージキュー) のコンテナ運用など、Kubernetes エコシステムを活用したい場面で広く利用されています。 この分野について体系的に学びたい方は、関連書籍 (Amazon) も参考になります。
身近な例え
国際規格に対応した工場の管理システムに例えるとわかりやすいでしょう。Kubernetes という世界共通の規格 (ISO 規格のようなもの) に沿って工場を運営しますが、工場の電気・水道・セキュリティといったインフラ管理は AWS が代行してくれます。他の工場 (クラウド) に移転しても、同じ規格なので作業手順をそのまま使えます。
EKS とは
Amazon Elastic Kubernetes Service (EKS) は、AWS が提供するマネージド Kubernetes サービスです。Kubernetes はコンテナ化されたアプリケーションのデプロイ、スケーリング、管理を自動化するオープンソースのプラットフォームで、Google が開発し現在は CNCF (Cloud Native Computing Foundation) が管理しています。EKS は Kubernetes の認定ディストリビューションであり、標準の Kubernetes API をそのまま使用できます。
主な特徴
EKS の最大の特徴は、Kubernetes のコントロールプレーンを AWS が完全に管理する点です。コントロールプレーンは複数のアベイラビリティゾーンにまたがって冗長化され、99.95% の SLA が保証されています。ワーカーノードには EC2 インスタンス、Fargate、または EKS Anywhere によるオンプレミス環境を選択できます。Helm チャート、kubectl、Kustomize など、Kubernetes エコシステムの標準ツールがすべて利用可能です。また、AWS App Mesh や AWS Load Balancer Controller との統合により、サービスメッシュやトラフィック管理も容易に実現できます。
ECS との違い
EKS と ECS はどちらもコンテナオーケストレーションサービスですが、設計思想が異なります。ECS は AWS 独自のサービスで、AWS エコシステムとの統合が深く、設定がシンプルです。一方 EKS は Kubernetes 標準に準拠しており、マルチクラウドやハイブリッドクラウド環境での可搬性に優れています。既に Kubernetes の知識やツールを持つチームには EKS が、AWS に特化したシンプルな運用を求めるチームには ECS が適しています。
料金体系
EKS のコントロールプレーンは 1 クラスターあたり 1 時間 0.10 USD の料金がかかります。これに加えて、ワーカーノードとして使用する EC2 インスタンスまたは Fargate の料金が発生します。EKS Auto Mode を利用すると、ノードの管理を AWS に任せつつ、コンピューティング料金のみで運用できます。小規模な検証環境であれば、t3.medium インスタンス 2 台程度から始められます。
はじめかた
EKS を使い始めるには、eksctl というコマンドラインツールが便利です。eksctl create cluster コマンドを実行するだけで、VPC、サブネット、セキュリティグループ、ノードグループを含む完全なクラスターが自動的に構築されます。クラスターが起動したら、kubectl を使って通常の Kubernetes と同じようにアプリケーションをデプロイできます。AWS マネジメントコンソールからもクラスターの作成や監視が可能です。
注意点
- Kubernetes の学習コストが高いため、コンテナ初心者はまず ECS から始めて、必要に応じて EKS に移行する段階的なアプローチを推奨する
- コントロールプレーンの料金が 1 クラスターあたり月額約 73 USD かかるため、検証用クラスターは使わないときに削除してコストを抑えること
さらに詳しく知りたい方は、関連書籍 (Amazon) で理解を深められます。