こんにちは。2月も半分が過ぎましたね。Application Load Balancer(以下、ALB)がアプリケーションCookieのスティッキーネスのサポートを開始しました。
https://aws.amazon.com/jp/about-aws/whats-new/2021/02/application-load-balancer-supports-application-cookie-stickiness/

今までとの変更点について、見ていきましょう。

■スティッキーセッションとは
「ターゲットグループ内の同じターゲットにリクエストをルーティングするメカニズムです。これは、クライアントに連続したエクスペリエンスを提供するために状態情報を維持するサーバーに役立ちます。スティッキーセッションを使用するには、クライアントが Cookie をサポートしている必要があります。」

https://docs.aws.amazon.com/ja_jp/elasticloadbalancing/latest/application/load-balancer-target-groups.html#sticky-sessions

ALB配下にあるEC2インスタンスに対してリクエストを行うと、ラウンドロビンで割り振りが行われます。ALBのスティッキーセッションとは、セッション管理のためアクセスするユーザー毎に割り振りを固定させることができる機能です。

つまり、Cookieに割り振り先を記録する事でALBはユーザー毎に同じEC2にアクセスさせ続ける事ができます。Cookieはブラウザに保存されるので、正確にはブラウザ毎に同じEC2へアクセスすることができます。

図にすると以下のようなイメージで接続がされます。

ALBからEC2への割り振りを固定する期限は秒〜7日の範囲で設定できます。
セッションの期限が切れた後は、初回アクセスと同様の流れで接続がされます。

■アプリケーションCookieスティッキーネスとは

今回のリリースでアプリケーションCookieスティッキーネスが利用できるようになりました。今までと何が違うのでしょうか。

【今まで】
ALB によって自動的に生成された Cookie とのクライアントサーバーの親和性を維持するために、期間に基づくスティッキーネスをサポートしていました。

【できるようになったこと】
今回のリリースにより、ターゲットグループレベルで設定されたカスタムアプリケーション Cookie を使用して、クライアントとターゲット間でスティッキーネスの強化ができるようになりました。スティッキーネスが有効になっている期間の前後で、より柔軟なコントロールができるようになります。

有効にするためには、ターゲットグループのスティッキーネスタイプとしてアプリケーションベースのスティッキーネスを選ぶ必要があります。
AWSマネジメントコンソールより、「EC2」へ移動し、「ロードバランシング」より「ターゲットグループ」を選び、「属性」の「編集」をクリックします。「Stickiness」にチェックが入っていない場合、チェックを入れましょう。

チェックを入れると、「Application-based cookie」を選びます。今まで通りのcookieと同じで、割り振りを固定する期間は1秒~7日間です。「App cookie name」を入力して、変更を保存します。

■対応リージョン

全リージョンで対応しています。
※既存のALBでも利用が可能です。

■利用料金

Application Cookie Stickinessは追加料金なしで利用できます。