ある企業が、Amazon EC2 の Web アプリケーションに対して Application Load Balancer(ALB)を使用している。アプリケーションはセッション情報を必要とするが、クライアントが同じ EC2 インスタンスにリクエストを送り続けることを ALB レベルで保証したい。最も適切な設定はどれか。
- A. EC2 インスタンスに Elastic IP を割り当てて、クライアントが直接 IP アドレスにアクセスするようにする。
- B. ALB のリスナーを複数作成し、各ユーザーを専用のリスナーポートに割り当てる。
- C. ALB のターゲットグループでスティッキーセッション(Sticky Sessions)を有効化し、期間ベースのクッキーを設定する。
- D. ALB の前段に Route 53 を配置して重み付けルーティングでトラフィックを分散する。
解答と解説を見る
正解: C
ALB のスティッキーセッション(Sticky Sessions)機能を有効化すると、ALB がクライアントのブラウザに専用クッキーを発行し、以降のリクエストを同じターゲット(EC2 インスタンス)に転送するようになる。期間(Duration)ベースのスティッキーセッションは指定した期間内は同一インスタンスへのリクエストが保証される。選択肢Bのリスナーをユーザーごとに作成する方法は現実的ではなく、管理が不可能なほどの複雑さになる。ALB の機能としても誤った理解である。選択肢DのRoute 53 重み付けルーティングはトラフィックの分散比率を制御するが、同一ユーザーを同一インスタンスにルーティングする機能ではない。選択肢AのElastic IP で直接アクセスは ALB を使わなくなるため、ロードバランシングの利点が失われ、スケーリングも困難になる。
📚 関連サービスの解説: Elastic Load Balancing(ELB)