

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Sessioni permanenti con cookie basati su applicazioni
<a name="app-cookies-stickiness"></a>

Quando si utilizza un Application Load Balancer con un cookie basato sull'applicazione:
+ L'Application Load Balancer utilizza il [peso del gruppo target](https://aws.amazon.com/premiumsupport/knowledge-center/elb-make-weighted-target-groups-for-alb/) per determinare come bilanciare il traffico in entrata tra i gruppi target.
+ Per impostazione predefinita, Application Load Balancer utilizza il metodo round robin [per indirizzare le richieste alle EC2 istanze del gruppo target](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-target-groups.html#modify-routing-algorithm) di destinazione.
+ Dopo che il traffico è stato inizialmente indirizzato a un' EC2 istanza, la risposta dell'applicazione dell' EC2 istanza deve contenere un cookie dell'applicazione personalizzato, che viene inviato al client insieme a un cookie Automatico di Application Load Balancer.
+ Il traffico successivo si limiterà all' EC2 istanza se il client restituisce il cookie dell'applicazione e il cookie Application Load Balancer.
+ Il cookie basato sull'applicazione scade dopo il mancato utilizzo per la durata configurata.

**Modello:** utilizza il CloudFormation modello `stickysessionsapp.yml` (incluso nel [file zip con codice di esempio](samples/stickiness.zip)) per provare sessioni permanenti con cookie basati sull'applicazione. 

## Casi di utilizzo comune
<a name="app-cookies-use-cases"></a>

Utilizza sessioni permanenti con cookie generati dall'applicazione quando desideri un controllo aggiuntivo in questi scenari:
+ Server web PHP
+ Server che conservano dati di sessione temporanei come registri, carrelli della spesa o conversazioni in chat

## Modifiche al codice da basic.yml
<a name="app-cookies-code-changes"></a>

L'unica modifica al codice è nella configurazione del gruppo target. Abbiamo aggiunto una configurazione di stickiness agli attributi dell'Application Load Balancer e del gruppo target. La durata del cookie dell'applicazione è specificata e il gruppo target ha abilitato la persistenza dei cookie dell'applicazione.


****  

|  |  | 
| --- |--- |
| basic.yml | stickysessionsapp.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: app_cookie<br />      - Key: stickiness.app_cookie.duration_seconds<br />        Value: 10<br />      - Key: stickiness.app_cookie.cookie_name<br />        Value: TESTCOOKIE</pre> | 

## Fasi
<a name="app-cookies-steps"></a>

**Note**  
I gateway NAT hanno un piccolo costo.
Più EC2 istanze consumeranno le ore del piano gratuito più velocemente di una singola istanza. EC2

1. Implementa il CloudFormation modello `stickysessionslb.yml` in un ambiente di laboratorio.

1. **Attendi che lo stato di salute delle istanze del gruppo target passi da **iniziale** a integro.**

1. Accedere all'URL dell'Application Load Balancer in un browser Web, utilizzando HTTP (TCP/80).

   Ad esempio: `http://alb-123456789.us-east-1.elb.amazonaws.com/`

   **La pagina Web mostra una delle seguenti opzioni: **Istanza 1 - TG1, Istanza 2 -****, Istanza 3 - TG1** **o Istanza 4 - TG2**. TG2**

1. Aggiorna la pagina più volte.

## Risultati attesi
<a name="app-cookies-results"></a>

**Nota**  
Il CloudFormation modello in questo esempio ha configurato la viscosità in modo che duri 10 secondi. La configurazione valida della durata della viscosità è compresa tra 1 secondo e 1 settimana.

L'istanza che carica la pagina Web dovrebbe rimanere la stessa, come indicato dal testo della pagina.

La durata della permanenza non si aggiorna, ma si basa sulla scadenza configurata nell'Application Load Balancer per il cookie dell'applicazione generato dall'istanza. EC2 

**Esempio 1:** attendi 5 secondi per aggiornare la pagina. La stessa istanza verrà caricata e la viscosità verrà aggiornata per altri 10 secondi.

**Esempio 2:** Attendi più di 10 secondi per ricaricare la pagina. Il cookie dell'applicazione scade e l'utente viene indirizzato a un'istanza diversa. EC2 Questa nuova istanza genera un altro cookie dell'applicazione con una durata di 10 secondi.

## Come funziona
<a name="app-cookies-how"></a>
+ In questo esempio sulle EC2 istanze è installato un server web Apache ()`httpd`. Il `httpd.conf` file è configurato per restituire un `Set-Cookie` valore statico al client (il browser Web). Il `Set-Cookie` valore è codificato per essere. `TESTCOOKIE=<somevalue>` 
+ Apri l'opzione **Inspect Element** del browser, scegli la scheda **Rete**, quindi scegli il metodo **Get**, che carica la pagina. Verrà visualizzata la scheda **Cookie**. 
+ Il browser è un'applicazione client configurata automaticamente per restituire eventuali aggiornamenti successivi al server con i cookie che riceve nella `Set-Cookie` risposta del server. 
+ Quando ricarichi la pagina, i cookie ricevuti durante il caricamento iniziale della pagina vengono automaticamente rispediti all'Application Load Balancer.
  + Se il cookie è scaduto (ovvero sono trascorsi 10 secondi dall'ultima chiamata), Application Load Balancer utilizza una nuova logica per determinare a EC2 quale istanza indirizzare il traffico.
  + Se il cookie non è scaduto, l'Application Load Balancer indirizza il traffico verso la EC2 stessa istanza.