Controlli dello stato per i gruppi target - Sistema di bilanciamento del carico elastico

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 dello stato per i gruppi target

L'Application Load Balancer invia periodicamente delle richieste alle destinazioni registrate per testare il loro stato. Questi test sono chiamati controlli dello stato.

Ogni nodo del sistema di bilanciamento del carico instrada le richieste solamente sui target integri all'interno delle zone di disponibilità abilitate per il sistema di bilanciamento del carico. Ogni nodo del sistema di bilanciamento del carico controlla lo stato dei target, utilizzando le impostazioni di controllo dello stato per i gruppi di target con i quali il target è registrato. Una volta che un target viene registrato, deve essere sottoposto a un controllo dello stato per essere considerato integro. Dopo il completamento di ciascun controllo dello stato, il nodo del sistema di bilanciamento del carico chiude la connessione definita per il controllo dello stato.

Se un gruppo di destinazione contiene solo destinazioni non integre registrate, il sistema di bilanciamento del carico instrada le richieste a tutte le destinazioni, a prescindere dal loro stato di integrità. Questo significa che tutte le destinazioni non superano i controlli dell'integrità allo stesso tempo in tutte le zone di disponibilità abilitate, nel sistema di bilanciamento del carico si verifica un fail open. L'effetto del fail-open è quello di consentire il traffico verso tutte le destinazioni in tutte le zone di disponibilità abilitate, a prescindere dal loro stato di integrità, sulla base dell'algoritmo del sistema di bilanciamento del carico.

I controlli sanitari non supportano WebSockets.

Impostazioni del controllo dello stato

È possibile configurare controlli dell'integrità per le destinazioni all'interno di un gruppo di destinazioni come viene descritto nella tabella seguente. I nomi delle impostazioni utilizzati nella tabella sono i nomi usati nell'API. Il load balancer invia una richiesta di controllo dello stato a ciascun target registrato ogni HealthCheckIntervalSecondssecondo, utilizzando la porta, il protocollo e il percorso di controllo dello stato specificati. Ogni richiesta di controllo dello stato è indipendente e il risultato dura per l'intero intervallo. Il tempo di risposta del target non influenza l'intervallo per la richiesta di controllo dello stato successiva. Se i controlli di integrità superano gli errori UnhealthyThresholdCountconsecutivi, il load balancer mette fuori servizio l'obiettivo. Quando i controlli di integrità superano i successi HealthyThresholdCountconsecutivi, il load balancer rimette in servizio l'obiettivo.

Impostazione Descrizione

HealthCheckProtocol

Il protocollo utilizzato dal load balancer durante l'esecuzione dei controlli dello stato sui target. I protocolli possibili sono HTTP e HTTPS. L'impostazione predefinita è il protocollo HTTP.

Questi protocolli utilizzano il metodo HTTP GET per inviare richieste di controllo dell'integrità.

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.

HealthCheckPath

La destinazione dei controlli dell'integrità sulle destinazioni.

Se la versione del protocollo è HTTP/1.1 o HTTP/2, specificare un URI valido (/path?query). Il valore di default è /.

Se la versione del protocollo è gRPC, specificare il percorso di un metodo personalizzato per il controllo dell'integrità con il formato /package.service/method. Il valore predefinito è /AWS.ALB/healthcheck.

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. L'impostazione predefinita è 5 secondi se il tipo di destinazione è instance oppure ip e 30 secondi se il tipo di destinazione è lambda.

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. L'impostazione predefinita è 30 secondi se il tipo di destinazione è instance oppure ip e 35 secondi se il tipo di destinazione è lambda.

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.

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.

Matcher

I codici da utilizzare durante la verifica di una risposta con esito positivo ricevuta da una destinazione. Tali codici si chiamano Codici di successo nella console.

Se la versione del protocollo è HTTP/1.1 o HTTP/2, i valori possibili sono compresi tra 200 e 499. Puoi specificare più valori (ad esempio "200,202") o un intervallo di valori (ad esempio "200-299"). Il valore predefinito è 200.

