Amazon Elastic Kubernetes Service
マネージド Kubernetes
AWS が Kubernetes の control plane を運用し、あなたは EC2 または Fargate 上で pod を実行します。
- コスト$$$ 高め
- 難易度●●●●●
- 未使用でも課金?はい
- AWS マネージド
- 出題試験SAA · DVA · SOA
たとえるなら常駐スタッフ付きの Kubernetes 管制所を借りるようなもので、あなたは車両だけを担当します。
EKS はシステムのどこにある?
具体例でステップごとに
- 社内のデータセンターで Kubernetes を運用している会社が、設定を書き直さずに AWS へ移行したいと考えています。
- EKS クラスターを作成すると、AWS がコントロールプレーンを複数 AZ で運用し、Kubernetes のバージョンアップも行います。
- EC2 のマネージド型ノードグループを追加し、既存の YAML ファイルを kubectl でそのまま適用します。
- S3 を読む必要があるポッドには、ノード全体の権限を共有せず、ポッドごとに IAM 権限を付与します。
- 不定期なジョブは Fargate に移し、マシンを遊ばせないようにします。
いつ使う?
✓ 使うべき場面
すでに Kubernetes を使っている、K8s エコシステムが必要、マルチクラウド/ハイブリッドで実行する場合。
✗ 避けるべき場面
小規模なアプリケーションで、チームに K8s の経験がない → ECS。
よくある使い方
- すでに Kubernetes を使っており、Helm や operator のエコシステムが必要なチーム
- 複数チームで共有する社内プラットフォーム
- マルチクラウドまたはハイブリッドのワークロード
EKS・ECS・Fargate の違い
料金はいくら?
- 課金方式: cluster ごとに約 $0.10/時間(約 $73/月)+ pod を実行する EC2 または Fargate。標準サポートが終了した Kubernetes バージョンを使う cluster は Extended Support 料金(約 $0.60/時間)が課金されます。
- 無料枠: なし。
Kubernetes バージョンのアップグレードが間に合わない → Extended Support 料金で 6 倍。小さな cluster を多数作成する。Service type LoadBalancer から自動作成された load balancer の放置。
「すでに Kubernetes を使っている」「オープンソースの Kubernetes ツール」「オンプレミスの K8s クラスターを移行」とあれば EKS です。Kubernetes に触れず運用を最小にしたいなら Fargate 上の ECS です。
よくある質問
EKS と EC2 に自分で Kubernetes を構築する場合の違いは何ですか?
EKS ではコントロールプレーン(API サーバー、etcd)を AWS が複数 AZ で運用し、バージョンアップも行います。EC2 に自分で構築する場合は、クラスター全体の運用、バックアップ、アップグレードをすべて自分で行う必要があります。
EKS のワーカーノードはどのように動かしますか?
3 つの方法があります。マネージド型ノードグループ(AWS が EC2 インスタンスを作成・更新)、セルフマネージド型ノード(EC2 を自分で管理)、Fargate(ポッドごとに分離して実行し、ノード管理が不要)です。1 つのクラスターで組み合わせることもできます。
EKS の料金はどのように決まりますか?
クラスターごとにコントロールプレーンの時間料金がかかり、そのほかにノード(EC2 または Fargate)、ロードバランサー、ストレージの料金がかかります。標準サポートが終了した古いバージョンのクラスターは、より高い料金になります。
AWS 認定試験では EKS について何が問われますか?
ECS ではなく EKS を選ぶ場面(チームがすでに Kubernetes を使っている、オンプレミスから移行する)、ポッドへの IAM 権限の付与、ノード管理を避けるためにポッドを Fargate で動かすことなどです。