Q82 — AWS DOP-C02 第3章
第 82/100 問 | ← 第3章
ある企業がレガシーアプリケーションをAWSに移行しようとしています。DevOpsエンジニアは、このレガシーアプリケーションのデプロイ可能なアーティファクトを構築するプロセスを自動化する必要があります。ソリューションは、デプロイ可能なアーティファクトを既存のAmazon S3バケットに保存し、今後のデプロイで参照できるようにしなければなりません。 これらの要件を最も効率的に満たすソリューションはどれですか?
- A. レガシーアプリケーションのすべての依存関係を含むカスタムDockerイメージを作成します。このカスタムDockerイメージを新しいAmazon Elastic Container Registry (Amazon ECR)リポジトリに保存します。カスタムDockerイメージを使用してデプロイ可能なアーティファクトを構築し、そのアーティファクトをS3バケットに保存するよう、新しいAWS CodeBuildプロジェクトを設定します。 ✓
- B. 新しいAmazon EC2インスタンスを起動します。EC2インスタンス上にレガシーアプリケーションのすべての依存関係をインストールします。このEC2インスタンスを使用してデプロイ可能なアーティファクトを構築し、そのアーティファクトをS3バケットに保存します。
- C. カスタムEC2イメージビルダーイメージを作成します。このイメージ上にレガシーアプリケーションのすべての依存関係をインストールします。このイメージから新しいAmazon EC2インスタンスを起動します。新しいEC2インスタンスを使用してデプロイ可能なアーティファクトを構築し、そのアーティファクトをS3バケットに保存します。
- D. 複数の可用性ゾーンで実行されるAWS Fargateプロファイルを持つAmazon Elastic Kubernetes Service (Amazon EKS)クラスターを作成します。レガシーアプリケーションのすべての依存関係を含むカスタムDockerイメージを作成します。このカスタムDockerイメージを新しいAmazon Elastic Container Registry (Amazon ECR)リポジトリに保存します。EKSクラスター内のカスタムDockerイメージを使用してデプロイ可能なアーティファクトを構築し、そのアーティファクトをS3バケットに保存します。
正解: A. レガシーアプリケーションのすべての依存関係を含むカスタムDockerイメージを作成します。このカスタムDockerイメージを新しいAmazon Elastic Container Registry (Amazon ECR)リポジトリに保存します。カスタムDockerイメージを使用してデプロイ可能なアーティファクトを構築し、そのアーティファクトをS3バケットに保存するよう、新しいAWS CodeBuildプロジェクトを設定します。
解説
Amazon CodeBuildは、ソースコードのコンパイル、テストの実行、およびデプロイ可能なソフトウェアパッケージの生成を直接行う完全マネージド型の継続的インテグレーションサービスです。ECRで管理されるカスタムDockerイメージにより、ビルド環境の依存関係を事前にプロビジョニングでき、毎回のビルドで依存関係を再インストールする手間を省けます。CodeBuildは、ビルド結果をS3バケットに出力する機能をネイティブにサポートしています。他の選択肢では、BおよびCはEC2インスタンスの手動管理に依存しており、リソースの無駄や保守コストが発生します。DはEKSクラスターとFargateを導入しており、レガシーアプリケーションの要件に対して過剰なアーキテクチャ複雑度を伴います。正解は、AWSのCI/CDベストプラクティス文書における「マネージドサービスを用いたパイプライン構築」の推奨ソリューションに対応しています。