Wie behebe ich Verbindungsprobleme mit meinem selbst entworfenen ElastiCache für Redis Cluster?
Ich möchte Verbindungsprobleme mit meinem selbst entworfenen Amazon ElastiCache für Redis Cluster beheben.
Lösung
Gehe wie folgt vor, um Verbindungsprobleme mit deinem selbst entworfenen ElastiCache für Redis Cluster zu beheben:
Überprüfen, dass sich der Cluster im Status Verfügbar befindet
**Hinweis:**Wenn bei der Ausführung von AWS Command Line Interface (AWS CLI)-Befehlen Fehler auftreten, findest du weitere Informationen unter Troubleshoot AWS CLI errors. Stelle außerdem sicher, dass du die neueste Version von AWS CLI verwendest.
Wenn du den Cluster kürzlich erstellt hast, stelle sicher, dass die Clustererstellung abgeschlossen ist und der Cluster bereit ist, Verbindungen anzunehmen. Um den Status des Clusters zu überprüfen, verwende die ElastiCache-Konsole, die AWS CLI oder die ElastiCache API, um die Cluster-Details anzuzeigen. Prüfe die Spalte Status und überprüfe Folgendes:
- Wenn in der Spalte Status Verfügbar angezeigt wird, ist der Cluster bereit.
- Wenn in der Spalte Status Creating angezeigt wird, ist die Clustererstellung im Gange. Warte ein paar Minuten, bis der Status auf Verfügbar aktualisiert wird.
- Wenn in der Spalte Status Modifying angezeigt wird, wird die Konfiguration des Clusters aktualisiert. Warte ein paar Minuten, bis die Änderungen abgeschlossen sind und der Status auf Verfügbar aktualisiert wird.
Sicherstellen, dass dein Cluster fehlerfrei ist
Knoten in einem fehlerfreien Cluster befinden sich im Status Verfügbar. Gehe wie folgt vor, um den Zustand des Clusters zu überprüfen:
- Überprüfe den Status jedes Knotens im Cluster.
- Überprüfe die Ereignisprotokolle, um die letzten Ereignisse im Cluster zu sehen.
- In den Amazon-CloudWatch-Metriken findest du einen Überblick über den Zustand des Clusters. Weitere Informationen findest du unter Monitoring best practices with Amazon ElastiCache for Redis using Amazon CloudWatch.
- Überprüfe die Cluster- und Redis-Client-Konfigurationen, um sicherzustellen, dass ElastiCache Wiederherstellungsvorgänge mit minimaler Unterbrechung durchführen kann. Wenn Hardware-, Instance- oder Softwarefehler auftreten, versucht ElastiCache, den Dienst ohne Benutzereingriff wiederherzustellen. Weitere Informationen findest du unter Minimizing downtime in ElastiCache for Redis with Multi-AZ.
Überprüfen der Netzwerkverbindung zwischen deinem Cluster und der Client-Ressource
Um die Latenz zu minimieren, greife von Amazon Elastic Compute Cloud (Amazon EC2) Instances oder von Ressourcen innerhalb derselben Amazon Virtual Private Cloud (Amazon VPC) aus auf ElastiCache zu. Du kannst auch eine Verbindung von außerhalb der Amazon VPC oder außerhalb von AWS herstellen. Weitere Informationen findest du unter Zugriffsmuster für den Zugriff auf einen ElastiCache-Cache in einer Amazon VPC und Zugriff auf den Cluster oder die Replikationsgruppe. Verwende den Amazon VPC Network Access Analyzer, um die Verbindung zu analysieren und Verbindungsprobleme zwischen AWS-Ressourcen weiter zu beheben.
Sicherstellen, dass die Sicherheitsgruppen und Netzwerk-Zugriffssteuerungslisten (Netzwerk-ACLs) Verbindungen zulassen
Überprüfe die Sicherheitsgruppen und Netzwerk-ACLs auf dem Cluster und der Ressource, von der aus die Verbindung initiiert wird. Stelle sicher, dass die Sicherheitsgruppen und Netzwerk-ACLs richtig konfiguriert sind. Im Folgenden findest du Beispiele für Client-Ressourcen:
- Amazon EC2 Instances
- AWS-Lambda-Funktionen
- Amazon Elastic Container Service (Amazon ECS) Container
- Amazon Elastic Kubernetes Service (Amazon EKS) Container
Überprüfen der Cluster-Sicherheitsgruppe
Gehe wie folgt vor, um die Sicherheitsgruppe des Clusters zu überprüfen:
- Öffne die ElastiCache-Konsole.
- Wähle den Clusternamen im Redis-Cluster-Menü aus und wähle dann die Registerkarte Netzwerk und Sicherheit aus.
**Hinweis:**Standardmäßig verwendet der Cluster die Amazon-VPC-Sicherheitsgruppe, wenn keine Sicherheitsgruppe zugeordnet wurde. - Stelle sicher, dass mindestens eine der zugehörigen Sicherheitsgruppen eingehende Verbindungen von der Client-Ressource zum Cluster auf dem Port des Clusters zulässt.
- Um die Portnummer zu überprüfen, überprüfe einen der Cluster-Endpunkte. Die Endpunkte haben das Format domain_name:port.
**Hinweis:**Standardmäßig ist der Port des Clusters 6379/TCP. Du kannst die Portnummer überschreiben, wenn du einen Cluster erstellst. - Überprüfe auf der Client-Ressource, ob die Sicherheitsgruppen ausgehende Verbindungen zum Cluster-Port und zu den CIDR-Blöcken der Cluster-Subnetze zulassen.
- Stelle sicher, dass die Netzwerk-ACLs ausgehende und eingehende Verbindungen zwischen dem Client und dem Cluster zulassen.
**Hinweis:**Standardmäßig lassen Netzwerk-ACLs alle Verbindungen zu. - Verwende den Amazon VPC Network Access Analyzer, um weitere Fehler bei Sicherheitsgruppen- und Netzwerk-ACL-Konfigurationen zu beheben.
Sicherstellen, dass die richtigen Endpunkte für Verbindungen verwendet werden
Verbindungsendpunkte werden auf der Grundlage von Clusterkonfigurationen empfohlen. Weitere Informationen findest du unter Verbindungsendpunkte finden.
Überprüfen der DNS-Auflösung auf der Clientseite
Wenn du DNS-Probleme hast, erhältst du möglicherweise den Fehler Name or service not known oder NXDOMAIN. Um diese Fehler zu beheben, stelle sicher, dass du die richtigen DNS-Attribute auf der Amazon-VPC-Client-Ressource hast. Es ist eine bewährte Methode, den Amazon DNS Server zu verwenden.
Überprüfen der TCP-Verbindung zwischen Redis und dem Client
Verwende den Befehl curl, um die Verbindung zwischen Redis und dem Client herzustellen und zu bestätigen:
**Hinweis:**Ersetze example-cluster-endpoint durch den Endpunkt deines Clusters.
$ curl -v telnet://example-cluster-endpoint:6379
Beispielausgabe:
* Trying 172.31.1.242:6379... * Connected to example-cluster-endpoint (172.31.1.242) port 6379
Im vorherigen Beispiel zeigt das Connected-Schlüsselwort, dass die TCP-Verbindung erfolgreich ist. Wenn Connected nicht in der Befehlsausgabe erscheint, überprüfe Folgendes:
- Überprüfe auf dem Cluster, ob die Sicherheitsgruppen Verbindungen über den Port des Clusters zulassen. Bestätige den Portwert auf der Cluster-Konfigurationsseite. (Der Standardport ist TCP/6379.) Weitere Informationen findest du unter Einen ElastiCache Cluster ändern.
- Überprüfe im Cluster, ob sich alle Shards und Knoten im Status Verfügbar befinden. Weitere Informationen findest du unter Cluster-Details anzeigen.
- Überprüfe auf der Client-Ressource, ob die Sicherheitsgruppen ausgehende Verbindungen zur IP-Adresse und zum Port des Clusters zulassen.
- Überprüfe auf der Client-Ressource, ob die Routing-Tabellen die entsprechenden Routen haben und der Cluster erreichbar ist.
- Überprüfe auf der Client-Ressource, ob die richtige Verbindung konfiguriert ist. Die Client-Ressource kann sich in derselben Amazon VPC, einer anderen Amazon VPC oder außerhalb von AWS befinden. Die Verbindung kann für die Verwendung mit VPN, Amazon VPC-Peering, Transit Amazon VPC, AWS Transit Gateway oder AWS Direct Connect konfiguriert werden. Weitere Informationen findest du unter Zugriffsmuster für den Zugriff auf einen ElastiCache Cache in einer Amazon VPC und Zugriff auf deinen Cluster oder die Replikationsgruppe.
Hinweis: Amazon ElastiCache ist so konzipiert, dass von derselben Amazon VPC zugegriffen wird, um eine niedrige Latenz sicherzustellen. Verbindungen außerhalb von Amazon VPC können die Latenz erhöhen. Eine erhöhte Latenz tritt bei Verbindungen auf, die das öffentliche Internet direkt oder durch Tunneln nutzen. Außerdem kann eine erhöhte Latenz zu Verbindungs- oder Timeout-Problemen führen. Wenn du den Zugriff blockiert hast, verwende den Amazon VPC Reachability Analyzer zur weiteren Fehlerbehebung.
Überprüfen der Verbindungen zu Clustern, die über eine Verschlüsselung bei der Übertragung verfügen
Verwende die Verschlüsselung während der Übertragung, um Redis-Verkehr über TLS zu senden. Damit eine Verbindung hergestellt werden kann, muss der Client über TLS-Unterstützung verfügen.
Wenn du redis-cli mit TLS-Unterstützung hast, füge dem Befehl das Argument**--tls** hinzu:
**Hinweis:**Ersetze example-encrypted-cluster-endpoint durch den verschlüsselten Endpunkt deines Clusters.
$ redis-cli -h example-encrypted-cluster-endpoint --tls
Beispielausgabe:
example-encrypted-cluster-endpoint:6379>
Wenn du redis-cli ohne TLS-Unterstützung hast, erscheint der folgende Fehler:
"Unrecognized option or bad number of args for: '--tls'"
Um den vorherigen Fehler zu beheben, installiere redis-cli mit TLS-Unterstützung oder verwende den openssl-Befehl für redis-cli ohne TLS-Unterstützung. Weitere Informationen findest du im Abschnitt Verbindung zu einem Redis-Cluster oder einer Redis-Replikationsgruppe (Linux) herstellen in Schritt 4: Mit dem Cluster-Knoten verbinden.
Überprüfen der Verbindungen zu Clustern, bei denen die Authentifizierung aktiviert ist
Verwende den Befehl redis-cli oder openssl, um Verbindungen zu Clustern mit Authentifizierung zu überprüfen. Weitere Informationen findest du im Abschnitt Herstellung einer Verbindung zu einem Cluster mit aktivierter Verschlüsselung/Authentifizierung in Schritt 4: Mit dem Cluster-Knoten verbinden.
**Hinweis:**Der Befehl redis-cli erfordert sowohl die Argumente --tls als auch --askpass (oder -a). Wenn diese Argumente nicht angegeben werden oder du ein falsches Passwort verwendest, wird die Meldung NOAUTH oder AUTH failed angezeigt. Wenn du redis-cli --tls verwendest, verwende das AUTH-Passwort, nachdem du eine Verbindung hergestellt hast, um die Authentifizierung abzuschließen.
Ähnliche Informationen
Ähnliche Videos


Relevanter Inhalt
- AWS OFFICIALAktualisiert vor einem Jahr
- AWS OFFICIALAktualisiert vor einem Jahr
- AWS OFFICIALAktualisiert vor einem Jahr