ある企業が AWS 上で ALB + EC2 Auto Scaling グループを使ったウェブアプリケーションを運用しています。Auto Scaling の Scale-out 後、新しいインスタンスが起動してもアプリケーションの初期化(設定読み込み、キャッシュウォームアップ)に 5〜10 分かかるため、起動直後のインスタンスにトラフィックが転送されると高い応答時間が発生しています。この問題を解決するための最も適切な設定はどれですか?
- A. Auto Scaling グループのウォームアップ期間(Instance Warm-up)を設定し、新しいインスタンスがウォームアップ期間中はスケーリングメトリクスにカウントされないようにする。ALB のターゲットグループのヘルスチェックパスを、アプリケーションの初期化完了を確認できるエンドポイント(例: /health/ready)に設定し、初期化が完了したインスタンスのみをトラフィック受信可能にする
- B. ALB のヘルスチェック間隔を 60 秒に延長する
- C. スポットインスタンスを使って起動時間を短縮する
- D. Auto Scaling の最小インスタンス数を増やして、常にキャパシティを確保する
解答と解説を見る
正解: A
ALB ターゲットグループのヘルスチェックに Readiness チェックエンドポイント(/health/ready)を設定することで、アプリケーションの初期化完了前はヘルスチェックが Healthy にならず、ALB はトラフィックを転送しません。Auto Scaling のウォームアップ期間設定で、起動中のインスタンスを既存のスケーリングメトリクスから除外し、誤ったスケールイン/アウトを防ぎます。 B: ヘルスチェック間隔の延長は検出を遅くするだけで、起動直後のトラフィック問題を解決しません。 C: スポットインスタンスは起動時間の短縮には直接影響しません。アプリケーションの初期化時間は変わりません。 D: 最小インスタンス数の増加はキャパシティを増やしますが、起動直後の高応答時間問題を解決しません。コストも増加します。
📚 関連サービスの解説: Elastic Load Balancing(ELB)