Q24 — AWS DOP-C02 第2章
第 24/100 問 | ← 第2章
ある企業が、AWS CodeDeployを使用して、Apache Webサーバー上で実行されるJava-Apache Tomcatアプリケーションのデプロイを自動化しています。開発チームは、まず開発環境向けにデプロイグループを作成し、機能テストを実行します。アプリケーションの開発が完了した後、ステージングおよび本番環境向けに追加のデプロイグループを作成します。 現在、Apache設定内でログレベルが構成されていますが、チームはデプロイ時にこの設定を動的に変更したいと考えています。これにより、各デプロイグループごとに異なるログレベル設定を適用でき、各グループごとにアプリケーションの修正を行う必要がなくなります。 これらの要件を、最小限の管理負荷で満たすにはどうすればよいでしょうか?また、各デプロイグループごとに異なるスクリプトバージョンを使用する必要はありません。
- A. Amazon EC2インスタンスにデプロイグループのタグを付与します。その後、アプリケーションリビジョン内に、メタデータサービスおよびEC2 APIを呼び出すスクリプトを配置し、そのインスタンスがどのデプロイグループに属するかを識別します。この情報を使用してログレベル設定を構成します。appspec.ymlファイル内で、このスクリプトをAfterInstallライフサイクルフックの一部として参照します。
- B. CodeDeploy環境変数DEPLOYMENT_GROUP_NAMEを使用して、インスタンスが属するデプロイグループを識別するスクリプトを作成します。この情報を使用してログレベル設定を構成します。appspec.ymlファイル内で、このスクリプトをBeforeInstallライフサイクルフックの一部として参照します。 ✓
- C. 各環境ごとにCodeDeployカスタム環境変数を作成し、アプリケーションリビジョン内にこの環境変数をチェックするスクリプトを配置して、インスタンスがどのデプロイグループに属するかを特定します。この情報を使用してログレベル設定を構成します。appspec.ymlファイル内で、このスクリプトをValidateServiceライフサイクルフックの一部として参照します。
- D. CodeDeploy環境変数DEPLOYMENT_GROUP_IDを使用して、インスタンスが属するデプロイグループを識別するスクリプトを作成し、ログレベル設定を構成します。appspec.ymlファイル内で、このスクリプトをInstallライフサイクルフックの一部として参照します。
正解: B. CodeDeploy環境変数DEPLOYMENT_GROUP_NAMEを使用して、インスタンスが属するデプロイグループを識別するスクリプトを作成します。この情報を使用してログレベル設定を構成します。appspec.ymlファイル内で、このスクリプトをBeforeInstallライフサイクルフックの一部として参照します。
解説
このシナリオでは、チームはデプロイグループに基づいてApacheログレベル設定を動的に変更したいと考えており、各グループごとに異なるアプリケーションリビジョンやスクリプトバージョンを作成する必要はありません。オプションBは、CodeDeploy環境変数`DEPLOYMENT_GROUP_NAME`を使用してインスタンスが属するデプロイグループを識別し、それに基づいてログレベルを設定するソリューションを提供します。この手法により、単一のスクリプトおよびアプリケーションリビジョンで複数のデプロイグループに対応でき、管理負荷が軽減されます。さらに、このスクリプトを`BeforeInstall`ライフサイクルフックの一部として実行することで、アプリケーションの実際のインストール前にログレベル設定が適切に適用されます。したがって、オプションBが正しい解答です。