【正解】A
【0からの解説】
ALB のターゲットグループには「スロースタート(slow start)」という機能があります。slow_start.duration_seconds を設定すると、新しく正常になったターゲットへ、いきなり均等なトラフィックを送るのではなく、指定した秒数をかけてトラフィック割合を 0% から徐々に 100% まで増やしていきます。
本設問は「キャッシュが満たされる最大 2 分(120 秒)の間、徐々に増加する割合のトラフィックを受け取りたい」という、まさにスロースタートが解決する要件です。slow_start.duration_seconds を 120 秒に設定すれば、ターゲットが healthy になっても 120 秒かけて段階的にトラフィックが増えます。
なお、スロースタートはターゲットが「新規登録」または「ヘルスチェックで正常になった」タイミングで作動するため、再起動の前後で登録解除・再登録を行うことで確実にスロースタート期間を発動させられます。
【誤りの選択肢】
B:HealthCheckTimeoutSeconds は1回のヘルスチェック応答を待つ秒数で、しかも上限は 120 秒ほどあっても用途が異なります。これを延ばしてもトラフィックを段階的に増やすことはできず、要件を満たしません。
C:weighted_random アルゴリズムはターゲット間の重み付けランダム分散であり、起動直後に段階的に増やす仕組みではありません。さらにヘルスチェック失敗で再起動するアクションも本要件(段階的トラフィック増加)とは無関係です。
D:ライフサイクルフックでキャッシュ完了まで待たせる方式は、Auto Scaling による新規起動には有効ですが、設問は既存インスタンスの「再起動」シナリオです。再起動はスケーリングイベントではないためライフサイクルフックは発火せず、要件に合致しません。slow start の方が直接的で簡潔です。
【参考】
ターゲットグループのスロースタートモードApplication Load Balancer のターゲットグループ