Wie behebe ich Amazon Redshift-Verbindungsfehler?

Lesedauer: 5 Minute
0

Ich kann keine Verbindung zu meinem Amazon Redshift-Cluster herstellen. Wie behebe ich das Problem?

Lösung

Der Amazon Redshift-Cluster wurde kürzlich in der Größe geändert oder aus einem Snapshot wiederhergestellt

Wenn Ihr Amazon Redshift-Cluster kürzlich in der Größe geändert oder anhand eines Snapshots wiederhergestellt wurde, überprüfen Sie das Subnetz Ihres Clusters. Der Cluster muss in demselben Subnetz gestartet werden, das vor der Größenänderung oder Wiederherstellung des Snapshots verwendet wurde.

Wenn die Größe Ihres Amazon Redshift-Clusters in letzter Zeit nicht geändert oder wiederhergestellt wurde, überprüfen Sie Ihre 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 Sie versuchen, eine Verbindung zu einem Amazon Redshift-Cluster herzustellen, der sich in einem öffentlichen Subnetz befindet, überprüfen Sie Folgendes:

  • Vergewissern Sie sich, dass der Amazon Redshift-Cluster auf „Öffentlich zugänglich“ gesetzt ist. Weitere Informationen zu öffentlich zugänglichen Optionen finden Sie unter Verwalten von Clustern in einer VPC.
  • Vergewissern Sie sich, dass an Ihre Routing-Tabelle ein Internet-Gateway angeschlossen ist.

Um die Konnektivität zu testen, verwenden Sie telnet, um die Verbindung zu Ihrem Amazon Redshift-Cluster zu testen:

telnet <cluster endpoint> <cluster port>

Der Amazon Redshift-Cluster befindet sich in einem privaten Subnetz

Wenn sich Ihr Amazon Redshift-Cluster in einem privaten Subnetz befindet, überprüfen Sie Folgendes:

  • Stellen Sie sicher, dass Sie das NAT-Gateway an die Routing-Tabelle des öffentlichen Subnetzes anhängen. Das NAT-Gateway ermöglicht Clustern in einem privaten Subnetz, eine Verbindung zum Internet herzustellen.
  • Stellen Sie sicher, dass Ihr Cluster nicht auf Öffentlich zugänglich gesetzt ist.

Um zu bestätigen, dass Ihr Client die private IP-Adresse des Leader-Knotens des Amazon Redshift-Clusters erreichen kann, verwenden Sie den Befehl dig:

dig <cluster endpoint>

Verwenden Sie den Befehl telnet, um die Verbindung zu Ihrem Amazon Redshift-Cluster zu testen:

telnet <cluster endpoint><cluster port>

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

Wenn der telnet -Befehl anzeigt, dass Ihre Amazon Redshift-Cluster-Verbindung nicht erfolgreich ist, stellen Sie sicher, dass die folgenden Bedingungen zutreffen:

  • Der Amazon Redshift-Port (Standard 5439) vom Typ TCP ist in der Regel für eingehenden Datenverkehr der Sicherheitsgruppe zulässig.
  • Der CIDR-Bereich oder die IP, von der aus Sie eine Verbindung zum Amazon Redshift-Cluster herstellen, wird zur Eingangsregel der Sicherheitsgruppe hinzugefügt.

Wenn der telnet -Befehl anzeigt, dass Ihre Amazon Redshift-Clusterverbindung erfolgreich ist, Ihr Cluster jedoch weiterhin nicht zugänglich ist, überprüfen Sie die Firewall Ihres Netzwerks. Ihre Firewall blockiert möglicherweise den Amazon Redshift-Port (der Standardport ist 5439).

Ungültiger Vorgang, Verbindungsfehler

Wenn Ihr Amazon Redshift-Cluster die Aktivierung von SSL für jede Verbindung erfordert, erhalten Sie 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;

Gehen Sie wie folgt vor, um zu überprüfen, ob der Parameter require\ _ssl auf true gesetzt ist:

1.    Öffnen Sie die Amazon Redshift-Konsole.

2.    Wählen Sie die Registerkarte Config.

3.    Ändern Sie die Parametergruppe, die Ihrem Amazon Redshift-Cluster zugeordnet ist.

