ある企業が、Amazon EKS(Kubernetes)クラスターを運用しており、開発・本番環境で多数の Pod が常時稼働している。ノードの CPU・メモリ使用率が低く(平均 20〜30%)、リソースの無駄遣いが発生している。EKS クラスターのコスト効率を向上させる最も適切なアプローチはどれか。
- A. すべての EKS ノードを Spot インスタンスに変更し、最大コスト削減を実現する。
- B. Karpenter(または Cluster Autoscaler)を導入し、Pod の要求リソースに応じてノードを自動的に追加・削除する。また、Pod のリソースリクエスト(requests)と制限(limits)を適切に設定して過剰プロビジョニングを解消する。
- C. すべてのノードを最大インスタンスタイプ(例: m5.24xlarge)に統合して、ノード数を最小化する。
- D. EKS から ECS(Fargate)に移行して、コンテナ単位での従量課金に切り替える。
解答と解説を見る
正解: B
Karpenter は EKS のオートスケーラーで、スケジュールされていない Pod の要求リソースに基づいて必要最小限のインスタンスタイプを選択してノードを追加し、Pod がなくなったノードを自動的に削除する。Pod のリソースリクエストを適切に設定することで、スケジューラーが効率的な Bin Packing でノードを利用でき、使用率が向上する。Spot インスタンスとの組み合わせも可能。選択肢Cの最大インスタンスへの統合はノード数は減るが、インスタンスタイプのコストが高く使用率の低さは変わらない。また単一点障害リスクも高まる。選択肢AはすべてのノードをSpot に変更することで、ステートフルなワークロードや突然の中断が許されないサービスで問題が発生する可能性がある。本番環境への全面適用は慎重な検討が必要。選択肢DのECS Fargate への移行は根本的なアーキテクチャ変更が必要で、Kubernetes の設定・Helm チャート・カスタムオペレーターなどの既存資産が使えなくなる。