Direkt zum Inhalt

Wie behebe ich Amazon Redshift-Verbindungsfehler?

Lesedauer: 5 Minute
0

Ich möchte Verbindungsprobleme mit meinem Amazon Redshift-Cluster beheben.

Behebung

Hinweis: Wenn du beim Ausführen von AWS Command Line Interface (AWS CLI)-Befehlen Fehlermeldungen erhältst, findest du weitere Informationen dazu unter Problembehandlung bei der AWS CLI. Stelle außerdem sicher, dass du die neueste Version der AWS CLI verwendest.

Du hast kürzlich die Größe des Amazon Redshift-Clusters anhand eines Snapshots geändert oder wiederhergestellt

Wenn du den Amazon Redshift-Cluster kürzlich in der Größe geändert oder ihn anhand eines Snapshots wiederhergestellt hast, überprüfe das Subnetz des Clusters. Du musst den Cluster im gleichen Subnetz starten, bevor du die Größe des Snapshots änderst oder wiederherstellst.

Wenn du in letzter Zeit nicht die Größe des Amazon Redshift-Clusters geändert oder wiederhergestellt hast, überprüfe die Netzwerkkonfigurationen. Die Netzwerkkonfigurationen müssen für das alte und das neue Subnetz identisch sein.

Der Amazon Redshift-Cluster befindet sich in einem öffentlichen Subnetz

Wenn du versuchst, eine Verbindung zu einem Amazon Redshift-Cluster herzustellen, der sich in einem öffentlichen Subnetz befindet, überprüfe, ob der Cluster auf Öffentlich zugänglich gesetzt ist. Weitere Informationen zu öffentlich zugänglichen Optionen findest du unter Redshift-Ressourcen in einer Virtual Private Cloud (VPC).

Vergewissere dich, dass die Routing-Tabelle über ein angeschlossenes Internet-Gateway verfügt.

Führe den Befehl telnet aus, um die Verbindung zum Amazon Redshift-Cluster zu testen:

telnet cluster_endpoint cluster_port

Hinweis: Ersetze cluster-endpoint und cluster-port durch deine Werte.

Der Amazon Redshift-Cluster befindet sich in einem privaten Subnetz

Wenn sich der Amazon Redshift-Cluster in einem privaten Subnetz befindet, stelle sicher, dass du das NAT-Gateway mit der Routing-Tabelle des öffentlichen Subnetzes verbindest. Das NAT-Gateway ermöglicht Clustern in einem privaten Subnetz, eine Verbindung zum Internet herzustellen. Überprüfe, dass der Cluster nicht auf Öffentlich zugänglich gesetzt ist.

Um zu bestätigen, dass der Client die private IP-Adresse des Leader-Knotens des Amazon Redshift-Clusters erreichen kann, führe den Befehl dig aus:

dig cluster_endpoint

Hinweis: Ersetze cluster-endpoint durch deinen Cluster-Endpunkt.

Führe den Befehl telnet aus, um die Verbindung zum Amazon Redshift-Cluster zu testen:

telnet cluster_endpoint cluster_port

Hinweis: Ersetze cluster-endpoint und cluster-port durch deine Werte.

Telnet ist nicht erfolgreich oder auf den Amazon Redshift-Cluster kann immer noch nicht zugegriffen werden

Wenn die Ausgabe des Telnet-Befehls zeigt, dass die Amazon Redshift-Cluster-Verbindung nicht erfolgreich ist, überprüfe die folgenden Bedingungen:

  • Die Regel für eingehenden Datenverkehr der Sicherheitsgruppe erlaubt den Amazon Redshift-Port 5439 vom Typ TCP.
  • Die Regel für eingehenden Datenverkehr der Sicherheitsgruppe umfasst den CIDR-Bereich oder die IP-Adresse, die di für die Verbindung mit dem Amazon Redshift-Cluster verwendest.

Wenn die Ausgabe zeigt, dass die Amazon Redshift-Cluster-Verbindung erfolgreich ist, der Cluster aber immer noch nicht zugänglich ist, überprüfe die Firewall des Netzwerks. Die Firewall blockiert möglicherweise den Amazon Redshift-Port 5439.

Ungültiger Vorgang, Verbindungsfehler

Wenn der Amazon Redshift-Cluster verlangt, dass du SSL für jede Verbindung aktivierst, erhältst du möglicherweise den folgenden Verbindungsfehler:

