LoginSignup
10
7

More than 1 year has passed since last update.

AWS ALB スティッキーセッション メモ

Posted at

スティッキーセッションとは

  • ロードバランサーがクライアント状態を管理するために使用する情報。
    • ロードバランサーを用いて負荷分散を行う場合に、セッション管理を行うWebアプリなどで毎回同じサーバーにアクセスさせるために利用する。

AWS ALBのスティッキーセッション

  • AWS ALB(Application Load Balancer)ではCookieを利用したスティッキーセッション機能を利用することができる。
  • 次の2種類のスティッキーセッション機能を提供している。

期間ベースCookie

  • ロードバランサーが生成した Cookie (AWSALB) を使用し、ターゲットグループ内の同じターゲットにリクエストをルーティングする。

  • フロー

    1. ロードバランサーは、クライアントから最初のリクエストを受信した際、リクエストをターゲットにルーティングし、AWSALB という名前のCookie を生成し、ターゲットからのレスポンスにセットする。

      • ターゲットに関する情報をエンコードしてCookie を暗号化し、クライアントへの応答に Cookie を含める。
    2. クライアントは 、AWSALBCookie を含めて後続のリクエストを行う。

    3. ロードバランサーは、 Cookieを含んだリクエストを受信し、同じターゲットにリクエストをルーティングする。

      ss_alb.png

アプリケーションベースCookie

  • アプリケーション側で生成した独自のCookieをALB設定に指定し、そのCookieを使用して、ターゲットグループ内の同じターゲットにリクエストをルーティングする。

    • 期間ベースよりもより柔軟なセッション維持が可能。
  • フロー

    1. ロードバランサーはターゲットグループ内のターゲットに最初のリクエストをルーティングする。

    2. ターゲットは、ロードバランサーで設定したCookieと同じアプリケーションCookieをレスポンスに設定する。

    3. ロードバランサーは、ターゲットからアプリケーションCookie を受信すると、持続性情報をキャプチャする新しい暗号化されたアプリケーションCookieを生成する。

    4. クライアントは、両方のCookieをセットして後続のリクエストを行う。

    5. ロードバランサーは、アプリケーションCookieを復号し、設定した持続期間が有効かどうかを確認する。その後、Cookie内の情報を使用して、ターゲットグループ内の同じターゲットにリクエストを送信する。

      ss_app.png

AWS CLIでの設定

  • 期間ベースCookie

    aws elbv2 modify-target-group-attributes --target-group-arn ARN --attributes Key=stickiness.enabled,Value=true Key=stickiness.lb_cookie.duration_seconds,Value=time-in-seconds
    
  • アプリケーションベースCookie

    aws elbv2 modify-target-group-attributes --target-group-arn ARN --attributes Key=stickiness.enabled,Value=true Key=stickiness.type,Value=app_cookie Key=stickiness.app_cookie.cookie_name Value=my-cookie-name Key=stickiness.app_cookie.duration_seconds Value=time-in-seconds
    

参考情報

10
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
7