Come posso utilizzare Elastic Load Balancing per risolvere i problemi di accesso al mio sito Web?

5 minuti di lettura
0

Non è possibile accedere al mio sito Web. Come posso utilizzare Elastic Load Balancing (ELB) per capire il motivo per cui gli utenti finali non possono accedere al mio sito Web?

Breve descrizione

Esistono diversi motivi per cui potresti non essere in grado di raggiungere il tuo sito Web. Per trovare il percorso migliore per la risoluzione dei problemi, rispondi prima a queste domande:

  • Il sito Web non è raggiungibile e viene visualizzata una pagina di timeout predefinita del browser?
  • Il problema è intermittente?
  • La pagina viene caricata dopo un ritardo?
  • Nella pagina viene visualizzato un errore di tipo HTTP 5XX?

Risoluzione

Effettua una ricerca DNS e un confronto

Verifica che il dominio che riscontra questo problema lo risolva correttamente all'indirizzo IP dei nodi del bilanciatore del carico. In questo modo si assicura che il tentativo di connessione dei client venga inviato all'indirizzo IP corretto.

1.    Effettua una ricerca DNS:

dig <affected domain>

oppure

nslookup <affected domain>

2.    Esegui ora una ricerca DNS in base al DNS del bilanciatore del carico per il confronto. Ad esempio:

dig lb-xxxxxxxxxx.us-east-1.elb.amazonaws.com

Questo controllo ha esito positivo se l'elenco di indirizzi IP corrisponde. Se il bilanciatore del carico è in uno stato di scalabilità orizzontale, potrebbero esserci quindi più indirizzi IP di quanti ne possa visualizzare una singola risposta DNS. In questo caso d'uso, il confronto potrebbe non essere sufficiente. Potrebbe essere necessario eseguire più query DNS per ottenere tutti gli IP elencati.

Verifica lo stato di back-end/destinazioni

Verifica lo stato del controllo dell'integrità di back-end/destinazioni. I bilanciatori del carico hanno un controllo dell'integrità configurato che utilizzano per verificare lo stato di back-end/destinazioni. A seconda del tipo di bilanciatore del carico, back-end/destinazioni non integri possono influire sul routing. Verifica l'integrità del bilanciatore del carico in base al tipo:

Nota:

  • L'abilitazione o la disabilitazione di cross-zone può influire sul modo in cui le richieste vengono instradate con NLB e CLB.
  • È possibile configurare i controlli dell'integrità su porte diverse dalle porte del traffico. In questo caso, anche se la destinazione e il back-end sono integri, la destinazione potrebbe non rispondere al traffico inviato.

Se il controllo dell'integrità mostra che le destinazioni non sono integre, il servizio potrebbe quindi non funzionare nelle istanze di destinazione/back-end. Oppure, i bilanciatori del carico potrebbero non ottenere una risposta dalle istanze di destinazione/back-end.

Connettersi direttamente ai nodi del bilanciatore del carico

Connettersi direttamente ai nodi del bilanciatore del carico. Questo test conferma se tutti gli indirizzi IP del bilanciatore del carico risolti in precedenza dal DNS sono raggiungibili. Questo test conferma anche se il problema si verifica solo con una sottorete di una specifica zona di disponibilità (AZ).

Annotare gli indirizzi IP del bilanciatore del carico e tentare quindi una connessione a questi indirizzi IP, uno alla volta. L'utilizzo di un browser per questo test potrebbe non funzionare a causa delle convalide dei certificati e dell'intestazione dell'host. Invece, una best practice consiste nell'utilizzare lo strumento curl per eseguire questo controllo con questo formato. È necessario sostituire <protocol> <ELB IP Address>, <port>, <path> e <domain name> con i valori corretti della configurazione Web.

curl -lvk <protocol>://<ELB IP Address>:<port>/<path> -H "Host: <domain name>"

Ad esempio:

Eg: curl -lvk https://3.2.1.1:443/test -H "Host: example.com"

Se il tuo tentativo riceve una risposta, controlla quindi se si tratta della risposta prevista o di un errore. Se la risposta è soddisfacente, controlla quindi l'indirizzo IP successivo.

Controllo del bilanciatore del carico per problemi di back-end/destinazione

Se confermi la connettività a tutti gli indirizzi IP utilizzati dal bilanciatore del carico, conferma quindi lo stato di comunicazione del bilanciatore del carico con la destinazione o il back-end.

1.    Innanzitutto, controlla i gruppi di sicurezza, l'ACL di rete e il routing.

2.    Se consentono l'accesso, accedi quindi alla destinazione o al back-end. Dopo aver stabilito l'accesso, verifica che il servizio Web sia in ascolto sulla porta configurata utilizzando questo comando. Sostituisci "port" con la porta di ascolto della destinazione o del back-end. Questa è la porta utilizzata per la registrazione della destinazione o del back-end sul bilanciatore del carico.

Windows:

netstat -an | findstr "LISTEN" | findstr "port"

Linux:

netstat -an | grep LISTEN | grep "port"

3.    Se non viene elencato dopo aver menzionato la porta di ascolto prevista, il servizio Web è quindi inattivo. Continua a risolvere i problemi relativi allo stato del servizio.

4.    Se la risposta mostra che la porta è in ascolto, prova quindi a connetterti utilizzando il comando curl. Sostituisci <protocol> con il servizio dell'applicazione in ascolto e <port> con la porta localhost:

curl -lvk <protocol>://localhost:<port>

Se ricevi una risposta da questo comando, il servizio Web funziona. Durante questa fase di test, puoi avviare una connessione da un'altra istanza di Amazon Elastic Compute Cloud (Amazon EC2) nello stesso Amazon Virtual Private Cloud (Amazon VPC). Controlla se questo tentativo di connessione raggiunge il servizio Web e riceve una risposta. Questa risposta mostra anche ciò che viene ricevuto dal bilanciatore del carico quando tenti di connetterti alla destinazione o al backend.


Informazioni correlate

Come posso risolvere il problema se un sito Web ospitato sulla mia istanza EC2 non risponde?

AWS UFFICIALE
AWS UFFICIALEAggiornata 2 anni fa