Se la versione del protocollo è gRPC, i valori possibili sono compresi tra 0 e 99. Puoi specificare più valori (ad esempio "0,1") o un intervallo di valori (ad esempio "0-5"). Il valore predefinito è 12.

Stato di integrità della destinazione

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. Prima che un target possa ricevere richieste dal sistema di bilanciamento del carico, deve superare i controlli dello stato iniziali. Una volta che il target ha superato i controlli dello stato iniziali, il suo stato è Healthy.

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

Valore Descrizione

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 | Elb.InitialHealthChecking

healthy

Il target è integro.

Codici di motivo correlati: Nessuno

unhealthy

Il target non ha risposto a un controllo di stato o il controllo dello stato non è andato a buon fine.

Codici di motivo correlati: Target.ResponseCodeMismatch | Target.Timeout | Target.FailedHealthChecks | Elb.InternalError

unused

La destinazione non è registrata con un gruppo di destinazione, il gruppo di destinazione non è utilizzato in una regola del listener, la destinazione è in una zona di disponibilità non abilitata oppure è nello stato arrestato o terminato.

Codici di motivo correlati: Target.NotRegistered | Target.NotInUse | Target.InvalidState | Target.IpUnusable

draining

Il target viene revocato e la connection draining è in corso.

Codice di motivo correlato: Target.DeregistrationInProgress

unavailable

I controlli dello stato sono disabilitati per il gruppo di destinazione.

Codice di motivo correlato: Target.HealthCheckDisabled

Codici di motivo di controllo dello stato

Se lo stato di una destinazione è un valore diverso da Healthy, l'API restituisce un codice di motivo e una descrizione del problema e la console visualizza la stessa descrizione. I codici di motivo che iniziano con Elb vengono creati nella parte relativa al sistema di bilanciamento del carico e i codici di motivo che iniziano con Target vengono creati nella parte relativa ai target. Per ulteriori informazioni sulle possibili cause per cui un controllo dell'integrità non va a buon fine, consulta Risoluzione dei problemi.

Codice di motivo Descrizione

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

I controlli dello stato sono disabilitati

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

Target.ResponseCodeMismatch

I controlli dello stato non sono andati a buon fine con questi codici: [codice]

Target.Timeout

Richiesta scaduta

Controllo dello stato delle destinazioni

È possibile controllare lo stato dei target registrato con i gruppi target.

Per controllare lo stato dei target utilizzando la console
  1. Apri la console Amazon EC2 all'indirizzo https://console.aws.amazon.com/ec2/.

  2. Nel pannello di navigazione, in Bilanciamento del carico scegli Gruppi di destinazione.

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

  4. Nella scheda Target, la colonna Stato indica lo stato di ogni destinazione.

  5. Se lo stato ha un valore diverso da Healthy, la colonna Dettagli dello stato contiene ulteriori informazioni. Per assistenza con i controlli dell'integrità che non vanno a buon fine, consulta Risoluzione dei problemi.

Per controllare lo stato di salute dei tuoi bersagli, usa il AWS CLI

Utilizza il comando describe-target-health. L'output di questo comando contiene lo stato del target. Se lo stato è un valore diverso da Healthy, il risultato comprende anche un codice di motivo.

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.

Modifica delle impostazioni di controllo dello stato di un gruppo target

Puoi modificare le impostazioni di controllo dello stato per il tuo gruppo di target in qualsiasi momento.

Per modificare le impostazioni di controllo dello stato per un gruppo di target tramite la console
  1. Apri la console Amazon EC2 all'indirizzo https://console.aws.amazon.com/ec2/.

  2. Nel pannello di navigazione, in Bilanciamento del carico scegli Gruppi di destinazione.

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

  4. Nella scheda Dettagli del gruppo, nella sezione Impostazioni del controllo dell'integrità, scegli Modifica.

  5. Nella pagina Modifica le impostazioni del controllo dell'integrità, modificare le impostazioni secondo necessità, quindi scegliere Salva modifiche.

Per modificare le impostazioni del controllo dello stato di salute di un gruppo target utilizzando il AWS CLI

Utilizza il comando modify-target-group.