"Error: [Amazon](500310) Invalid operation: no pg_hba.conf entry for host "::ffff:205.xxx.xxx.xxx", user "username", database "dbname", SSL off;"

Gehe wie folgt vor, um zu überprüfen, ob der Parameter require_ssl auf wahr gesetzt ist:

  1. Öffne die Amazon Redshift-Konsole.
  2. Wähle im Navigationsbereich Konfiguration.
  3. Wähle Workload-Management.
  4. Ändere die Parametergruppe, die du dem Amazon Redshift-Cluster zugeordnest.
  5. (Optional) Führe den AWS-CLI-Befehl describe-cluster-parameters aus, um die SSL-Konfiguration zu überprüfen:
    aws redshift describe-cluster-parameters --parameter-group-name exampleparametergroupname

Wenn die SSL-Konfiguration auf wahr gesetzt ist, aktualisiere den Parameter require_ssl auf den Standardparameterwert falsch. Um die SSL-Konfiguration zu ändern, bearbeite die Parametergruppe, die dem Amazon Redshift-Cluster zugeordnet ist. Du kannst die Parametergruppe auf der Registerkarte Parameter der Amazon Redshift-Konsole bearbeiten.

Wenn die SSL-Verbindung jedoch für den Anwendungsfall oder die Umgebung erforderlich ist, stelle dann sicher, dass die Verbindungszeichenfolge den erforderlichen SSL-Parameter enthält.

Zum Beispiel:

jdbc:redshift://examplecluster.abc123xyz789.us-west-2.redshift.amazonaws.com:5439/dev?ssl=true

Fataler Verbindungsfehler

Wenn im Amazon Redshift-Cluster zu viele offene Verbindungen vorhanden sind, dann erhältst du möglicherweise die folgende Fehlermeldung:

"Error: FATAL: connection limit [500]/[2000] exceeded for user"

Wie aus der Fehlermeldung hervorgeht, ist 500 das maximale Verbindungslimit für die Knotentypen dc2.large in Amazon Redshift. Für die Knoten dc2.8xlarge, ra3.ra3, 4xlarge.xlplus, ra3.16xlarge und ra3.16xlarge beträgt das maximale Verbindungslimit 2000.

Gehe wie folgt vor, um die Anzahl der offenen Verbindungen im Amazon Redshift-Cluster zu überprüfen:

  1. Öffne die Amazon-CloudWatch-Konsole.

  2. Suche in den Amazon CloudWatch-Protokolleinträgen nach der DatabaseConnections-Metrik.

  3. Verwende die Tabelle STL_CONNECTION_LOG, um die offenen Verbindungen zu überprüfen:

    select recordtime, username, dbname, remotehost, remoteportfrom stl_connection_log
    where event = 'initiating session'
    and pid not in
    (select pid from stl_connection_log
    where event = 'disconnecting session')
    order by 1 desc;
  4. Verwende die Tabelle STV_SESSIONS, um Informationen zu den aktiven Benutzersitzungen für Amazon Redshift einzusehen:

    select * from stv_sessions;

Wenn du eine große Anzahl offener Verbindungen hast, führe eine der folgenden Aktionen aus:

  • Verwende den Befehl PG_TERMINATE_BACKEND, um alle inaktiven Sitzungen zu beenden.
  • Ändere die TCP/IP-Timeout-Einstellungen auf der Client-Seite basierend auf dem Betriebssystem, das für die Verbindung mit dem Amazon Redshift-Cluster verwendet wird. Die Aktualisierung der TCP/IP-Timeout-Einstellungen kann dazu beitragen, dass inaktive Sitzungen nicht geöffnet bleiben.

Fehler „Connection refused“

Wenn der Amazon Redshift-Cluster keine Verbindung herstellen kann, dann erhältst du möglicherweise den folgenden Fehler: Connection Refused:

"Error: amazon 500150 error setting/closing connection: operation timed out/ connection refused."

Wenn du versuchst, auf den Amazon Redshift-Cluster zuzugreifen, kann ein Berechtigungsproblem den vorherigen Fehler verursachen. Gehe wie folgt vor, um diesen Verbindungsfehler zu beheben:

Ähnliche Informationen

Wie kann ich einen privaten Amazon Redshift-Cluster öffentlich zugänglich machen?

Warum kann ich keine Verbindung mit meinem Amazon Redshift-Cluster herstellen?

AWS OFFICIALAktualisiert vor einem Jahr