ある企業が、AWS のコンテナワークロードを Amazon ECS(Fargate)で運用しており、アプリケーションの負荷に応じてタスク数が増減している。安定的に稼働している最低限のタスク数(ベースライン 10 タスク)に対してコストを最適化したい。スパイク時には追加タスクが起動するが、ベースラインタスクのコストを削減する最も適切な方法はどれか。
- A. ECS タスク定義でタスクサイズを最小化してコストを削減する。
- B. AWS Compute Savings Plans(1 年・一部前払い)を購入し、ベースライン 10 タスク分のコンピューティング使用量をカバーする。スパイク時の追加タスクはオンデマンド Fargate で起動する。
- C. ベースライン 10 タスクをすべて Fargate Spot で実行する。
- D. ECS から EC2 起動タイプに変更して Reserved Instances でコストを削減する。
解答と解説を見る
正解: B
AWS Compute Savings Plans は EC2 だけでなく Fargate の使用量にも適用される。ベースライン 10 タスク分のコンピューティング(vCPU・メモリ使用量 × 時間)に相当する Compute Savings Plans(1 年コミット)を購入すると、最大 52% のコスト削減(一部前払いの場合)が実現できる。スパイク時の追加タスクはオンデマンド価格で課金されるため、コミットメントとオンデマンドを組み合わせた最適な構成になる。選択肢CのFargate Spot はコスト削減効果は大きいが、Fargate Spot は中断される可能性があり、ベースラインとして「常時稼働が必要なタスク」に Spot を使うと中断時にサービス影響が発生する。ステートレスで中断許容できるタスクのみに適用すべき。選択肢AのタスクサイズはアプリケーションのリソIC要件で決まるものであり、任意に最小化するとパフォーマンス問題が発生する可能性がある。選択肢DのEC2 起動タイプへの移行はEC2 インスタンスの管理・パッチ・クラスター管理の運用負荷が発生し、Fargate のマネージドサービスの利点を失う。
📚 関連サービスの解説: Amazon ECS