無限ノック › DVA 練習問題一覧 › 問題
DVAデプロイ

Elastic Beanstalk でデプロイされる Python アプリケーションの設定として、「アプリケーションのソースコードが展開された後、Webサーバーが起動する前に」データベースマイグレーションスクリプトを実行する必要があります。.ebextensions を使用する場合、どの設定キーを使うべきですか?

A
commands セクションにスクリプトを記述する
.ebextensionsのcommandsセクションはアプリケーションソース展開前に実行されるため、デプロイされたコードが必要なDBマイグレーションには不適切です。
B
container_commands セクションにスクリプトを記述する
✓ 正解
container_commandsはソース展開後・Webサーバー起動前に実行され、DBマイグレーション実行に最適なタイミングです。leader_only: trueで複数インスタンス環境でも1台のみ実行、重複実行防止できます。
C
option_settings セクションにスクリプトを記述する
option_settingsはアプリケーション設定(環境変数など)を定義するセクションであり、任意のスクリプト実行には使用できません。
D
files セクションにスクリプトを配置し、Procfile で参照する
filesセクションでスクリプト配置しProcfileで参照する方式では、適切なタイミング制御と実行環境の保証が不十分で、DBマイグレーション用途には不適切です。

解説

container_commands は .ebextensions の設定キーで、アプリケーションソースの展開後・Webサーバー起動前に実行されます。DBマイグレーションなど「コードが展開された後に実行したい処理」に最適で、leader_only: true を指定すると複数インスタンス環境でも1台のみで実行されマイグレーションの重複実行を防げます。 選択肢A(commands): commands はアプリケーションソースが展開される前に実行されるため、マイグレーションに必要なコードがまだ存在しない状態での実行となり、「展開後・起動前」という要件を満たせません。 選択肢B(container_commands): ソース展開後・Webサーバー起動前に実行されるため、DBマイグレーションを正しいタイミングで安全に実行できます。leader_only: true で複数インスタンス環境での重複実行も防止できます。 選択肢C(option_settings): option_settings はElastic Beanstalkの設定オプション(環境変数・リスナーポートなど)を定義するセクションであり、任意のスクリプトやコマンドを実行する機能はありません。 選択肢D(files + Procfile): files セクションはファイルをインスタンスに配置する機能です。Procfile はアプリケーションプロセスの起動コマンドを定義するもので、デプロイ前の任意スクリプトを指定タイミングで実行する制御には使用できません。

ドメイン別正答率・予想スコアでリアルタイムに実力把握

無限ノックでDVAを徹底対策。全問AI生成のオリジナル問題。

無料で演習を始める →
← DVA の問題一覧に戻る