あるチームがAWS Elastic Beanstalkでデプロイ後のアプリケーション動作確認を自動化したいと考えている。新バージョンのデプロイが完了したタイミングでヘルスチェックやスモークテストを自動実行する仕組みとして正しい方法を2つ選択してください。
- A. Elastic BeanstalkのPlatform hooksを使い、postdeploy ディレクトリにスクリプトを配置してデプロイ後に自動実行させる
- B. CloudFormationのUserDataセクションにヘルスチェックスクリプトを記述する
- C. CodePipelineに手動承認ステージを追加してデプロイ後のテストを人手で実施する
- D. Elastic Beanstalkの.ebextensionsディレクトリにcontainer_commandsセクションを定義し、デプロイ後に実行するシェルスクリプトを指定する
- E. Elastic BeanstalkのAutoScalingライフサイクルフックでEC2インスタンス起動時にスクリプトを実行する
解答と解説を見る
正解: A, D
Elastic Beanstalkでデプロイ後にスクリプトを自動実行する方法は主に2つある。1つ目は.ebextensionsの設定ファイルにcontainer_commandsを定義する方法で、アプリケーションのデプロイ後・Webサーバー起動前に任意のコマンドを実行できる。leader_onlyオプションを使えばリーダーインスタンスのみで実行可能である。2つ目はPlatform hooks(新世代プラットフォームで利用可能)で、.platform/hooks/postdeployディレクトリにシェルスクリプトを置くと全インスタンスのデプロイ完了後に自動実行される。PostDeployフック以外にもprebuild/predeploy等のフックがある。EのAutoScalingライフサイクルフックはインスタンスの起動・終了時のフックであり、アプリケーションのデプロイ後実行とは別のタイミングである。Cの手動承認は自動化ではなく、問題の要件(自動実行)と合わない。BのCloudFormation UserDataはEC2インスタンス初回起動時に実行されるものであり、Elastic Beanstalkのデプロイサイクルとは独立している。
📚 関連サービスの解説: AWS Elastic Beanstalk