Q60 — AWS DOP-C02 第3章
第 60/100 問 | ← 第3章
ある企業が、現在使用しているbashデプロイスクリプトをAWS開発ツールに置き換えたいと考えています。同社は現在、LAMPアプリケーションをアプリケーションロードバランサー(ALB)の後ろに配置された一連のAmazon EC2インスタンスにデプロイしています。デプロイ期間中、同社は提出されたアプリケーションの単体テストを実行し、サービスを停止・起動し、ロードバランサーからインスタンスを登録解除・再登録し、ファイルの権限を更新します。同社は、AWSサービスへの移行を通じて、これらのデプロイ機能を維持したいと考えています。 これらの要件を満たすソリューションはどれですか?
- A. AWS CodeBuildを使用してアプリケーションをテストします。AWS CodeDeployのappspec.ymlファイルから呼び出されるbashスクリプトを使用してサービスを再起動し、ALBからインスタンスを登録解除・再登録します。appspec.ymlファイルを使用して、カスタムスクリプトなしでファイルの権限を更新します。
- B. AWS CodePipelineを使用して、AWS CodeCommitリポジトリからアプリケーションをAWS CodeDeployに移動します。CodeDeployのデプロイメントグループを使用してアプリケーションをテストし、ALBのインスタンスを登録解除・再登録し、サービスを再起動します。appspec.ymlファイルを使用して、カスタムスクリプトなしで権限を更新します。
- C. AWS CodePipelineを使用して、AWS CodeCommitリポジトリからアプリケーションのソースコードをAWS CodeDeployに移動します。CodeDeployを使用してアプリケーションをテストします。CodeDeployのappspec.ymlファイルを使用して、カスタムスクリプトなしでサービスを再起動し、権限を更新します。AWS CodeBuildを使用してALBからインスタンスを登録解除・再登録します。
- D. AWS CodePipelineを使用してAWS CodeBuildをトリガーし、アプリケーションをテストします。AWS CodeDeployのappspec.ymlファイルから呼び出されるbashスクリプトを使用してサービスを再起動します。ALBからAWS CodeDeployデプロイメントグループ内のインスタンスを登録解除・再登録します。appspec.ymlファイルを更新して、カスタムスクリプトなしでファイルの権限を更新します。 ✓
正解: D. AWS CodePipelineを使用してAWS CodeBuildをトリガーし、アプリケーションをテストします。AWS CodeDeployのappspec.ymlファイルから呼び出されるbashスクリプトを使用してサービスを再起動します。ALBからAWS CodeDeployデプロイメントグループ内のインスタンスを登録解除・再登録します。appspec.ymlファイルを更新して、カスタムスクリプトなしでファイルの権限を更新します。
解説
この問題は、AWS継続的デプロイツールチェーンのコア統合能力を問うものであり、テスト自動化、サービスの停止・起動、ロードバランサーアプリケーションへのインスタンス登録/登録解除、ファイル権限更新という4つの機能を同時に満たす必要があります。AWS CodePipelineはオーケストレーションの中心としてAWS CodeBuildによる単体テストをトリガーし、CodeDeployはappspec.ymlファイルを用いてファイル権限の更新を直接管理し、ALBへのインスタンス登録/登録解除およびサービス再起動などの必要不可欠な操作をカスタムbashスクリプトで処理できるようにします。この組み合わせは、既存スクリプトの重要な操作を継承しつつ、可能な限りAWSマネージドサービスによる機能代替を実現しており、「スクリプトからサービスへの移行」という核心的な要件を満たします。