Warum habe ich zeitweise Verbindungsprobleme mit meinem Amazon Redshift Cluster?

Lesedauer: 7 Minute
0

Ich möchte erfahren, wie ich zeitweilige Verbindungsprobleme mit meinem Amazon Redshift Cluster beheben und lösen kann, die durch Faktoren wie eingeschränkten Zugriff, Wartungsfenster, Knotenausfälle, Rotationen des Verschlüsselungsschlüssels, zu viele aktive Verbindungen, hohe CPU-Auslastung und clientseitige Verbindungsprobleme verursacht werden.

Kurzbeschreibung

Die folgenden Probleme können zeitweise auftretende Verbindungsprobleme in Ihrem Amazon Redshift Cluster verursachen:

  • Eingeschränkter Zugriff für eine bestimmte IP-Adresse oder einen CIDR-Block
  • Aktualisierungen des Wartungsfensters
  • Knotenausfälle oder geplante Verwaltungsaufgaben
  • Rotationen des Verschlüsselungsschlüssels
  • Zu viele aktive Netzwerkverbindungen
  • Hohe CPU-Auslastung des Leader-Knotens
  • Verbindungsprobleme auf der Clientseite

Lösung

Eingeschränkter Zugriff für eine bestimmte IP-Adresse oder einen CIDR-Block

Prüfen Sie, ob in Ihrer Sicherheitsgruppe der Zugriff für eine bestimmte IP-Adresse oder einen bestimmten CIDR-Block eingeschränkt ist. Aufgrund der DHCP-Konfiguration kann sich Ihre Client-IP-Adresse ändern, was zu Verbindungsproblemen führen kann. Wenn Sie keine elastischen IP-Adressen für Ihren Amazon Redshift Cluster verwenden, kann sich außerdem die von AWS verwaltete IP-Adresse Ihrer Cluster-Knoten ändern. Ihre IP-Adresse kann sich beispielsweise ändern, wenn Sie Ihren Cluster löschen und ihn dann aus einem Snapshot neu erstellen oder wenn Sie einen angehaltenen Cluster wieder starten.

Hinweis: Öffentliche IP-Adressen werden rotiert, wenn der Amazon Redshift-Cluster gelöscht und neu erstellt wird. Private IP-Adressen ändern sich, wenn Knoten ersetzt werden.

Führen Sie eine der folgenden Aktionen aus, um Netzwerkeinschränkungen zu beheben:

  • Wenn Ihre Anwendung die öffentliche IP-Adresse hinter einem Cluster-Endpunkt zwischenspeichert, verwenden Sie diesen Endpunkt für Ihre Amazon-Redshift-Verbindung. Verwenden Sie keinen DNS-Cache für Ihre Verbindung, um Ihre Netzwerkverbindung stabil und sicher zu halten.
  • Es ist eine bewährte Methode, eine elastische IP-Adresse für Ihren Amazon Redshift Cluster zu verwenden. Eine elastische IP-Adresse ermöglicht es Ihnen, Ihre zugrunde liegende Konfiguration zu ändern, ohne die IP-Adresse zu beeinflussen, die Clients für die Verbindung mit Ihrem Cluster verwenden. Dieser Ansatz ist hilfreich, wenn Sie einen Cluster nach einem Ausfall wiederherstellen. Weitere Informationen finden Sie unter Verwalten von Clustern in einer VPC.
  • Wenn Sie eine private IP-Adresse verwenden, um eine Verbindung zu einem Leader-Knoten oder Rechenknoten herzustellen, verwenden Sie die neue IP-Adresse in Ihren Einstellungen. Wenn Sie beispielsweise eine SSH-Aufnahme durchgeführt haben oder über eine Amazon-EMR-Konfiguration verfügen, die den Rechenknoten verwendet, aktualisieren Sie Ihre Einstellungen mit der neuen IP-Adresse. Nach einem Knotenwechsel wird neuen Knoten eine neue private IP-Adresse gewährt.

Aktualisierungen des Wartungsfensters

