Come posso risolvere e correggere i problemi dei Classic Load Balancer che non superano i controlli dell'integrità?
Desidero risolvere i problemi delle istanze dietro il mio Classic Load Balancer che non superano i controlli dell'integrità.
Risoluzione
Elastic Load Balancing (ELB) supporta gli Application Load Balancer, i Network Load Balancer e i Classic Load Balancer. Per risolvere i problemi di un Classic Load Balancer che non supera i controlli dell'integrità, puoi eseguire il runbook AWSSupport-TroubleshootELBHealthChecks. Il runbook automatizza l'analisi delle metriche di controllo dell'integrità dalla dashboard di Amazon CloudWatch e convalida le configurazioni di rete tra il Classic Load Balancer e le destinazioni. Per le destinazioni gestite da AWS Systems Manager, il runbook fornisce comandi diagnostici avanzati con conservazione facoltativa dei log in Amazon S3. La soluzione varia in base al tipo di destinazione dell'istanza.
Le istanze eseguite sui Classic Load Balancer potrebbero non superare i controlli dell'integrità per i seguenti motivi:
Problemi di connettività tra il bilanciatore del carico e il backend
- Assicurati che il backend consenta il traffico del controllo dell'integrità. Per controllare le regole del gruppo di sicurezza, consulta Gruppi di sicurezza per le istanze del tuo Classic Load Balancer. Per l'istanza di backend, consulta Configurazione dei gruppi di sicurezza per Classic Load Balancer.
- La lista di controllo degli accessi alla rete (ACL) per la sottorete con il bilanciatore del carico e il backend deve consentire il traffico del controllo dell'integrità. Per verificare le regole dell'ACL, consulta Configura le ACL per il tuo Classic Load Balancer.
- I firewall a livello di istanza o di sistema operativo nel backend devono consentire il traffico del controllo dell'integrità in entrata e in uscita.
- L'utilizzo della memoria e della CPU per l'istanza di backend deve rientrare nei limiti accettabili. Se l'utilizzo della memoria o della CPU è troppo elevato, aggiungi altri backend o aggiorna i backend passando a un tipo di istanza più grande.
- Le risorse aggiuntive devono consentire il traffico del controllo dell'integrità. Il backend potrebbe inoltrare la richiesta di controllo dell'integrità a una risorsa aggiuntiva. Se la dipendenza aggiuntiva non risponde o impiega troppo tempo a rispondere, il controllo dell'integrità scade e non viene superato. Assicurati che la risorsa aggiuntiva risponda alle richieste di controllo dell'integrità.
Problemi di configurazione dell'applicazione
- Assicurati che l'applicazione sia in esecuzione. Ad esempio, se esegui Apache in un'istanza Linux, utilizza il comando sudo service httpd status per verificare che Apache sia in esecuzione.
- L'applicazione deve essere in ascolto sulla porta del controllo dell'integrità. Per verificare che il server sia in ascolto sulla porta del controllo dell'integrità, esegui il comando netstat -ant sul server. Controlla la porta di configurazione dell'applicazione per verificare che sia in esecuzione. Per simulare una connessione TCP tra il bilanciatore del carico e il backend, esegui il comando telnet <backend private IP> <health-check port> sull'istanza. Se l'output è Connected, il backend è in ascolto sulla porta del controllo dell'integrità.
- L'applicazione deve essere impostata per rispondere alle richieste con un'intestazione host personalizzata. Per i controlli dell'integrità HTTP e HTTPS, i Classic Load Balancer impostano l'intestazione sull'indirizzo IP privato con l'interfaccia di rete primaria del backend. Inoltre, impostano l'agente utente su ELB-HealthChecker/1.0. Se il backend risponde solo alle richieste con un'intestazione host personalizzata o con un agente utente, la richiesta di controllo dell'integrità ha esito negativo.
- L'applicazione deve essere in ascolto sull'interfaccia di rete primaria del backend. I Classic Load Balancer si connettono all'interfaccia di rete primaria dell'istanza di backend. Assicurati che l'applicazione sia in ascolto sull'interfaccia di rete primaria dell'istanza di backend. Ciò consente al backend di inviare una risposta alle richieste di controllo dell'integrità.
Risposta "200 OK" mancante dal backend a una richiesta di controllo dell'integrità
- Il percorso ping deve essere valido. Se non configuri il file specificato nel percorso ping nel backend, il backend potrebbe rispondere con 404 Not Found. Questo provoca il mancato superamento del controllo dell'integrità.
Nota: il valore predefinito per il percorso ping è /index.html. Se non hai un file index.html nel backend, creane uno. In alternativa, puoi modificare il valore del percorso ping con un nome di file nel backend. - Non hai configurato correttamente il reindirizzamento nel backend. Un reindirizzamento configurato in modo errato può comportare un codice di risposta 301 o 302 e il mancato superamento dei controlli dell'integrità. Ad esempio, se hai un reindirizzamento da HTTP:80 a HTTP:443 nel backend, i controlli dell'integrità HTTP sulla porta 80 non vengono superati. Devi modificare il controllo dell'integrità in HTTPS e la porta del controllo dell'integrità in 443.
Nota: puoi simulare la richiesta di controllo dell'integrità inviata dal bilanciatore del carico. Utilizza questo comando curl da un'istanza della sottorete associata al bilanciatore del carico:curl -Ivk http[s]://<private-IP-address-of-the-backend-instance>:<health-check-port>/<health-check-target-page>
Problemi con SSL
- Tutti i protocolli e i codici devono corrispondere. Per i controlli dell'integrità HTTPS o SSL, il bilanciatore del carico e il backend devono utilizzare lo stesso protocollo e lo stesso codice. Le acquisizioni di pacchetti effettuate nell'istanza di backend mostrano i cifrari e il protocollo supportati dal bilanciatore del carico. Tali informazioni sono reperibili nel client hello inviato dal bilanciatore del carico. L'istanza di backend registrata deve supportare uno o più cifrari corrispondenti e un protocollo inviato dal bilanciatore del carico.
- Il bilanciatore del carico non invia l'intestazione Server Name Indication (SNI) quando esegue un controllo dell'integrità. Ad esempio, il controllo dell'integrità è HTTPS/SSL. Se l'istanza di backend è configurata per rispondere all'handshake SSL in base alle informazioni SNI specifiche, l'handshake SSL ha esito negativo. Questo perché il server invia un RST dopo il client hello. Configura il server di backend in modo che risponda indipendentemente dall'SNI. In alternativa, puoi utilizzare il controllo dell'integrità TCP.
Informazioni correlate
- Argomenti
- Networking & Content Delivery
- Lingua
- Italiano
