webentwicklung-frage-antwort-db.com.de

Ist das neueste AWSALB-Cookie erforderlich? (AWS ELB Application Load Balancer)

Beobachtungen

Bei Verwendung eines Amazon ELB Application Load Balancer und Arbeiten mit Sticky Sessions fügt der Load Balancer ein Cookie mit dem Namen AWSALB ein. in der ersten Anfrage. Damit die nächste Anforderung auf demselben Zielknoten (EC2-Instanz) bleibt, sollte das Cookie in dieser Anforderung enthalten sein. Dabei scheint der Load Balancer in der Antwort auf die 2. Anfrage einen anderen Cookie-Wert einzufügen. Wenn wir diesen neuen Cookie-Wert in die dritte Anfrage aufnehmen, erhalten wir in der Antwort noch einen neuen Cookie-Wert. Und so weiter…

(Dies unterscheidet sich von Sticky Sessions funktioniert mit dem Classic Load Balancer wo das Cookie AWSELB heißt und seinen Wert behält, bis es vom Client oder dem Load Balancer verworfen wird.)

Der Grund, warum sich der Wert des Cookies AWSALB ständig ändert, scheint folgender zu sein (wie in docs angegeben):

Der Name des Cookies ist AWSALB. Der Inhalt dieser Cookies wird mit einem Drehschlüssel verschlüsselt. Sie können von Load Balancer generierte Cookies nicht entschlüsseln oder ändern.

Auch wenn der Inhalt des Cookies derselbe sein könnte, können wir es nicht sagen.

Frage

Die Frage ist, ob eine Anfrage an den Load Balancer immer den zuletzt empfangenen Wert des Cookies AWSALB enthalten muss oder ob das Senden in Ordnung ist einige zuvor erhaltene Werte (natürlich aus derselben Sticky-Session).

Wenn dies erforderlich ist, kann der AWS ELB Application Load Balancer keinen Client bedienen, der mehrere parallele Anforderungen ausführt (nachdem der erste Cookie AWSALB empfangen wurde), sondern nur Clients, die alle Anforderungen nacheinander ausführen (einen) zu einer Zeit).

Kann jemand etwas Licht ins Dunkel bringen?

16
mgd

Nachdem ich hier auf eine Antwort gewartet hatte, habe ich einen Support-Fall bei Amazon angesprochen und diese Antwort erhalten:

Ich verstehe, dass Sie bestätigen möchten, ob für jede Anforderung das neueste Cookie für die Klebrigkeit bereitgestellt werden muss.

Sie haben Recht, wenn Sie feststellen, dass das Verhalten zwischen CLB und ALB unterschiedlich ist. Aufgrund der unterschiedlichen Funktionen von Application Load Balancer zum Weiterleiten des Datenverkehrs an mehrere Zielgruppen, von denen jede eine eigene Klebrigkeit aufweist, verschlüsselt ALB die für die Weiterleitung des Datenverkehrs erforderlichen Informationen und stellt bei jeder Anforderung neue Cookies bereit. Dies stellt sicher, dass unterschiedliche Zeiten für unterschiedliche Gruppen immer korrekt eingehalten werden.

Clients können immer das neueste Cookie abrufen, da die Informationen intern eine korrekte Weiterleitung an dasselbe Ziel sicherstellen würden. Wenn Sie ein einzelnes Cookie wiederverwenden möchten, ist es auch möglich, dass ALB es respektiert und den Verkehr gemäß der Klebrigkeit im Cookie korrekt weiterleitet. Ich würde jedoch nicht empfehlen, dasselbe Cookie für einen Zeitraum von mehr als 60 Sekunden zu verwenden. Dies soll sicherstellen, dass Sie im Falle der Nichtverfügbarkeit eines Ziels ein neues Cookie mit neuen Haftungsinformationen erwerben können, das Sie zu einem neuen Ziel weiterleiten würde.

16
mgd