

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

# Controlli di integrità per i gruppi target di Network Load Balancer
<a name="target-group-health-checks"></a>

È possibile registrare i target con uno o più gruppi target. Il load balancer inizia a instradare le richieste verso un target appena registrato non appena il processo di registrazione viene completato e le destinazioni superano i controlli di integrità iniziali. Il completamento del processo di registrazione e l'avvio dei controlli dello stato può richiedere alcuni minuti.

I sistemi Network Load Balancer utilizzano i controlli dell'integrità attivi e passivi per determinare se una destinazione è disponibile per gestire le richieste. Per impostazione predefinita, ogni nodo del sistema di bilanciamento del carico instrada le richieste ai target integri nella sua zona di disponibilità. Se attivi il bilanciamento del carico su più zone, ogni nodo di bilanciamento del carico instrada le richieste nei target registrati in tutte le zone di disponibilità attivate. Per ulteriori informazioni, consulta [Bilanciamento del carico su più zone](network-load-balancers.md#cross-zone-load-balancing).

Con i controlli dello stato passivi, il sistema di bilanciamento del carico osserva come i target rispondono alle connessioni. I controlli dello stato passivi abilitano il sistema di bilanciamento del carico per rilevare un target non integro prima che sia segnalato come non integro dai controlli dello stato attivi. Non è possibile disabilitare, configurare o monitorare i controlli dello stato passivi. I controlli di integrità passivi non sono supportati per il traffico UDP e i gruppi target con viscosità sono attivati. Per ulteriori informazioni, consulta [Sticky](edit-target-group-attributes.md#sticky-sessions) sessions.

Se una destinazione diventa non integra, il sistema di bilanciamento del carico invia un RST TCP per i pacchetti ricevuti sulle connessioni client associate alla destinazione, a meno che la destinazione non integra non provochi il fail-open da parte del sistema di bilanciamento del carico. 

Se nei gruppi di destinazione non è presenta una destinazione integra in una zona di disponibilità abilitata, rimuoviamo l'indirizzo IP per la sottorete corrispondente da DNS, in modo che le richieste non possano essere instradate alla destinazione in quella zona di disponibilità. Se tutte le destinazioni non superano i controlli dell'integrità nello stesso momento in tutte le zone di disponibilità abilitate, il sistema di bilanciamento del carico attiva il fail-open. I Network Load Balancer non si aprono anche quando il gruppo target è vuoto. L'effetto del fail-open è quello di consentire il traffico verso tutte le destinazioni in tutte le zone di disponibilità abilitate, indipendentemente dal loro stato di integrità.

Se un gruppo di destinazione è configurato con i controlli dell'integrità HTTPS, le destinazioni registrate non superano i controlli dell'integrità se supportano solo TLS 1.3. Queste destinazioni devono supportare una versione precedente di TLS, come TLS 1.2.

Per le richieste di controllo dello stato HTTP o HTTPS, l'intestazione host contiene l'indirizzo IP del nodo del sistema di bilanciamento del carico e la porta del listener anziché l'indirizzo IP della destinazione e la porta di controllo dello stato.

Se aggiungi un ascoltatore TLS al Network Load Balancer, viene eseguito un test di connettività dell'ascoltatore. Poiché la terminazione TLS termina anche una connessione TCP, viene stabilita una nuova connessione TCP tra il sistema di bilanciamento del carico e i target. Pertanto, è possibile che le connessioni TCP per questo test vengano inviate dal sistema di bilanciamento del carico alle destinazioni registrate con il listener TLS. È possibile identificare queste connessioni TCP perché hanno l'indirizzo IP di origine del Network Load Balancer e le connessioni non contengono pacchetti di dati.

Per i servizi UDP e QUIC, la disponibilità del target può essere testata utilizzando controlli di integrità non UDP sul gruppo target. Puoi utilizzare qualsiasi controllo sanitario disponibile (TCP, HTTP o HTTPS) e qualsiasi porta sulla destinazione per verificare la disponibilità del servizio. Se il servizio sottoposto al controllo dell'integrità ha esito negativo, la destinazione è considerata non disponibile. Per migliorare l'accuratezza dei controlli di integrità del servizio, configurate il servizio in ascolto della porta di controllo dello stato del servizio UDP o QUIC e non superate il controllo di integrità se il servizio non è disponibile.

Per ulteriori informazioni, consulta [Integrità del gruppo di destinazione](load-balancer-target-groups.md#target-group-health).

**Topics**
+ [Impostazioni del controllo dello stato](#health-check-settings)
+ [Stato di integrità della destinazione](#target-health-states)
+ [Codici di motivo di controllo dello stato](#target-health-reason-codes)
+ [Controlla lo stato del bersaglio](check-target-health.md)
+ [Aggiorna le impostazioni del controllo sanitario](modify-health-check-settings.md)

## Impostazioni del controllo dello stato
<a name="health-check-settings"></a>

È possibile configurare controlli dello stato attivi per i target in un gruppo target utilizzando le seguenti impostazioni. Se i controlli di integrità superano gli errori **UnhealthyThresholdCount**consecutivi, il load balancer mette fuori servizio il target. Quando i controlli di integrità superano i successi **HealthyThresholdCount**consecutivi, il load balancer rimette in servizio l'obiettivo.


| Impostazione | Description | Predefinita | 
| --- | --- | --- | 
|  **HealthCheckProtocol**  |  Il protocollo utilizzato dal load balancer durante l'esecuzione dei controlli dello stato sui target. I protocolli possibili sono HTTP, HTTPS e TCP. L'impostazione predefinita è il protocollo TCP. Se il tipo di destinazione è `alb`, i protocolli di controllo dell'integrità supportati sono HTTP e HTTPS.  | TCP | 
|  **HealthCheckPort**  |  La porta utilizzata dal load balancer durante l'esecuzione dei controlli dello stato sui target. L'impostazione predefinita è quella di utilizzare la porta sulla quale ciascun target riceve il traffico dal sistema di bilanciamento del carico.  | Porta sulla quale ciascuna destinazione riceve il traffico dal sistema di bilanciamento del carico. | 
|  **HealthCheckPath**  |  [Controlli di integrità HTTP/HTTPS] Il percorso dei controlli di integrità che è la destinazione degli obiettivi per i controlli sanitari. Il valore di default è /.  |  / | 
|  **HealthCheckTimeoutSeconds**  |  Il periodo di tempo, in secondi, durante il quale l'assenza di risposta da un target indica che un controllo dello stato non è riuscito. L'intervallo è compreso tra 2 e 120 secondi. I valori predefiniti sono 6 secondi per i controlli dell'integrità HTTP e 10 secondi per i controlli dell'integrità TCP e HTTPS.  | 6 secondi per i controlli dell'integrità HTTP e 10 secondi per i controlli dell'integrità TCP e HTTPS. | 
|  **HealthCheckIntervalSeconds**  |  Il periodo di tempo approssimativo, in secondi, tra i controlli dell'integrità di una singola destinazione. L'intervallo è compreso tra 5 e 300 secondi. Il valore predefinito è 30 secondi. I controlli dell'integrità per un Network Load Balancer vengono distribuiti e utilizzano un meccanismo di consenso per determinare lo stato di integrità della destinazione. Pertanto, i target ricevono più del numero configurato di controlli dello stato. Per ridurre l'impatto sui target se si stanno usando i controlli dello stato HTTP, usare una destinazione più semplice sui target, come un file HTML statico, oppure passare ai controlli dello stato TCP.  | 30 secondi | 
|  **HealthyThresholdCount**  |  Il numero di controlli dello stato andati a buon fine consecutivi necessari prima di considerare integro un target non integro. L'intervallo è compreso tra 2 e 10. Il predefinito è 5.  | 5 | 
|  **UnhealthyThresholdCount**  |  Numero di controlli dello stato consecutivi non andati a buon fine necessari prima di considerare un target non integro. L'intervallo è compreso tra 2 e 10. Il valore predefinito è 2.  | 2 | 
|  **Matcher**  |  [Controlli dello stato HTTP/HTTPS] I codici HTTP da utilizzare durante la verifica di una risposta con esito positivo ricevuta da un target. L'intervallo è compreso tra 200 e 599. Il valore predefinito è compreso tra 200 e 399.  | 200-399 | 

## Stato di integrità della destinazione
<a name="target-health-states"></a>

Prima che il sistema di bilanciamento del carico invii una richiesta di controllo dello stato a un target, è necessario registrarlo con un gruppo target, specificare il gruppo target in una regola del listener e assicurarsi che la zona di disponibilità del target sia abilitata per il sistema di bilanciamento del carico.

La tabella seguente descrive i valori possibili per lo stato di un target registrato.


| Valore | Description | 
| --- | --- | 
| `initial` |  È in corso il processo di registrazione del target o di esecuzione dei controlli dello stato iniziali del target da parte del sistema di bilanciamento del carico. Codici di motivo correlati: `Elb.RegistrationInProgress` \$1 `Elb.InitialHealthChecking`  | 
| `healthy` |  Il target è integro. Codici di motivo correlati: Nessuno  | 
| `unhealthy` |  L'obiettivo non ha risposto a un controllo dello stato di salute, non ha superato il controllo dello stato o il bersaglio è in stato di arresto. Codice di motivo correlato: `Target.FailedHealthChecks`  | 
| `draining` |  Il target viene revocato e la connection draining è in corso. Codice di motivo correlato: `Target.DeregistrationInProgress`  | 
| `unhealthy.draining` |  L'obiettivo non ha risposto ai controlli sanitari o non ha superato i controlli sanitari ed entra in un periodo di tolleranza. La destinazione supporta le connessioni esistenti e non accetterà nuove connessioni durante questo periodo di prova. Codice di motivo correlato: `Target.FailedHealthChecks`  | 
| `unavailable` |  Lo stato della destinazione non è disponibile. Codice di motivo correlato: `Elb.InternalError`  | 
| `unused` |  La destinazione non è registrata presso un gruppo target, non viene utilizzato in una regola del listener o la destinazione si trova in una zona di disponibilità non abilitata. Codici di motivo correlati: `Target.NotRegistered` \$1 `Target.NotInUse` \$1 `Target.InvalidState` \$1 `Target.IpUnusable`  | 

## Codici di motivo di controllo dello stato
<a name="target-health-reason-codes"></a>

Se lo stato di una target è un valore diverso da `Healthy`, l'API restituisce un codice di motivo e una descrizione del problema e la console visualizza la stessa descrizione in un tooltip. Nota che i codici di motivo che iniziano con `Elb` hanno origine sul lato del sistema di bilanciamento del carico e i codici di motivo che iniziano con `Target` hanno origine sul lato del target.


| Codice di motivo | Description | 
| --- | --- | 
| `Elb.InitialHealthChecking` |  Controlli dello stato iniziali in corso  | 
| `Elb.InternalError` |  I controlli dello stato non andati a buon fine a causa di un errore interno  | 
| `Elb.RegistrationInProgress` |  La registrazione del target è in corso  | 
| `Target.DeregistrationInProgress` |  La revoca del target è in corso  | 
| `Target.FailedHealthChecks` |  Controlli dello stato non andati a buon fine  | 
| `Target.InvalidState` |  La destinazione è in stato di arresto La destinazione è in stato terminato I target sono in stato di arresto o terminato Il target è in uno stato non valido  | 
| `Target.IpUnusable` |  L'indirizzo IP non può essere utilizzato come destinazione, poiché è in uso in un sistema di bilanciamento del carico.  | 
| `Target.NotInUse` |  Il gruppo target non è configurato per la ricezione del traffico dal sistema di bilanciamento del carico. Il target si trova in una zona di disponibilità che non è abilitata per il sistema di bilanciamento del carico  | 
| `Target.NotRegistered` |  Il target non è registrato nel gruppo target  | 

# Verifica lo stato dei tuoi obiettivi di Network Load Balancer
<a name="check-target-health"></a>

È possibile controllare lo stato dei target registrato con i gruppi target. Per informazioni sugli errori dei controlli di integrità, vedi [Risoluzione dei problemi: un obiettivo registrato non è in servizio](load-balancer-troubleshooting.md#target-not-in-service).

------
#### [ Console ]

**Per verificare lo stato di salute dei tuoi obiettivi**

1. Apri la console Amazon EC2 all'indirizzo [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. Nel riquadro di navigazione, sotto **Bilanciamento del carico**, scegli **Gruppi di destinazioni**.

1. Scegli il nome del gruppo di destinazione per visualizzarne i dettagli.

1. La scheda **Dettagli** mostra il numero totale di bersagli, più il numero di bersagli per ogni stato di salute.

1. Nella scheda **Destinazioni**, la colonna **Stato di integrità** indica lo stato di ogni destinazione.

1. Se lo stato di una destinazione è un valore diverso da `Healthy`, la colonna **Dettagli sullo stato di integrità** mostra ulteriori informazioni.

**Per ricevere notifiche via e-mail su destinazioni non integre**  
Usa gli CloudWatch allarmi per attivare una funzione Lambda per inviare dettagli su obiettivi non sani. Per step-by-step istruzioni, consulta il seguente post sul blog: [Identificazione degli obiettivi non integri del sistema di bilanciamento del carico](https://aws.amazon.com/blogs/networking-and-content-delivery/identifying-unhealthy-targets-of-elastic-load-balancer/).

------
#### [ AWS CLI ]

**Per verificare lo stato di salute dei tuoi obiettivi**  
Utilizza il comando [describe-target-health](https://docs.aws.amazon.com/cli/latest/reference/elbv2/describe-target-health.html). Questo esempio filtra l'output per includere solo gli obiettivi non integri. Per gli obiettivi non integri, l'output include un codice motivo.

```
aws elbv2 describe-target-health \
    --target-group-arn target-group-arn \
    --query "TargetHealthDescriptions[?TargetHealth.State!='healthy'].[Target.Id,TargetHealth.State,TargetHealth.Reason]" \
    --output table
```

Di seguito è riportato un output di esempio.

```
----------------------------------------------
|            DescribeTargetHealth            |
+--------------+---------+-------------------+
|  172.31.0.57 |  unused |  Target.NotInUse  |
|  172.31.0.50 |  unused |  Target.NotInUse  |
+--------------+---------+-------------------+
```

------

## Stati di destinazione e codici motivo
<a name="target-states-reason-codes"></a>

L'elenco seguente mostra i possibili codici motivo per ogni stato di destinazione.

**Lo stato di destinazione è healthy**  
Non viene fornito un codice motivo.

**Lo stato di destinazione è initial**  
+  `Elb.RegistrationInProgress`- La destinazione è in fase di registrazione presso il sistema di bilanciamento del carico.
+  `Elb.InitialHealthChecking`- Il load balancer sta ancora inviando all'obiettivo il numero minimo di controlli di integrità necessari per determinarne lo stato di salute.

**Lo stato di destinazione è unhealthy**  
+ `Target.FailedHealthChecks`- Il sistema di bilanciamento del carico ha ricevuto un errore durante lo stabilimento di una connessione alla destinazione o la risposta del target non era corretta.

**Lo stato di destinazione è unused**  
+ `Target.NotRegistered`- L'obiettivo non è registrato presso il gruppo target.
+ `Target.NotInUse`- Il gruppo target non viene utilizzato da alcun sistema di bilanciamento del carico o il target si trova in una zona di disponibilità non abilitata per il relativo bilanciamento del carico.
+ `Target.InvalidState`- La destinazione è nello stato interrotto o terminato.
+ `Target.IpUnusable`- L'indirizzo IP di destinazione è riservato all'uso da parte di un sistema di bilanciamento del carico.

**Lo stato di destinazione è draining**  
+ `Target.DeregistrationInProgress`- L'obiettivo è in fase di cancellazione e il periodo di ritardo per la cancellazione non è scaduto.

**Lo stato di destinazione è unavailable**  
+ `Elb.InternalError`- L'integrità dell'obiettivo non è disponibile a causa di un errore interno.

# Aggiornare le impostazioni del controllo dello stato di un gruppo target di Network Load Balancer
<a name="modify-health-check-settings"></a>

Puoi aggiornare le impostazioni del controllo sanitario per il tuo gruppo target in qualsiasi momento. Per l'elenco delle impostazioni del controllo sanitario, vedere[Impostazioni del controllo dello stato](target-group-health-checks.md#health-check-settings).

------
#### [ Console ]

**Per aggiornare le impostazioni del controllo sanitario**

1. Apri la console Amazon EC2 all'indirizzo [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. Nel riquadro di navigazione, sotto **Bilanciamento del carico**, scegli **Gruppi di destinazioni**.

1. Scegli il nome del gruppo di destinazione per aprire la relativa pagina dei dettagli.

1. Nella scheda **Controlli dello stato**, seleziona **Modifica**.

1. Nella pagina **Modifica le impostazioni del controllo sanitario**, modificare le impostazioni in base alle esigenze.

1. Scegli **Save changes** (Salva modifiche).

------
#### [ AWS CLI ]

**Per aggiornare le impostazioni del controllo sanitario**  
Utilizza il comando [modify-target-group](https://docs.aws.amazon.com/cli/latest/reference/elbv2/modify-target-group.html). L'esempio seguente aggiorna le **HealthCheckTimeoutSeconds**impostazioni **HealthyThresholdCount**e.

```
aws elbv2 modify-target-group \
    --target-group-arn target-group-arn \
    --healthy-threshold-count 3 \
    --health-check-timeout-seconds 20
```

------
#### [ CloudFormation ]

**Per aggiornare le impostazioni del controllo sanitario**  
Aggiorna la [AWS::ElasticLoadBalancingV2::TargetGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-elasticloadbalancingv2-targetgroup.html)risorsa per includere le impostazioni aggiornate del controllo sanitario. L'esempio seguente aggiorna le **HealthCheckTimeoutSeconds**impostazioni **HealthyThresholdCount**and.

```
Resources:
  myTargetGroup:
    Type: 'AWS::ElasticLoadBalancingV2::TargetGroup'
    Properties:
      Name: my-target-group
      Protocol: TCP
      Port: 80
      TargetType: instance
      VpcId: !Ref myVPC
      HealthyThresholdCount: 3
      HealthCheckTimeoutSeconds: 20
```

------