Cuando se utiliza un balanceador de carga de aplicaciones ELB de Amazon y se trabaja con Sticky Sessions , el balanceador de carga inserta una cookie denominada AWSALB en la primera solicitud. Para permitir que la siguiente solicitud se adhiera al mismo nodo de destino (instancia EC2), la cookie debe incluirse en esa solicitud. Al hacerlo, parece que el balanceador de carga inserta un valor de cookie diferente en la respuesta a la segunda solicitud. Al incluir este nuevo valor de cookie en la tercera solicitud, obtenemos un nuevo valor de cookie en la respuesta. Etcétera…
(Esto es diferente de cómo funciona Sticky Sessions con Classic Load Balancer, donde la cookie se llama AWSELB y retiene su valor hasta que el cliente o el balanceador de carga la descartan).
La razón por la que la cookie AWSALB cambia de valor todo el tiempo parece ser (como se indica en los documentos ):
El nombre de la cookie es AWSALB. El contenido de estas cookies se cifra mediante una clave rotativa. No puede descifrar ni modificar las cookies generadas por el equilibrador de carga.
Entonces, aunque el contenido de la cookie sea el mismo, no podemos saberlo.
La pregunta es si una solicitud al balanceador de carga siempre debe incluir el valor recibido más recientemente de la cookie AWSALB o si está bien enviar algún valor recibido anteriormente (desde la misma sesión permanente, por supuesto).
Si este es un requisito, AWS ELB Application Load Balancer no podría atender a un cliente que realiza varias solicitudes en paralelo (después de haber recibido la primera cookie AWSALB ), sino solo a los clientes que realizan todas las solicitudes de manera secuencial (una a la vez) .
¿Alguien puede arrojar algo de luz sobre esto?
Después de esperar una respuesta aquí, planteé un caso de soporte con Amazon y obtuve esta respuesta:
Entiendo que le gustaría confirmar si es necesario proporcionar la última cookie permanente para cada solicitud.
Tiene razón al señalar que el comportamiento es diferente entre CLB y ALB. Debido a la diferente funcionalidad de Application Load Balancer para dirigir el tráfico a múltiples grupos de destino, cada uno con su propia adherencia, ALB cifra la información necesaria para dirigir el tráfico y proporciona una nueva cookie en cada solicitud. Esto asegura que los diferentes tiempos para diferentes grupos siempre se respeten correctamente.
Los clientes siempre pueden obtener la última cookie, ya que internamente la información garantizaría el enrutamiento correcto al mismo destino. Si desea reutilizar una sola cookie, también es posible, ALB lo respetará y enrutará correctamente el tráfico según la permanencia en la cookie. Sin embargo, no recomendaría usar la misma cookie por períodos de más de 60 segundos. Esto es para garantizar que, en caso de que el objetivo no esté disponible, pueda adquirir una nueva cookie con nueva información de permanencia que lo dirigirá al nuevo objetivo.