【正解】B
【0からの解説】
「サーバーレス」かつ「運用上の複雑さを最小化」しつつ「最もコスト効率よく」コンテナ化したマイクロサービスを動かす、という 3 つの条件で選択肢を絞ります。
AWS でコンテナをサーバーレスに動かす中核は
AWS Fargate です。Fargate を使えば EC2 インスタンス(ホスト)を一切管理せず、タスク(コンテナ)単位で課金され、必要なときだけリソースを消費します。Fargate はオーケストレーターとして ECS と EKS の両方で使えますが、
ECS は AWS マネージドでクラスター管理に追加料金がかからないのに対し、
EKS は各クラスターごとに時間あたりの管理料金(コントロールプレーン料金)が発生し、Kubernetes 自体の運用知識も必要です。本問は「運用の複雑さ最小」「最もコスト効率」が決め手なので、ECS Fargate を選ぶ B が最適です。本番/テストを 2 つのクラスター+各々の ALB で分離し、負荷に応じて自動スケーリングする構成も要件に合致します。
【誤りの選択肢】
A:Lambda には
コンテナイメージをデプロイできる機能はありますが、Lambda は本来関数実行サービスで、長時間実行や常時稼働ワークロード、既存の Web アプリのコンテナ移行先としては適合しにくく、「マイクロサービスをコンテナで動かす」という要件の趣旨にも合いません。同時実行数の上限でピークを「捌く」設計も不適切です。
C:EKS + Fargate でも要件は技術的に実現できますが、
EKS はクラスターごとの管理料金と Kubernetes 運用負荷が加わるため、ECS と比べてコスト効率・運用簡素さの両面で劣ります。本問の「最もコスト効率/複雑さ最小」では B に負けます。
D:Elastic Beanstalk は背後で EC2 インスタンスをプロビジョニングする PaaS であり、
サーバーレスではありません(インスタンスのパッチ・キャパシティ管理が残る)。「サーバーレスアーキテクチャ」という明示要件に反します。
【参考】
AWS Fargate とはAmazon ECS と Amazon EKS の比較(コンテナサービス)