無限ノック › DOP 練習問題一覧 › 問題
DOP弾力性に優れたクラウドソリューション

あるECサイトのAuto ScalingグループはALB(Application Load Balancer)配下のEC2インスタンスでWebアプリケーションを実行しています。スケールイン(インスタンス縮小)発生時に処理中のHTTPリクエストが突然切断され、ユーザーに接続エラーが表示されています。調査の結果、Auto ScalingがインスタンスをTerminatingに移行すると同時にOSプロセスが終了していることが判明しました。 以下の順序でグレースフル終了を実現する構成として最も適切なものはどれですか? ①ALBからの新規リクエスト受付停止 → ②既存リクエストの処理完了 → ③カスタムクリーンアップ(DBコネクションのクローズ等)実行 → ④インスタンス終了

A
Auto Scalingグループの終了ポリシー(Termination Policy)をOldestInstanceに変更し、最も古いインスタンスから優先的にスケールインして新規リクエストの割り当てを抑制することで処理の分散を図る
終了ポリシー(Termination Policy)は対象インスタンスの選択基準であり終了プロセスの制御とは無関係です。
B
ALBの登録解除遅延を300秒に設定し、Auto Scalingライフサイクルフックを「Terminating:Wait」で構成してSSM Run Commandでクリーンアップを実行後にcomplete-lifecycle-actionを発行する
✓ 正解
ALBの登録解除遅延はターゲット登録解除後に既存接続が完了するまでALBが待機する時間を設定し①②を実現します。Auto Scalingライフサイクルフックは「Terminating:Wait」状態でインスタンスを保持し、SSM Run Commandでカスタムクリーンアップスクリプトを実行(③)後にcomplete-lifecycle-actionで終了を完了する(④)。この組み合わせにより、アプリケーションコード変更なしに4段階のグレースフル終了が実現できます。
C
インスタンスのUser DataスクリプトにSIGTERMシグナルハンドラを実装し、受信時にすべてのアクティブリクエストが完了するまでプロセスを待機させてからシャットダウンするようアプリケーションを修正する
SIGTERMハンドラはアプリケーションコード修正が必要で要件を満たしません。
D
CloudWatchでActiveConnectionCountメトリクスが0になったことを検知し、Auto Scalingのスケールイン保護(Scale-In Protection)を解除するLambda関数を実行して終了を許可する
スケールイン保護のLambda解除は実装が複雑で全リクエスト完了の確実な検知が困難です。

解説

ALBの登録解除遅延はターゲット登録解除後に既存接続が完了するまでALBが待機する時間を設定し① ②を実現します。Auto Scalingライフサイクルフックは「Terminating:Wait」状態でインスタンスを保持し、SSM Run Commandでカスタムクリーンアップスクリプトを実行(③)後にcomplete-lifecycle-actionで終了を完了する(④)。この組み合わせにより、アプリケーションコード変更なしに4段階のグレースフル終了が実現できます。 選択肢Aの終了ポリシー(Termination Policy)は対象インスタンスの選択基準であり終了プロセスの制御とは無関係です。 選択肢Cの SIGTERMハンドラはアプリケーションコード修正が必要で要件を満たしません。 選択肢Dのスケールイン保護のLambda解除は実装が複雑で全リクエスト完了の確実な検知が困難です。

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

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

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