無限ノック › SOA 練習問題一覧 › 問題
SOA信頼性とビジネス継続性

EC2 Auto Scalingグループ(ALBと統合)で、新しくスケールアウトされたインスタンスの起動時にSSM Run Commandで初期化スクリプト(所要時間:約5分)を実行する必要があります。スクリプトが完了していないインスタンスにトラフィックが転送されないよう保証するための最も確実な方法はどれですか?

A
ALBターゲットグループのヘルスチェックグレースピリオドを600秒に設定し、その間ヘルスチェック失敗による終了を防ぐ
(ヘルスチェックグレースピリオド)は、ヘルスチェック失敗による「終了」を抑制するだけでトラフィック転送は防げません。
B
Auto ScalingのライフサイクルフックをEC2_INSTANCE_LAUNCHINGフェーズに設定し、初期化スクリプト完了後にcomplete-lifecycle-actionを呼び出してInServiceへ遷移させる
✓ 正解
ライフサイクルフックを設定するとインスタンスはPending:Wait状態で一時停止し、complete-lifecycle-actionが呼ばれるまでInServiceに遷移しません。InServiceになるまでALBのターゲットとして登録されないため、未初期化インスタンスへのトラフィック送信を確実に防げます。
C
EC2ユーザーデータでスクリプトを実行し、完了後にApacheを起動することでALBのHTTPヘルスチェックを通過させる
(ユーザーデータ)は、Apache起動とスクリプト完了のタイミング制御が困難です。
D
EventBridgeルールでEC2 Running状態のイベントを検知し、Lambdaで初期化後にaws autoscaling set-instance-healthを実行してHealthyに変更する
(EventBridge + Lambda)は、Auto ScalingのヘルスステータスをHealthyに変更してもALBターゲットグループへの登録タイミングを制御できず、インスタンスがInServiceになった直後にトラフィックが転送される可能性を排除できません。

解説

ライフサイクルフックを設定するとインスタンスはPending:Wait状態で一時停止し、complete-lifecycle-actionが呼ばれるまでInServiceに遷移しません。InServiceになるまでALBのターゲットとして登録されないため、未初期化インスタンスへのトラフィック送信を確実に防げます。 選択肢A(ヘルスチェックグレースピリオド)は、ヘルスチェック失敗による「終了」を抑制するだけでトラフィック転送は防げません。 選択肢C(ユーザーデータ)は、Apache起動とスクリプト完了のタイミング制御が困難です。 選択肢D(EventBridge + Lambda)は、Auto ScalingのヘルスステータスをHealthyに変更してもALBターゲットグループへの登録タイミングを制御できず、インスタンスがInServiceになった直後にトラフィックが転送される可能性を排除できません。

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

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

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