4.    (Optional) Überprüfen Sie Ihre SSL-Konfiguration mithilfe der AWS-Befehlszeilenschnittstelle (AWS CLI):

describe-cluster-parameters

Wenn Ihre SSL-Konfiguration auf true gesetzt ist, sollten Sie die folgenden Ansätze in Betracht ziehen:

  • Aktualisieren Sie den Parameter require\ _ssl wieder auf false, was der Standardparameterwert ist. Sie können die SSL-Konfiguration ändern, indem Sie die Parametergruppe bearbeiten, die Ihrem Amazon Redshift-Cluster zugeordnet ist. Die Parametergruppe kann auf der Registerkarte Parameter der Amazon Redshift-Konsole bearbeitet werden.
  • Wenn die SSL-Verbindung für Ihren Anwendungsfall oder Ihre Umgebung erforderlich ist, stellen Sie sicher, dass Ihre 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 in Ihrem Amazon Redshift-Cluster zu viele offene Verbindungen vorhanden sind, erhalten Sie 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 und ds2.xlarge in Amazon Redshift. Für die Knoten ds2.8xlarge, dc2.8xlarge, ra3.xlplus, ra3.4xlarge und ra3.16xlarge beträgt das maximale Verbindungslimit 2.000.

Gehen Sie wie folgt vor, um die Anzahl der offenen Verbindungen in Ihrem Amazon Redshift-Cluster zu überprüfen:

1.    Öffnen Sie die Amazon CloudWatch-Konsole.

2.    Suchen Sie in Ihren Amazon CloudWatch-Protokolleinträgen nach der DatabaseConnections -Metrik.

3.    Verwenden Sie die Tabelle STL\ _CONNECTION\ _LOG, um Ihre offenen Verbindungen zu überprüfen:

select recordtime, username, dbname, remotehost, remoteport
from 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.    Verwenden Sie die Tabelle STV\ _SESSIONS, um Informationen zu den aktiven Benutzersitzungen für Amazon Redshift einzusehen:

select * from stv_sessions;

Wenn Sie eine große Anzahl offener Verbindungen haben, sollten Sie die folgenden Ansätze in Betracht ziehen:

  • Verwenden Sie den Befehl PG\ _TERMINATE\ _BACKEND, um alle inaktiven Sitzungen zu beenden.
  • Ändern Sie Ihre TCP/IP-Timeout-Einstellungen auf der Client-Seite basierend auf dem Betriebssystem, das für die Verbindung mit Ihrem Amazon Redshift-Cluster verwendet wird. Die Aktualisierung Ihrer TCP/IP-Timeout-Einstellungen kann dazu beitragen, zu verhindern, dass inaktive Sitzungen geöffnet bleiben.

Fehler „Verbindung verweigert“

Wenn Ihr Amazon Redshift-Cluster keine Verbindung herstellen kann, erhalten Sie möglicherweise den folgenden Fehler: Verbindung verweigert:

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

Dieser Fehler kann auf ein Berechtigungsproblem beim Zugriff auf Ihren Amazon Redshift-Cluster hinweisen. Um diesen Verbindungsfehler zu beheben, sollten Sie die folgenden Ansätze in Betracht ziehen:

  • Wenn Sie Ihren Cluster in einer Amazon Virtual Private Cloud (Amazon VPC) erstellt haben, fügen Sie Ihre Client-CIDR/IP-Adresse zur VPC-Sicherheitsgruppe hinzu. Weitere Informationen zur Konfiguration von VPC-Sicherheitsgruppen für Ihren Cluster finden Sie unter Verwalten von Clustern in einer VPC.
  • Wenn Sie Ihren Cluster außerhalb einer VPC erstellt haben, fügen Sie Ihre Client-CIDR oder IP-Adresse zur Cluster-Sicherheitsgruppe hinzu. Weitere Informationen zur Konfiguration von Cluster-Sicherheitsgruppen finden Sie unter Amazon Redshift Cluster-Sicherheitsgruppen.

Verwandte Informationen

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

Ich kann keine Verbindung zu meinem Amazon Redshift-Cluster herstellen

AWS OFFICIAL
AWS OFFICIALAktualisiert vor einem Jahr