Q24 — AWS DOP-C02 第2章

第 24/100 問 | ← 第2章

ある企業が、AWS CodeDeployを使用して、Apache Webサーバー上で実行されるJava-Apache Tomcatアプリケーションのデプロイを自動化しています。開発チームは、まず開発環境向けにデプロイグループを作成し、機能テストを実行します。アプリケーションの開発が完了した後、ステージングおよび本番環境向けに追加のデプロイグループを作成します。 現在、Apache設定内でログレベルが構成されていますが、チームはデプロイ時にこの設定を動的に変更したいと考えています。これにより、各デプロイグループごとに異なるログレベル設定を適用でき、各グループごとにアプリケーションの修正を行う必要がなくなります。 これらの要件を、最小限の管理負荷で満たすにはどうすればよいでしょうか?また、各デプロイグループごとに異なるスクリプトバージョンを使用する必要はありません。

正解: B. CodeDeploy環境変数DEPLOYMENT_GROUP_NAMEを使用して、インスタンスが属するデプロイグループを識別するスクリプトを作成します。この情報を使用してログレベル設定を構成します。appspec.ymlファイル内で、このスクリプトをBeforeInstallライフサイクルフックの一部として参照します。

解説

このシナリオでは、チームはデプロイグループに基づいてApacheログレベル設定を動的に変更したいと考えており、各グループごとに異なるアプリケーションリビジョンやスクリプトバージョンを作成する必要はありません。オプションBは、CodeDeploy環境変数`DEPLOYMENT_GROUP_NAME`を使用してインスタンスが属するデプロイグループを識別し、それに基づいてログレベルを設定するソリューションを提供します。この手法により、単一のスクリプトおよびアプリケーションリビジョンで複数のデプロイグループに対応でき、管理負荷が軽減されます。さらに、このスクリプトを`BeforeInstall`ライフサイクルフックの一部として実行することで、アプリケーションの実際のインストール前にログレベル設定が適切に適用されます。したがって、オプションBが正しい解答です。