Wie kann ich Elastic Load Balancing verwenden, um den Grund zu ermitteln, warum auf meine Website nicht zugegriffen werden kann?

Lesedauer: 5 Minute
0

Auf meine Website kann nicht zugegriffen werden. Wie kann ich die elastische Lastenverteilung (ELB, Elastic Load Balancing) verwenden, um zu verstehen, warum Endbenutzer nicht auf meine Website zugreifen können?

Kurzbeschreibung

Es gibt eine Reihe von Gründen, warum Sie Ihre Website möglicherweise nicht erreichen können. Beantworten Sie zunächst die folgenden Fragen, um den besten Weg zur Fehlerbehebung zu finden:

  • Kann die Website nicht erreicht werden und erhalten Sie eine Standard-Zeitbeschränkungs-Seite des Browsers?
  • Ist das Problem sporadisch?
  • Wird die Seite nach einer Verzögerung geladen?
  • Zeigt die Seite einen Fehler wie HTTP 5XX an?

Auflösung

Führen Sie eine DNS-Suche und einen Vergleich durch

Vergewissern Sie sich, dass die von diesem Problem betroffene Domäne korrekt auf die IP-Adresse der Lastenverteilung-Knoten aufgelöst wird. Dadurch wird sichergestellt, dass der Verbindungsversuch, den die Clients versuchen, an die richtige IP-Adresse gesendet wird.

1.    Führen Sie eine DNS-Suche durch:

dig <affected domain>

oder

nslookup <affected domain>

2.    Führen Sie nun eine DNS-Suche mit dem DNS der Lastenverteilung zum Vergleich durch. Beispiel:

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

Diese Prüfung ist erfolgreich, wenn die Liste der IP-Adressen übereinstimmt. Wenn sich die Lastenverteilung in einem Aufskalierungs-Zustand befindet, gibt es möglicherweise mehr IP-Adressen, als eine einzelne DNS-Antwort anzeigen kann. In diesem Anwendungsfall ist dieser Vergleich möglicherweise nicht ausreichend. Möglicherweise müssen Sie mehrere DNS-Abfragen ausführen, um alle aufgelisteten IPs abzurufen.

Prüfen Sie den Status von Backend/Zielen

Überprüfen Sie den Status der Backend-/Ziel-Zustandsprüfung. Lastenverteilungen verfügen über eine konfigurierte Zustandsprüfung, mit der sie den Status von Backends/Zielen überprüfen. Je nach Art der Lastenverteilung können fehlerhafte Backends/Ziele das Routing beeinflussen. Prüfen Sie den Zustand Ihrer Lastenverteilung je nach Typ:

Hinweis:

  • Das Aktivieren oder Deaktivieren zonenübergreifender Funktionen kann sich darauf auswirken, wie Anfragen mit NLB und CLBs weitergeleitet werden.
  • Sie können Zustandsprüfungen für andere Ports als Datenverkehrsports konfigurieren. In diesem Fall reagiert das Ziel möglicherweise nicht auf den an es gesendeten Datenverkehr, selbst wenn das Ziel/Backend fehlerfrei ist.

Wenn die Zustandsprüfung anzeigt, dass die Ziele fehlerhaft sind, ist der Service möglicherweise bei den Ziel-/Backend-Instances ausgefallen. Oder die Lastenverteilungen können keine Antwort von den Ziel-/Backend-Instances erhalten.

Herstellung einer direkten Verbindung zu den Knoten der Lastenverteilung

Stellen Sie direkt eine Verbindung zu den Knoten der Lastenverteilung her. Dieser Test bestätigt, ob alle IP-Adressen der Lastenverteilung, die zuvor mit DNS aufgelöst wurden, erreichbar sind. Dieser Test bestätigt auch, ob das Problem nur mit dem Subnetz einer bestimmten Availability Zone (AZ) auftritt.

Notieren Sie sich die IP-Adressen der Lastenverteilung, und versuchen Sie dann nacheinander, eine Verbindung zu diesen IP-Adressen herzustellen. Die Verwendung eines Browsers für diesen Test funktioniert möglicherweise aufgrund von Zertifikatsüberprüfungen und des Host-Headers nicht. Stattdessen empfiehlt es sich, das Curl-Tool zu verwenden, um diese Überprüfung mit diesem Format durchzuführen. Beachten Sie, dass Sie <protocol>, <ELB IP Address>,<port>,<path> und <domain name> mit den richtigen Werten aus Ihrer Web-Einrichtung ersetzen müssen.

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

Beispiel:

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

Wenn Ihr Versuch eine Antwort erhält, überprüfen Sie, ob dies die erwartete Antwort oder ein Fehler ist. Wenn die Antwort zufriedenstellend ist, überprüfen Sie die nächste IP-Adresse.

Überprüfen Sie die Lastenverteilung auf Backend-/Ziel-Probleme

Wenn Sie die Konnektivität zu allen von der Lastenverteilung verwendeten IP-Adressen bestätigen, bestätigen Sie den Kommunikationsstatus der Lastenverteilung mit dem Ziel/Backend.

1.    Überprüfen Sie zunächst die Sicherheitsgruppen, die Netzwerk-ACL und das Routing.

2.    Wenn sie den Zugriff erlauben, melden Sie sich beim Ziel/Backend an. Nachdem Sie den Zugriff eingerichtet haben, vergewissern Sie sich mit diesem Befehl, dass der Webservice den konfigurierten Port überwacht. Ersetzen Sie „port“ durch den Listening-Port des Ziels/Backends. Dies ist der Port, der bei der Anmeldung des Ziels/Backends bei der Lastenverteilung verwendet wird.

Windows:

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

Linux:

netstat -an | grep LISTEN | grep "port"

3.    Wenn nach der Eingabe des erwarteten Listening-Ports nichts aufgeführt wird, ist der Webservice nicht verfügbar. Fahren Sie mit der Fehlerbehebung des Servicestatus fort.

4.    Wenn die Antwort zeigt, dass der Port lauscht, versuchen Sie, mithilfe von curl eine Verbindung herzustellen. Ersetzen Sie <protocol> durch den Listening-Anwendungsservice und <port> durch den localhost-Port:

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

Wenn Sie von diesem Befehl eine Antwort erhalten, funktioniert Ihr Webservice. Während dieser Testphase können Sie eine Verbindung von einer anderen Amazon Elastic Compute Cloud (Amazon EC2)-Instance in derselben Amazon Virtual Private Cloud (Amazon VPC) initiieren. Prüfen Sie, ob dieser Verbindungsversuch den Webservice erreicht und eine Antwort vom Webservice erhält. Diese Antwort zeigt auch, was die Lastenverteilung erhält, wenn Sie versuchen, eine Verbindung zum Ziel/Backend herzustellen.


Relevante Informationen

Wie behebe ich das Problem einer nicht reagierenden Website, die auf meiner EC2-Instance gehostet wird?

AWS OFFICIAL
AWS OFFICIALAktualisiert vor 2 Jahren