web-dev-qa-db-ja.com

最新のAWSALB Cookieは必要ですか? (AWS ELB Application Load Balancer)

観察

Amazon ELBApplication Load Balancerを使用し、 Sticky Sessions で作業する場合、ロードバランサーはAWSALBという名前のCookieを挿入します最初のリクエストで。次のリクエストを同じターゲットノード(EC2インスタンス)に固定するには、Cookieをそのリクエストに含める必要があります。そうすると、ロードバランサーは2番目の要求への応答に異なるCookie値を挿入するようです。この新しいCookie値を3番目のリクエストに含めると、応答にまだ新しいCookie値が含まれます。など…

(これは Sticky SessionsがClassic Load Balancerと連携する Cookieの名前はAWSELBと異なり、クライアントまたはロードバランサーによって破棄されるまでその値を保持します。)

AWSALB Cookieが常に値を変更する理由は、( docs で述べられているように)

Cookieの名前はAWSALBです。これらのCookieのコンテンツは、ローテーションキーを使用して暗号化されます。ロードバランサーが生成したCookieを復号化または変更することはできません。

そのため、Cookieの内容が同じであっても、わかりません。

質問

問題は、ロードバランサーへのリクエストにalwaysAWSALB Cookieの最後に受信した値を含める必要があるかどうか、または送信してもよいかどうかです以前に受け取った値(もちろん、同じスティッキーセッションから)。

これが要件である場合、AWS ELB Application Load Balancerは、(最初​​のAWSALB Cookieを受信した後)複数の並列リクエストを実行するクライアントにサービスを提供できませんが、すべてのリクエストをシーケンシャルに実行するクライアント(1つ一度に)。

誰もこれにいくらか光を当てることができますか?

16
mgd

ここで返信を待った後、Amazonでサポートケースを提起し、この返信を受け取りました。

リクエストごとに最新のスティッキネスCookieを提供する必要があるかどうかを確認してください。

CLBとALBで動作が異なることに注意してください。それぞれ独自のスティッキ性を持つ複数のターゲットグループにトラフィックを誘導するApplication Load Balancerのさまざまな機能により、ALBはトラフィックを誘導するために必要な情報を暗号化し、各リクエストで新しいCookieを提供します。これにより、異なるグループの異なる時間が常に正しく尊重されます。

内部的には情報が同じターゲットへの正しいルーティングを保証するため、クライアントは常に最新のCookieを取得できます。単一のCookieを再利用する場合も可能です。ALBはそれを尊重し、Cookieのスティッキ性に従ってトラフィックを正しくルーティングします。ただし、60秒を超える期間に同じCookieを使用することはお勧めしません。これは、ターゲットが利用できなくなった場合に、新しいターゲットにルーティングする新しいスティッキネス情報を持つ新しいCookieを取得できるようにするためです。

16
mgd