Q48 — AWS DOP-C02 第1章
第 48/100 問 | ← 第1章
ある企業には多数のアプリケーションがあります。企業の異なるチームがさまざまな言語およびフレームワークを使用してアプリケーションを開発しています。これらのアプリケーションは、ローカルおよび異なるサーバー上で実行され、異なるオペレーティングシステムを使用しています。各チームには独自のリリースプロトコルおよびプロセスがあります。企業は、これらのアプリケーションのリリースおよび保守の複雑さを軽減したいと考えています。 企業は、これらのアプリケーションを含む技術スタック全体をAWSに移行しようとしています。企業は、ソースコードの集中管理、一貫した自動化デリバリーパイプライン、および可能な限り最小限の下位インフラストラクチャ保守タスクを望んでいます。
- A. すべてのアプリケーションに対して1つのAWS CodeCommitリポジトリを作成します。各アプリケーションのコードを異なるブランチに配置します。ブランチをマージし、AWS CodeBuildを使用してアプリケーションをビルドします。AWS CodeDeployを使用して、アプリケーションを集中型アプリケーションサーバーにデプロイします。
- B. 各アプリケーションに対して個別のAWS CodeCommitリポジトリを作成します。AWS CodeBuildを使用して1つのアプリケーションを一度にビルドします。AWS CodeDeployを使用して、アプリケーションを集中型アプリケーションサーバーにデプロイします。
- C. 各アプリケーションに対して個別のAWS CodeCommitリポジトリを作成します。AWS CodeBuildを使用して1つのアプリケーションを一度にビルドし、各サーバーに対してAMIを作成します。これらのAMIを使用して、AWS CloudFormation StackSetsでAmazon EC2フェleetの自動プロビジョニングおよび停止を実行します。
- D. 各アプリケーションに対して個別のAWS CodeCommitリポジトリを作成します。AWS CodeBuildを使用して、Amazon Elastic Container Registry(Amazon ECR)内の各アプリケーションに対してDockerイメージをビルドします。AWS CodeDeployを使用して、アプリケーションをAWS Fargateが管理するインフラストラクチャ上のAmazon Elastic Container Service(Amazon ECS)にデプロイします。 ✓
正解: D. 各アプリケーションに対して個別のAWS CodeCommitリポジトリを作成します。AWS CodeBuildを使用して、Amazon Elastic Container Registry(Amazon ECR)内の各アプリケーションに対してDockerイメージをビルドします。AWS CodeDeployを使用して、アプリケーションをAWS Fargateが管理するインフラストラクチャ上のAmazon Elastic Container Service(Amazon ECS)にデプロイします。
解説
本問は、AWS上で集中ソースコード管理、自動化デリバリー、および下位インフラストラクチャ保守タスクの最小化を実現するソリューションを選択するものです。AWSドキュメントによると、コンテナ化(Dockerなど)とサーバーレスインフラストラクチャ(Fargateなど)を組み合わせることで、EC2インスタンスの管理を回避し、保守負担を軽減できます。選択肢Dでは、各アプリケーションが独立したリポジトリを持つことでチームごとの要件を満たし、CodeBuildによるコンテナイメージのビルドは環境の一貫性を保証します。ECRはイメージを保存し、FargateがECSコンテナを管理するためサーバー管理が不要となり、CodeDeployによる自動デプロイは集中制御、自動化パイプライン、および最小限のインフラストラクチャ保守という要件を満たします。他の選択肢は集中サーバーまたはEC2管理を含むため、インフラストラクチャ保守の最小化という目標に反します。