Überprüfen Sie das Wartungsfenster für Ihren Amazon Redshift Cluster. Während eines Wartungsfensters kann Ihr Amazon Redshift Cluster keine Lese- oder Schreibvorgänge verarbeiten. Wenn ein Wartungsereignis für eine bestimmte Woche geplant ist, beginnt es innerhalb des zugewiesenen 30-minütigen Wartungsfensters. Während Amazon Redshift Wartungsarbeiten durchführt, werden alle laufenden Abfragen oder sonstigen Vorgänge beendet. Sie können das Zeitfenster für geplante Wartungsarbeiten über die Amazon-Redshift-Konsole ändern.

Knotenausfälle oder geplante Verwaltungsaufgaben

Suchen Sie in der Amazon-Redshift-Konsole auf der Registerkarte Ereignisse nach Knotenausfällen oder geplanten Verwaltungsaufgaben (wie einer Änderung der Cluster-Größe oder einem Neustart).

Bei einem Hardwarefehler ist Amazon Redshift möglicherweise für kurze Zeit nicht verfügbar, und es können fehlgeschlagene Abfragen auftreten. Wenn eine Abfrage fehlschlägt, wird eine Ereignisbeschreibung wie die folgende angezeigt:

„Auf dem Amazon Redshift Cluster [Clustername] wurde ein Hardwareproblem festgestellt. Eine Ersatzanforderung wurde um [Uhrzeit] initiiert.“

Oder wenn ein Kontoadministrator einen Neustart oder eine Größenänderung in Ihrem Amazon Redshift Cluster geplant hat, können zeitweise Verbindungsprobleme auftreten. Es wird eine Ereignisbeschreibung angezeigt, die der folgenden ähnelt:

„Cluster [Clustername] hat um [Uhrzeit] mit dem Neustart begonnen.“ „Cluster [Clustername] hat den Neustart um [Uhrzeit] abgeschlossen.“

Weitere Informationen finden Sie unter Amazon-Redshift-Ereigniskategorien und -ereignismeldungen.

Rotationen des Verschlüsselungsschlüssels

Prüfen Sie die Schlüsselverwaltungseinstellungen Ihres Amazon Redshift Clusters, um festzustellen, ob Sie die Schlüsselverschlüsselung und Rotation der Schlüsselverschlüsselung durch den AWS Key Management Service (AWS KMS) verwenden.

Wenn Ihr Verschlüsselungsschlüssel aktiviert ist und der Verschlüsselungsschlüssel rotiert wird, ist Ihr Amazon Redshift Cluster während dieser Zeit nicht verfügbar. Daraufhin erhalten Sie die folgende Fehlermeldung:

„pg_query(): Query failed: SSL SYSCALL error: EOF detected“

Die Häufigkeit Ihrer Schlüsselrotation hängt von den Richtlinien Ihrer Umgebung in Bezug auf Datensicherheit und Standards ab. Rotieren Sie die Schlüssel so oft wie nötig oder immer dann, wenn der verschlüsselte Schlüssel kompromittiert werden könnte. Stellen Sie außerdem sicher, dass Sie über einen wichtigen Managementplan verfügen, der sowohl Ihre Sicherheits- als auch Ihre Clusterverfügbarkeitsanforderungen erfüllt.

Zu viele aktive Verbindungen

In Amazon Redshift werden alle Verbindungen zu Ihrem Cluster an den Leader-Knoten gesendet, und es gibt ein Höchstlimit für aktive Verbindungen. Der Knotentyp bestimmt das maximale Kontingent, das Ihr Amazon Redshift-Cluster unterstützen kann, nicht die Anzahl der Knoten.

Wenn in Ihrem Amazon Redshift Cluster zu viele aktive Verbindungen vorhanden sind, erhalten Sie die folgende Fehlermeldung:

„[Amazon](500310) Invalid operation: connection limit "500" exceeded for non-bootstrap users“

Wenn Sie beim Herstellen einer Verbindung zu Ihrem Amazon Redshift Cluster die Fehlermeldung Ungültiger Vorgang erhalten, haben Sie das Verbindungskontingent erreicht. Um die Anzahl der aktiven Verbindungen für Ihren Cluster zu überprüfen, überprüfen Sie die DatabaseConnections-Metrik in Amazon CloudWatch.

Wenn Sie einen Anstieg Ihrer Datenbankverbindungen feststellen, gibt es möglicherweise eine Reihe inaktiver Verbindungen in Ihrem Amazon Redshift Cluster. Führen Sie die folgende SQL-Abfrage aus, um die Anzahl der inaktiven Verbindungen zu überprüfen:

