ALBのスティッキーセッションの仕様について教えてください。

2023.02.15

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

困っていた内容

Application Load Balancer でスティッキーセッションの利用を検討しています。

ロードバランサーが生成した期間ベースの Cookie を利用する予定ですが、維持設定の期間で設定した Cookie の有効期限は以下のどちらからカウントされるか教えてください。

  • 最初のアクセスから
  • 最終アクセスから

どう対応すればいいの?

ドキュメントによると、Application Load Balancer のスティッキーセッションは、リクエストごとに生成する Cookie の有効期限がリセットされる仕様です。

アクセスごとに Cookie の有効期限は更新されることから、最終アクセスごとにカウントがリセットされます。

Application Load Balancer のスティッキーセッション - Elastic Load Balancing

どの維持の種類でも、Application Load Balancer はリクエストごとに生成する Cookie の有効期限をリセットします。

どの維持の種類でも、と記載がある通り、期間ベースの Cookie とアプリケーションベースの Cookie の両方において上述の仕様で機能します。

ちなみに Classic Load Balancer の場合

Classic Load Balancer の場合、スティッキーセッションの仕様が Application Load Balancer が異なります。

Classic Load Balancer ではリクエストごとに Cookie の有効期限がリセットされません。

Configure sticky sessions for your Classic Load Balancer - Elastic Load Balancing

The load balancer does not refresh the expiry time of the cookie and does not check whether the cookie is expired before using it.

Configure sticky sessions for your Classic Load Balancer - Elastic Load Balancing

The load balancer stickiness cookie does not update with each request.

ELBのスティッキーセッションについて調べてみた | DevelopersIO

Classic Load Balancer を利用の際、または Application Load Balancer へ移行の際は仕様の差異にご注意ください。

参考資料

Application Load Balancer のスティッキーセッション - Elastic Load Balancing

Configure sticky sessions for your Classic Load Balancer - Elastic Load Balancing

ELBのスティッキーセッションについて調べてみた | DevelopersIO