Q64 — AWS DOP-C02 第3章
第 64/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ファイルを更新して、カスタムスクリプトなしでファイルの権限を更新します。
解説
CodeDeployは単体テストを実行できますが、そのためにマシン上にCodeDeployエージェントのインストールが必要です(https://aws.amazon.com/blogs/devops/how-to-test-and-debug-aws-codedeploy-locally-before-you-ship-your-code/#:~:text=You%20can%20test%20application%20code,local%20server%20or%20EC2%20instance)。しかし、単体テストの正しい実施方法はCodeBuildを使用することです。A:不正:デプロイパイプラインが存在しません。CodeBuildのみの使用です。BおよびC:不正:単体テストはCodeBuildで実行すべきであり、CodeDeployではありません。D:正解。CodePipeline、単体テスト用のCodeBuild、およびCodeDeployを組み合わせています。