Q60 — AWS DOP-C02 第3章

第 60/100 問 | ← 第3章

ある企業が、現在使用しているbashデプロイスクリプトをAWS開発ツールに置き換えたいと考えています。同社は現在、LAMPアプリケーションをアプリケーションロードバランサー(ALB)の後ろに配置された一連のAmazon EC2インスタンスにデプロイしています。デプロイ期間中、同社は提出されたアプリケーションの単体テストを実行し、サービスを停止・起動し、ロードバランサーからインスタンスを登録解除・再登録し、ファイルの権限を更新します。同社は、AWSサービスへの移行を通じて、これらのデプロイ機能を維持したいと考えています。 これらの要件を満たすソリューションはどれですか?

正解: 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マネージドサービスによる機能代替を実現しており、「スクリプトからサービスへの移行」という核心的な要件を満たします。