Meine Datenbank (DB)-Instance in Amazon Relational Database Service (Amazon RDS) für PostgreSQL gibt Verbindungs-Timeout-Fehler zurück, wenn ich versuche, eine Verbindung von anderen AWS-Services herzustellen. Ich kann keine Verbindung zu meiner Datenbank herstellen.
Lösung
Um Verbindungs-Timeout-Fehler in RDS für PostgreSQL zu beheben, überprüfe die Datenbank-Endpunktkonfiguration, Netzwerkeinstellungen und Sicherheitsgruppen. Schließe je nach Verbindungsaufbau die folgenden Lösungsschritte durch.
Die Datenbankzugriffskonfiguration überprüfen
Stelle sicher, dass du den richtigen Endpunkt und Port für die DB-Instance verwendest. Informationen zu Endpunkten und Ports findest du unter Nach Verbindungsinformationen zu einer Amazon-RDS-DB-Instance suchen.
Um Datenbankzugriff zu gewähren, stelle als administrative(r) Benutzer:in des AWS-Kontos eine Verbindung zur Datenbank her. Führe dann den folgenden Befehl aus:
GRANT CONNECT ON DATABASE database_name TO user_name;
Hinweis: Ersetze database_name durch deinen Datenbanknamen und user_name durch den/die Datenbankbenutzer:in, dem/der du Zugriff gewährst.
Netzwerkkonfiguration prüfen
Wenn die DB-Instance öffentlich zugänglich ist, vergewissere dich, dass du die Option Öffentlicher Zugriff und ein Internet-Gateway in der Routing-Tabelle aktiviert hast.
Wenn sich die DB-Instance in einem privaten Subnetz befindet, stelle sicher, dass du über eine Routing-Tabelle mit einer NAT-Gateway-Route für den Internetzugang verfügst. Wenn du eine Verbindung von einer anderen Virtual Private Cloud (VPC) aus herstellst, erstelle eine VPC-Peering-Verbindung.
Verwende Reachability Analyzer, um Netzwerkprobleme zu beheben.
Sicherheitseinstellungen überprüfen
Stelle sicher, dass deine Sicherheitsgruppenregeln den Datenverkehr auf deinem Datenbankport von der Quell-IP-Adresse oder Sicherheitsgruppe zulassen. Port 5432 ist der Standardport für RDS-für-PostgreSQL-Datenbanken. Überprüfe die Regeln der Netzwerk-Zugriffssteuerungsliste (Netzwerk-ACL), um dich zu vergewissern, dass sie sowohl eingehenden als auch ausgehenden Datenverkehr auf dem Datenbankport zulassen.
Firewall-Einschränkungen beheben
Wenn du eine Verbindung von außerhalb von AWS über eine weitergeleitete Verbindung herstellst, blockiert die Firewall möglicherweise Verbindungen zum Datenbankport. Arbeite mit deinem/deiner Netzwerkadministrator:in zusammen, um ausgehende Verbindungen zum Endpunkt und Port der DB-Instance zuzulassen.
Informationen zum Ändern des Datenbankports findest du unter Ändern einer Amazon-RDS-DB-Instance.
Überprüfen, ob Portkonflikte vorliegen
Führe auf dem lokalen Computer oder der Amazon Elastic Compute Cloud (Amazon EC2)-Instance den folgenden Befehl aus, um zu überprüfen, ob der Port verwendet wird:
netstat -tuln | grep 5432
Hinweis: Wenn du einen anderen Port verwendest, ersetze 5432 durch deine Datenbank-Portnummer.
Wenn der Port verwendet wird, zeigt die Ausgabe den Port und den Prozess an, der ihn verwendet. Du kannst entweder den lokalen Dienst beenden oder die DB-Instance so ändern, dass sie einen anderen Port verwendet.
Automatisierte Problembehandlung durchführen
Verwende AWS Systems Manager Automation, um Verbindungsprobleme zwischen einer Amazon-EC2-Instance und der DB-Instance zu identifizieren. Die Automatisierung überprüft den Instance-Status, Subnetz-CIDRs, Netzwerk-ACLs, Sicherheitsgruppen und Routing-Tabellen. Weitere Informationen findest du unter Wie kann ich das Automatisierungs-Runbook von AWSSupport-TroubleshootConnectivityToRDS Systems Manager verwenden, um TroubleshootConnectivityToRDS zwischen einer Amazon-RDS-Quelldatenbank und einem Amazon-EC2-Ziel zu konfigurieren?
Hinweis: Die Automatisierung überprüft keine kurzlebigen Ports oder bestimmte Porteinstellungen.
Ähnliche Informationen
Es kann keine Verbindung zu einer Amazon-RDS-DB-Instance hergestellt werden
Zugriffssteuerung mit Sicherheitsgruppen
Error – Could not connect to server: Connection timed out