As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Sessões fixas com cookies baseados em aplicativos
Quando você usa um Application Load Balancer com um cookie baseado em aplicativo:
-
O Application Load Balancer usa o peso do grupo-alvo
para determinar como equilibrar o tráfego de entrada entre os grupos-alvo. -
Por padrão, o Application Load Balancer usa o método round robin para encaminhar solicitações para as EC2 instâncias no grupo-alvo de destino.
-
Depois que o tráfego é roteado inicialmente para uma EC2 instância, a resposta do aplicativo da EC2 instância deve conter um cookie de aplicativo personalizado, que é enviado de volta ao cliente junto com um cookie automatizado do Application Load Balancer.
-
O tráfego subsequente permanecerá na EC2 instância se o cliente devolver o cookie do aplicativo e o cookie Application Load Balancer.
-
O cookie baseado no aplicativo expira após o não uso durante o período configurado.
Modelo: use o AWS CloudFormation modelo stickysessionsapp.yml
(incluído no arquivo.zip do código de amostra) para experimentar sessões fixas com cookies baseados em aplicativos.
Casos de uso comuns
Use sessões fixas com cookies gerados pelo aplicativo quando quiser controle adicional nesses cenários:
-
Servidores web PHP
-
Servidores que mantêm dados temporários da sessão, como registros, carrinhos de compras ou conversas de bate-papo
Alterações no código de basic.yml
A única alteração no código está na configuração do grupo-alvo. Adicionamos uma configuração de aderência ao Application Load Balancer e aos atributos do grupo-alvo. A duração do cookie do aplicativo é especificada e o grupo-alvo tem a aderência do cookie do aplicativo ativada.
basic.yml |
stickysessionsapp.yml |
|
|
Etapas
Observações
-
Os gateways NAT têm um custo pequeno.
-
Várias EC2 instâncias usarão suas horas de nível gratuito mais rápido do que uma única EC2 instância.
-
Implante o CloudFormation modelo
stickysessionslb.yml
em um ambiente de laboratório. -
Espere até que o status de saúde das instâncias do seu grupo-alvo mude de inicial para íntegro.
-
Navegue até o URL do Application Load Balancer em um navegador da Web, usando HTTP (TCP/80).
Por exemplo:
http://alb-123456789.us-east-1.elb.amazonaws.com/
A página da Web exibe uma das seguintes opções: Instância 1 - TG1, Instância 2 - TG1, Instância 3 - TG2 ou Instância 4 - TG2.
-
Atualize a página várias vezes.
Resultados esperados
nota
O CloudFormation modelo neste exemplo configurou a aderência para durar 10 segundos. A configuração válida da duração da aderência é entre 1 segundo e 1 semana.
A instância que carrega a página da Web deve permanecer a mesma, conforme indicado pelo texto da página.
A duração da aderência não é atualizada, mas é baseada na expiração configurada no Application Load Balancer para o cookie do aplicativo gerado pela instância. EC2
Exemplo 1: Aguarde 5 segundos para atualizar a página. A mesma instância será carregada e a aderência será atualizada por mais 10 segundos.
Exemplo 2: Aguarde mais de 10 segundos para recarregar a página. O cookie do aplicativo expira e você é direcionado para uma instância diferente EC2 . Essa nova instância gera outro cookie de aplicativo com duração de 10 segundos.
Como funciona
-
Neste exemplo, as EC2 instâncias têm um servidor web Apache (
httpd
) instalado. Ohttpd.conf
arquivo está configurado para retornar umSet-Cookie
valor estático ao cliente (seu navegador da web). OSet-Cookie
valor está codificado para ser.TESTCOOKIE=<somevalue>
-
Abra a opção Inspecionar elemento do seu navegador, escolha a guia Rede e, em seguida, escolha o método Get, que carrega a página. Você verá uma guia Cookies.
-
O navegador é um aplicativo cliente configurado automaticamente para retornar quaisquer atualizações subsequentes ao servidor com os cookies que recebe na
Set-Cookie
resposta do servidor. -
Quando você recarrega a página, os cookies recebidos no carregamento inicial da página são automaticamente enviados de volta ao Application Load Balancer.
-
Se o cookie tiver expirado (ou seja, 10 segundos se passaram desde que você fez a última chamada), o Application Load Balancer usa uma nova lógica para determinar para EC2 qual instância rotear o tráfego.
-
Se o cookie não tiver expirado, o Application Load Balancer direcionará o tráfego para a EC2 mesma instância.
-