Complete a 3 Question Survey and Earn a re:Post Badge
Help improve AWS Support Official channel in re:Post and share your experience - complete a quick three-question survey to earn a re:Post badge!
Come faccio a risolvere e correggere gli errori del controllo dell'integrità degli Application Load Balancer
Desidero scoprire perché i target registrati nel mio Application Load Balancer non sono integri.
Soluzione
Per risolvere i problemi relativi ai controlli dell’integrità non riusciti per Application Load Balancer, individua il codice del motivo e la descrizione del problema. Quindi, per risolvere il problema completa le seguenti attività.
Trova il codice del motivo e la descrizione del problema
Utilizza la mappa delle risorse anziché la console del gruppo target per visualizzare le risorse del bilanciatore del carico, quindi identifica i target non integri. La mappa delle risorse mostra tutte le risorse di Application Load Balancer su un'unica pagina.
Nota: se la risposta HTTP del target di Application Load Balancer non è quella prevista, controlla la risposta dell'applicazione. Assicurati che l'applicazione invii la risposta corretta al bilanciatore del carico.
Risolvi il problema sulla base del codice del motivo
A seconda del codice del motivo del controllo dell’integrità trovato, completa le seguenti attività per risolvere il problema.
Elb.InitialHealthChecking
Prima che un target possa ricevere richieste dal bilanciatore del carico, questo deve superare i controlli dell’integrità iniziali. Attendi che il target superi i controlli dell’integrità iniziali e verifica nuovamente il suo stato di integrità.
Elb.RegistrationInProgress
il bilanciatore del carico inizia a instradare le richieste verso il target non appena il processo di registrazione viene completato e il target supera i controlli dell’integrità iniziali.
Target.DeregistrationInProgress
Quando si annulla la registrazione di un target, il bilanciatore del carico non invia più richieste al target. Elastic Load Balancing attende 300 secondi prima di completare l'annullamento della registrazione. Tuttavia, puoi utilizzare la console Amazon EC2 o l'interfaccia della linea di comando AWS (AWS CLI) per aggiornare il valore del ritardo. Per ulteriori informazioni, consulta Deregistration delay.
Nota: se visualizzi dei messaggi di errore quando esegui i comandi dell'interfaccia della linea di comando AWS, consulta la sezione Risolvere gli errori AWS CLI. Inoltre, assicurati di utilizzare la versione più recente di AWS CLI.
Target.FailedHealthChecks
Per risolvere questo problema, completa i passaggi seguenti:
-
Verifica che l'applicazione sia in esecuzione. Esegui il comando service per verificare lo stato dei servizi per i target Linux. Per i target Windows, controlla la scheda Servizi in Gestione attività di Windows. Se il servizio risulta interrotto, avvialo. Se il servizio non viene riconosciuto, verifica che sia installato.
-
Verifica che il target sia in ascolto del traffico sulla porta di controllo dell’integrità. Puoi eseguire il comando ss sui target Linux per verificare le porte su cui il server è in ascolto. Per i target di Windows, puoi eseguire il comando netstat.
-
Avvia o usa un'istanza esistente nello stesso cloud privato virtuale (VPC) dell'istanza di destinazione. Assicurati di avere accesso a tale istanza. Oppure, se il target è accessibile pubblicamente, invia una richiesta di controllo dell’integrità direttamente all'indirizzo IP pubblico del target.
Usa il seguente comando CURL:
$curl -vkso /dev/null <HealthCheck_protocol>://<Target_IP>:<HealthCheck_port>/<HealthCheck_path>
Nota: usa questo metodo per bypassare l'Application Load Balancer e verificare se il target risponde correttamente alle richieste di controllo dell’integrità del bilanciatore del carico.
-
Verifica che l'applicazione risponda correttamente alle richieste di controllo dell’integrità del bilanciatore del carico. L'esempio seguente mostra una tipica richiesta di controllo dell’integrità di Application Load Balancer che i target devono restituire con una risposta HTTP valida:
GET / HTTP/1.1Host: 10.0.0.1:80 Connection: close User-Agent: ELB-HealthChecker/2.0 Accept-Encoding: gzip, compressed
Nota: nell’esempio precedente il valore dell'intestazione dell’host contiene l'indirizzo IP privato del target, seguito dalla porta del controllo dell’integrità. L’agente utente è impostato su ELB-HealthChecker/2.0. Il carattere di terminazione di riga per i campi di intestazione del messaggio è la sequenza CRLF e l'intestazione termina alla prima riga vuota seguita da un CRLF. Per ricevere le richieste di controllo dell’integrità, potrebbe essere necessario aggiungere un host virtuale predefinito alla configurazione del server Web.
-
Se hai collegato più interfacce al target, verifica che l'applicazione sia in ascolto sull'interfaccia di rete corretta. Per ulteriori informazioni, consulta Target type.
-
Verifica che il target fornisca un certificato del server e una chiave nel formato specificato nella policy di sicurezza di Elastic Load Balancing. Inoltre, verifica che il target supporti le crittografie e i protocoli corrispondenti forniti dal bilanciatore del carico per stabilire l'handshake TLS.
Target.InvalidState
Se il target è un'istanza Amazon EC2, utilizza la console Amazon EC2 per verificare che l'istanza sia in esecuzione. Se l'istanza non è in esecuzione, avviala manualmente.
Target.IpUnusable
Se il tipo di target è ip, non scegliere un indirizzo IP già utilizzato da un bilanciatore del carico.
Target.NotInUse
Per risolvere questo problema, completa i passaggi seguenti:
- Controlla il gruppo target per verificare che sia configurato per ricevere traffico dal bilanciatore del carico.
- Assicurati che la zona di disponibilità del target sia attivata per il bilanciatore del carico.
Target.NotRegistered
Verifica che il target sia registrato nel gruppo target.
Target.ResponseCodeMismatch
Per risolvere questo problema, completa i passaggi seguenti:
- Rivedi la configurazione del controllo dell’integrità per verificare i codici di successo che il bilanciatore del carico si aspetta di ricevere. Per impostazione predefinita, il codice di successo è 200, ma è possibile inserire valori compresi tra 200 e 499. Controlla i log di accesso al server Web per assicurarti che vengano restituiti i codici di successo previsti.
- Verifica che il percorso ping sia valido. Assicurati di specificare un URI valido. Il valore predefinito è /.
Per modificare il valore del codice di successo o il percorso ping, consulta Modify the health check settings of a target group.
Target.Timeout
Se riesci a connetterti, la pagina di destinazione potrebbe non rispondere prima del periodo di timeout del controllo dell’integrità. La maggior parte dei server Web, come NGINX e IIS, consente di registrare il tempo impiegato dal server per rispondere. Per ulteriori informazioni, consulta Configuring logging sul sito Web NGINX e Configurare la registrazione in IIS sul sito Web di Microsoft.
Se le richieste di controllo dell’integrità necessitano di più tempo rispetto al timeout configurato, completa le seguenti attività:
- Scegli una pagina di destinazione più semplice per il controllo dell’integrità.
- Modifica le impostazioni del controllo dell’integrità.
Se non riesci a connetterti, completa le seguenti attività:
- Utilizza la porta di controllo dell’integrità e il protocollo di controllo dell’integrità per verificare che il gruppo di sicurezza associato al target consenta il traffico proveniente dal bilanciatore del carico. È possibile aggiungere una regola per il gruppo di sicurezza per consentire tutto il traffico proveniente dal gruppo di sicurezza del bilanciatore del carico. Inoltre, il gruppo di sicurezza del bilanciatore del carico deve consentire il traffico verso i target.
- Verifica che la lista di controllo degli accessi alla rete (ACL) associata alle sottoreti target consenta il traffico in ingresso sulla porta del controllo dell’integrità. L'ACL di rete deve inoltre consentire il traffico in uscita sulle porte temporanee (1024-65535).
- Verifica che l'ACL di rete associato alle sottoreti dei nodi consenta il traffico in entrata sulle porte temporanee. L'ACL di rete deve inoltre consentire il traffico in uscita sulle porte di controllo dell’integrità e sulle porte temporanee.
- Verifica che i firewall a livello di sistema operativo sul target consentano il traffico in entrata e in uscita per il controllo dell’integrità.
- Verifica che la tabella di routing per le sottoreti del target contenga una voce che consenta il traffico per il controllo dell’integrità verso il bilanciatore del carico.
- Verifica che l'utilizzo della memoria e della CPU del target rientri nella capacità accettabile. Se l'utilizzo della memoria o della CPU è troppo elevato, aggiungi dei target oppure aumenta la capacità del gruppo Auto Scaling. Se il target è un'istanza EC2, modifica l'istanza con un tipo di istanza più grande.
Informazioni correlate
Video correlati