select process, trim(a.user_name) as user_name, a.usesysid, a.starttime,
  datediff(s,a.starttime,sysdate) as session_dur, b.last_end,
 datediff(s,case when b.last_end is not null then b.last_end else
 a.starttime end,sysdate) idle_dur
     FROM
    (select starttime,process,u.usesysid,user_name
     from stv_sessions s, pg_user u
     where
     s.user_name = u.usename
      and u.usesysid>1
and process NOT IN (select pid from stv_inflight where userid>1
 union select pid from stv_recents where status != 'Done' and
  userid>1)
    ) a
     LEFT OUTER JOIN (select
 userid,pid,max(endtime) as last_end from svl_statementtext where
  userid>1 and sequence=0 group by 1,2) b ON a.usesysid = b.userid AND
 a.process = b.pid
    WHERE (b.last_end > a.starttime OR b.last_end is null)
    ORDER BY idle_dur;

Die Ausgabe sieht dem folgenden Beispiel ähnlich:

 process | user_name  | usesysid |      starttime      | session_dur | last_end | idle_dur
---------+------------+----------+---------------------+-------------+----------+----------
   14684 | myuser     |      100 | 2020-06-04 07:02:36 |           6 |          |        6
(1 row)

Wenn die inaktiven Verbindungen identifiziert wurden, kann die Verbindung mithilfe der folgenden Befehlssyntax beendet werden:

select pg_terminate_backend(process);

Die Ausgabe sieht dem folgenden Beispiel ähnlich:

pg_terminate_backend ----------------------
                    1
(1 row)

Hohe CPU-Auslastung des Leader-Knotens

Alle Clients stellen eine Verbindung zu einem Amazon Redshift Cluster über einen Leader-Knoten her. Eine hohe CPU-Auslastung des Leader-Knotens kann zu zeitweiligen Verbindungsproblemen führen.

Wenn Sie versuchen, eine Verbindung zu Ihrem Amazon Redshift Cluster herzustellen und der Leader-Knoten viel CPU verbraucht, erhalten Sie die folgende Fehlermeldung:

„Error setting/closing connection“

Um zu überprüfen, ob Ihr Leader-Knoten eine hohe CPU-Auslastung erreicht hat, überprüfen Sie die Metrik CPUUtilization in Amazon CloudWatch. Weitere Informationen finden Sie unter Amazon-Redshift-Metriken.

Verbindungsprobleme auf der Clientseite

Prüfen Sie, ob ein Verbindungsproblem zwischen dem Client, wie Workbench/J oder PostgreSQL, und Ihrem Amazon Redshift Cluster besteht. Wenn Ihr Client versucht, eine Anfrage von einem freigegebenen Port aus zu senden, kann es zu einem clientseitigen Zurücksetzen der Verbindung kommen. Daher kann das Zurücksetzen der Verbindung zu zeitweiligen Verbindungsproblemen führen.

Führen Sie eine der folgenden Maßnahmen durch, um diese clientseitigen Verbindungsprobleme zu vermeiden:

  • Verwenden Sie die Keepalive-Funktion in Amazon Redshift, um zu überprüfen, ob die Verbindung zwischen dem Client und dem Server ordnungsgemäß funktioniert. Die Keepalive-Funktion verhindert auch, dass Verbindungslinks unterbrochen werden. Informationen zum Überprüfen oder Konfigurieren der Werte für Keepalive finden Sie unter Ändern der TCP/IP-Einstellungen für Zeitüberschreitungen und Ändern der DSN-Einstellungen für Zeitüberschreitungen.
  • Überprüfen Sie die maximale Übergangseinheit (MTU), wenn Ihre Abfragen zwar ausgeführt werden, aber im SQL-Client-Tool hängen bleiben. Manchmal werden die Abfragen aufgrund eines Paketverlusts in Amazon Redshift nicht angezeigt. Ein Paketverlust tritt auf, wenn die Netzwerkpfade zwischen zwei IP-Hosts unterschiedliche MTU-Größen aufweisen. Weitere Informationen zum Umgang mit Paketverlust finden Sie unter Abfragen scheinen zu hängen und erreichen den Cluster manchmal nicht.
AWS OFFICIAL
AWS OFFICIALAktualisiert vor einem Jahr