Lorsque vous utilisez un Amazon ELB Equilibreur de charge d'application et que vous travaillez avec Sticky Sessions l'équilibreur de charge insère un cookie nommé AWSALB
dans la première demande. Pour laisser la requête suivante coller au même nœud cible (instance EC2), le cookie doit être inclus dans cette requête. Ce faisant, il semble que l'équilibreur de charge insère une valeur de cookie différente dans la réponse à la 2e demande. Lorsque nous incluons cette nouvelle valeur de cookie dans la 3e demande, nous obtenons encore une nouvelle valeur de cookie dans la réponse. Et ainsi de suite…
(Ceci est différent de la façon dont Sticky Sessions fonctionne avec l'équilibreur de charge classique où le cookie est nommé AWSELB
et conserve sa valeur jusqu'à ce qu'il soit rejeté par le client ou l'équilibreur de charge.)
La raison pour laquelle le cookie AWSALB
change tout le temps de valeur (comme indiqué par le docs ):
Le nom du cookie est AWSALB. Le contenu de ces cookies est crypté à l'aide d'une clé rotative. Vous ne pouvez pas décrypter ou modifier les cookies générés par l'équilibreur de charge.
Donc, même si le contenu du cookie peut être le même, nous ne pouvons pas le dire.
La question est de savoir si une demande adressée à l'équilibreur de charge doit toujours inclure la dernière valeur reçue du cookie AWSALB
ou si elle peut envoyer une valeur précédemment reçue (de la même session collante, bien sûr).
S'il s'agit d'une exigence, l'AWS ELB Application Load Balancer ne serait pas en mesure de servir un client qui exécute plusieurs requêtes parallèles (après avoir reçu le premier cookie AWSALB
), mais uniquement les clients qui exécutent toutes les requêtes de manière séquentielle ( un à la fois).
Quelqu'un peut-il faire la lumière là-dessus?
Après avoir attendu une réponse ici, j'ai soulevé un cas de support avec Amazon et j'ai obtenu cette réponse:
Je comprends que vous souhaitez confirmer s'il est nécessaire de fournir le dernier cookie de collage pour chaque demande.
Vous avez raison de noter que le comportement est différent entre CLB et ALB. En raison des différentes fonctionnalités d'Application Load Balancer pour diriger le trafic vers plusieurs groupes cibles, chacun ayant son propre caractère collant, ALB crypte les informations nécessaires pour diriger le trafic et fournit un nouveau cookie à chaque demande. Cela garantit que les différentes heures pour différents groupes sont toujours respectées correctement.
Les clients peuvent toujours obtenir le dernier cookie, car en interne, les informations garantiraient un routage correct vers la même cible. Si vous souhaitez réutiliser un cookie unique, il est également possible, ALB le respectera et acheminera correctement le trafic conformément à la viscosité du cookie. Je ne recommanderais cependant pas d'utiliser le même cookie pour des périodes de plus de 60 secondes. Ceci est destiné à garantir qu'en cas d'indisponibilité de la cible, vous pouvez acquérir un nouveau cookie avec de nouvelles informations d'adhérence qui vous dirigeraient vers une nouvelle cible.