Q76 — AWS SAA-C03 第10章
第 76/100 問 | ← 第10章
Q676. ソリューションアーキテクトは、ベンダーが提供するDockerコンテナイメージを用いたアプリケーションのアーキテクチャを設計する必要があります。このコンテナには、一時ファイル用に50 GBのストレージが必要です。また、インフラストラクチャはサーバーレスである必要があります。これらの要件を満たし、かつ運用オーバーヘッドが最も少ないソリューションはどれですか?
- A. Dockerコンテナイメージを使用するAWS Lambda関数を作成し、50 GBを超える容量を持つAmazon S3ボリュームをマウントする
- B. Dockerコンテナイメージを使用するAWS Lambda関数を作成し、50 GBを超える容量を持つAmazon Elastic Block Store(Amazon EBS)ボリュームをマウントする
- C. AWS Fargate起動タイプを使用するAmazon Elastic Container Service(Amazon ECS)クラスターを作成する。コンテナイメージ用のタスク定義を作成し、Amazon Elastic File System(Amazon EFS)ボリュームを含める。そのタスク定義でサービスを作成する ✓
- D. Amazon EC2起動タイプを使用するAmazon Elastic Container Service(Amazon ECS)クラスターを作成し、50 GBを超える容量を持つAmazon Elastic Block Store(Amazon EBS)ボリュームをアタッチする。コンテナイメージ用のタスク定義を作成し、そのタスク定義でサービスを作成する
正解: C. AWS Fargate起動タイプを使用するAmazon Elastic Container Service(Amazon ECS)クラスターを作成する。コンテナイメージ用のタスク定義を作成し、Amazon Elastic File System(Amazon EFS)ボリュームを含める。そのタスク定義でサービスを作成する
解説
Dockerコンテナイメージに対して一時ファイル用に50 GBのストレージを提供しつつ、サーバーレスなインフラストラクチャを実現し、かつ運用オーバーヘッドを最小限に抑えるには、選択肢Cが最も適しています。理由は以下の通りです。選択肢C:AWS Fargate起動タイプを使用するAmazon ECSクラスターを作成し、コンテナイメージ用のタスク定義にAmazon EFSボリュームを含め、そのタスク定義でサービスを作成します。AWS Fargateは、サーバー管理不要のコンテナ向けサーバーレスコンピューティングエンジンであり、基盤となるインフラストラクチャのプロビジョニングや管理を一切不要とします。このソリューションでは、Fargate起動タイプのAmazon ECSクラスターを作成し、Dockerコンテナイメージのタスク定義にAmazon EFSボリュームを指定することで、一時ファイルに必要な50 GBのストレージを確保できます。さらに、そのタスク定義に基づくサービスを作成することで、コンテナの継続的な実行を保証します。このアプローチは、サーバー管理やストレージの手動プロビジョニングが不要なため、運用オーバーヘッドが最小限であり、Amazon EFSはスケーラブルかつ共有可能なファイルストレージを提供し、必要に応じてコンテナへマウント可能です。選択肢A:AWS Lambdaはイベント駆動型の短時間実行向けに設計されており、長時間実行されるコンテナ化アプリケーションには不向きです。また、一時ファイル用の特定容量のストレージを直接割り当てる機能はなく、Amazon S3を「ボリューム」としてマウントすることも技術的に非推奨であり、パフォーマンスや使い勝手の面で不適切です。選択肢B:LambdaにAmazon EBSボリュームをアタッチすることは技術的に不可能です(EBSはEC2インスタンスにのみアタッチ可能)。この選択肢は事実誤認を含み、現実的ではありません。選択肢D:Amazon ECSのEC2起動タイプは、EC2インスタンスのプロビジョニング・パッチ適用・スケーリングなど、サーバー管理を伴うため、サーバーレスという要件に反し、運用負荷が高くなります。また、EBSボリュームの手動管理はスケーラビリティやコスト効率の面でもAmazon EFSに劣ります。したがって、要件を最も適切に満たし、運用オーバーヘッドが最小となるソリューションは、AWS Fargate起動タイプのAmazon ECSクラスターを用い、タスク定義にAmazon EFSボリュームを含めてサービスを作成する選択肢Cです。