

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 gerados pelo balanceador de carga
<a name="alb-cookies-stickiness"></a>

Quando você usa um Application Load Balancer com um cookie gerado pelo balanceador de carga:
+ O Application Load Balancer usa o [peso do grupo-alvo](https://aws.amazon.com/premiumsupport/knowledge-center/elb-make-weighted-target-groups-for-alb/) 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](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-target-groups.html#modify-routing-algorithm) no grupo-alvo de destino.

  Depois que o tráfego for roteado inicialmente para uma instância, o tráfego subsequente permanecerá nessa EC2 instância por um período especificado.

**Modelo:** use o CloudFormation modelo `stickysessionslb.yml` (incluído no [arquivo.zip do código de amostra](samples/stickiness.zip)) para experimentar sessões fixas com cookies gerados pelo balanceador de carga. 

## Casos de uso comuns
<a name="alb-cookies-use-cases"></a>

Use sessões fixas com cookies gerados pelo balanceador de carga 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 name="alb-cookies-code-changes"></a>

As alterações de código relevantes estão na configuração do grupo-alvo, para definir o tipo de aderência `lb_cookie` e a duração em 10 segundos.


****  

|  |  | 
| --- |--- |
| basic.yml | stickysessionslb.yml | 
| <pre>TG1:<br />   Type: 'AWS::ElasticLoadBalancingV2::TargetGroup'<br />   Properties:<br />     Name: TG1<br />     Protocol: HTTP<br />     Port: 80<br />     TargetType: instance<br />     Targets:<br />       - Id: !Ref Instance1<br />       - Id: !Ref Instance2<br />VpcId: !Ref CustomVPC</pre> | <pre>TG1:<br />   Type: 'AWS::ElasticLoadBalancingV2::TargetGroup'<br />   Properties:<br />     Name: TG1<br />     Protocol: HTTP<br />     Port: 80<br />     TargetType: instance<br />     Targets:<br />       - Id: !Ref Instance1<br />       - Id: !Ref Instance2<br />     VpcId: !Ref CustomVPC<br />     TargetGroupAttributes:<br />       - Key: stickiness.enabled<br />         Value: true<br />       - Key: stickiness.type<br />         Value: lb_cookie<br />       - Key: stickiness.lb_cookie.duration_seconds<br />Value: 10</pre> | 

## Etapas
<a name="alb-cookies-steps"></a>

**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.

1. Implante o CloudFormation modelo `stickysessionslb.yml` em um ambiente de laboratório.

1. Espere até que o status de saúde das instâncias do seu grupo-alvo mude de **inicial** para **íntegro**.

1. 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 - TG1**.

1. Atualize a página várias vezes.

## Resultados esperados
<a name="alb-cookies-results"></a>

**nota**  
O CloudFormation modelo neste exemplo configura a aderência para durar 10 segundos.

A instância que carrega a página da Web deve permanecer a mesma dentro da duração de 10 segundos, conforme refletido no texto da página. Após aproximadamente 10 segundos, a aderência é liberada e a instância de destino pode mudar.

## Como funciona
<a name="alb-cookies-how"></a>
+ Neste exemplo, duas EC2 instâncias estão presentes em um grupo-alvo. As EC2 instâncias têm um servidor web Apache (`httpd`) instalado e o texto da `index.html` página em cada EC2 instância é codificado para ser distinto.
+ O Application Load Balancer cria uma vinculação para a sessão do usuário, que se vincula ao destino, com um prazo de expiração.
+ Quando você recarrega a página, o Application Load Balancer verifica se a vinculação existe e se não expirou.
  + Se a vinculação tiver expirado ou não existir, o Application Load Balancer executará sua lógica de roteamento e determinará a instância de destino. 
  + Se a vinculação não tiver expirado, o Application Load Balancer roteará o tráfego para a mesma instância de destino.