Q70 — AWS SAP-C02 第1章

第 70/75 問 | ← 第1章

Q145. ある会社が、Amazon EC2インスタンス上で従来型のWebアプリケーションを実行しています。この会社は、アプリケーションをコンテナ上で実行されるマイクロサービスにリファクタリングする必要があります。アプリケーションには、本番環境とテスト環境という2つの明確に分離されたバージョンが存在します。アプリケーションの負荷は変動しますが、最小負荷および最大負荷は既知です。ソリューションアーキテクトは、運用の複雑さを最小限に抑えるサーバーレスアーキテクチャで、更新後のアプリケーションを設計する必要があります。 これらの要件を最もコスト効率よく満たすソリューションはどれですか?

正解: B. コンテナイメージをAmazon Elastic Container Registry(Amazon ECR)にアップロードします。予想される負荷に対応するため、Fargate起動タイプを使用した2つの自動スケーリング可能なAmazon Elastic Container Service(Amazon ECS)クラスターを設定します。ECRから取得したイメージを使ってタスクをデプロイします。ECSクラスターへのトラフィックを振り分けるために、2つの別々のApplication Load Balancerを設定します。

解説

この要件では、「サーバーレスアーキテクチャ」と「運用の複雑さの最小化」が明示的に求められています。AWS Lambdaは、コンテナイメージをネイティブでサポートするサーバーレスサービスであり(2020年12月以降)、インフラストラクチャ管理やクラスターオーケストレーションを一切不要とします。オプションAは、Lambdaの同時実行数制限をピーク負荷に合わせて設定することで、コストとパフォーマンスの両方を制御可能であり、API Gatewayとの統合により、本番/テストの分離もシンプルに実現できます。一方、オプションB(ECS Fargate)およびC(EKS Fargate)は、Fargateであってもクラスターやタスク定義、ネットワーク設定など運用管理要素が多く、完全なサーバーレスとは言えません。また、EKSはKubernetesのオーバーヘッドがあり、運用複雑度が最も高くなります。オプションDのElastic Beanstalkは、コンテナ対応はありますが、EC2ベースのデプロイメントがデフォルトであり、サーバーレスではありません(かつ、Fargate対応していません)。したがって、要件(サーバーレス・最小運用負荷・コスト効率)を最もよく満たすのはオプションAです。