Wie behebe ich Probleme beim Herstellen einer Verbindung zu meiner Amazon-RDS-DB-Instance?

Letzte Aktualisierung: 20.06.2022

Ich kann keine Verbindung zu meiner Amazon Relational Database Service (Amazon RDS)-DB-Instance herstellen.

Kurzbeschreibung

Die Unfähigkeit, eine Verbindung zu einer Amazon-RDS-DB-Instance herzustellen, kann eine Reihe von Ursachen haben. Hier sind ein paar der häufigsten Gründe:

  • Die RDS-DB-Instance befindet sich in einem anderen Status als verfügbar, sodass sie keine Verbindungen akzeptieren kann.
  • Die Quelle, die Sie für die Verbindung zur DB-Instance verwenden, fehlt in den Quellen, die in Ihrer Sicherheitsgruppe, den Zugriffssteuerungslisten (ACLs) des Netzwerks oder den lokalen Firewalls für den Zugriff auf die DB-Instance berechtigt sind.
  • Für die Verbindung mit der DB-Instance wurde der falsche DNS-Name oder Endpunkt verwendet.
  • Die Multi-AZ-DB-Instance ist ausgefallen, und die sekundäre DB-Instance verwendet ein Subnetz oder eine Routing-Tabelle, die keine eingehenden Verbindungen zulässt.
  • Die Benutzerauthentifizierung ist aus einem der folgenden Gründe falsch:
    • Sie verwenden einen falschen Benutzernamen oder ein falsches Passwort auf Datenbankebene, um vom DB-Client auf die Instance zuzugreifen.
    • Sie haben nicht die erforderlichen Datenbankberechtigungen, um auf die Instance zuzugreifen.
    • Der Client läuft auf einer Version, die mit der Datenbankversion nicht kompatibel ist.

Tipp: Sie können die folgenden Schritte zur Problembehandlung verwenden, um die Ursache des Konnektivitätsproblems zu ermitteln. Oder Sie können das Dokument AWSSupport-TroubleshootConnectivityToRDS AWS Systems Manager Automation verwenden, um das Problem für Sie zu diagnostizieren. Dieses Automatisierungsdokument kann Netzwerk-ACLs basierend auf der primären IP-Adresse der Amazon Elastic Compute Cloud (Amazon EC2)-Instance diagnostizieren, aber kurzlebige Ports werden nicht überprüft. Das Automatisierungsdokument überprüft auch Sicherheitsgruppen basierend auf der primären IP-Adresse der EC2-Instance, aber diese Automatisierung überprüft keine spezifischen Ports. Weitere Informationen finden Sie unter Ausführen eines einfachen Automatisierungsworkflows.

Auflösung

Stellen Sie sicher, dass sich Ihre DB-Instance im Status „verfügbar“ befindet

Wenn Sie kürzlich Ihre DB-Instance gestartet oder neu gebootet haben, vergewissern Sie sich, dass sich die DB-Instance in der Amazon-RDS-Konsole im verfügbaren Status befindet. Je nach Größe Ihrer DB-Instance kann es bis zu 20 Minuten dauern, bis die DB-Instance für Netzwerkverbindungen verfügbar ist.

Wenn sich Ihre DB-Instance im Status fehlgeschlagen befindet, erfahren Sie mehr unter Warum ist meine Amazon-RDS-DB-Instance im Status „fehlgeschlagen“?

Stellen Sie sicher, dass Ihre DB-Instance Verbindungen zulässt

Stellen Sie sicher, dass der Datenverkehr von der Quelle, die eine Verbindung zu Ihrer DB-Instance herstellt, nicht durch eine oder mehrere der folgenden Punkte begrenzt wird:

  • Alle Amazon Virtual Private Cloud (Amazon VPC)-Sicherheitsgruppen, die mit der DB-Instance verknüpft sind. Fügen Sie der Sicherheitsgruppe, die mit der VPC verknüpft ist, bei Bedarf Regeln hinzu, die Datenverkehr im Zusammenhang mit der Quelle in und aus der DB-Instance zulassen. Sie können eine IP-Adresse, einen Bereich von IP-Adressen oder eine andere VPC-Sicherheitsgruppe angeben. Allgemeine Informationen zu VPC und DB-Instances finden Sie unter Szenarien für den Zugriff auf eine DB-Instance in einer VPC.
  • Jede DB-Sicherheitsgruppe, die mit der DB-Instance verknüpft ist. Wenn sich die DB-Instance nicht in einer VPC befindet, verwendet die Instance möglicherweise eine DB-Sicherheitsgruppe, um den Datenverkehr zu steuern. Aktualisieren Sie Ihre DB-Sicherheitsgruppe, um Datenverkehr aus dem IP-Adressbereich, der Amazon-EC2-Sicherheitsgruppe oder der EC2-Classic-Instance zuzulassen, die Sie für die Verbindung verwenden.
  • Verbindungen außerhalb einer VPC. Stellen Sie sicher, dass die DB-Instance öffentlich zugänglich und einem öffentlichen Subnetz zugeordnet ist (z. B. erlaubt die Routing-Tabelle den Zugriff von einem Internet-Gateway). Weitere Informationen finden Sie unter Szenarien für den Zugriff auf eine DB-Instance in einer VPC.
    Wenn sich Ihre DB-Instance in einem privaten Subnetz befindet, stellen Sie sicher, dass Sie VPC-Peering oder AWS Site-to-Site VPN verwenden, um eine sichere Verbindung zu Ihrer Instance herzustellen. Mit Site-to-Site VPN konfigurieren Sie ein Kunden-Gateway, über das Sie Ihre VPC mit Ihrem Remote-Netzwerk verbinden können. Sie können VPC-Peering verwenden, indem Sie eine Peering-Verbindung zwischen Ihrer Quell-VPC und der VPC Ihrer Instance herstellen, um von außerhalb ihrer VPC auf die Instance zuzugreifen. Sie können eine Amazon-EC2-Instance auch als Bastion-Host (Jump) verwenden.
  • Netzwerk-ACLs. Netzwerk-ACLs fungieren als Firewall für Ressourcen in einem bestimmten Subnetz in einer VPC. Wenn Sie ACLs in Ihrer VPC verwenden, stellen Sie sicher, dass diese Regeln enthalten, die eingehenden und ausgehenden Datenverkehr zu und von der DB-Instance zulassen.
  • Netzwerk oder lokale Firewalls. Erkundigen Sie sich bei Ihrem Netzwerkadministrator, ob Ihr Netzwerk den Datenverkehr zu und von den Ports zulässt, die die DB-Instance für die eingehende und ausgehende Kommunikation verwendet.
    Hinweis: Amazon RDS akzeptiert keinen Internet Control Message Protocol (ICMP)-Verkehr, einschließlich Ping.

Beheben Sie potenzielle Probleme mit DNS-Namen oder -Endpunkten

Wenn Sie eine Verbindung zu Ihrer DB-Instance herstellen, verwenden Sie einen DNS-Namen (Endpunkt), der von der Amazon-RDS-Konsole bereitgestellt wird. Stellen Sie sicher, dass Sie den richtigen Endpunkt verwenden und den Endpunkt im richtigen Format für den Client bereitstellen, den Sie zum Herstellen einer Verbindung mit der DB-Instance verwenden. Eine Liste von Tutorials zur Verbindung von DB-Engines, die Anweisungen zum Suchen und ordnungsgemäßen Verwenden eines Endpunkts in verschiedenen Client-Anwendungen enthalten, finden Sie unter Erste Schritte mit Amazon RDS.

Verwenden Sie zum Beispiel nslookup zum DB-Instance-Endpunkt von einer Amazon-EC2-Instance innerhalb der VPC:

nslookup myexampledb.xxxx.us-east-1.rds.amazonaws.com 
Server: xx.xx.xx.xx 
Address: xx.xx.xx.xx#53

Sehen Sie sich das folgende Beispiel einer nicht-autoritären Antwort an:

Name: myexampledb.xxxx.us-east-1.rds.amazonaws.com 
Address: 172.31.xx.x

Problembehandlung bei Problemen auf Datenbankebene

  • Stellen Sie sicher, dass Sie den richtigen Benutzernamen und das richtige Passwort verwenden, um von Ihrem DB-Client aus auf die Instance zuzugreifen.
  • Stellen Sie sicher, dass der Benutzer über die Datenbankberechtigungen für die Verbindung mit der DB-Instance verfügt.
  • Prüfen Sie, ob in RDS eine Ressourcendrosselung vorliegt, wie z. B. CPU- oder Speicherkonflikte. Dieser Konflikt kann zu Problemen beim Aufbau neuerer Verbindungen zur Instance führen.
  • Stellen Sie sicher, dass die Instance nicht das max_connections-Limit erreicht hat.

Überprüfen Sie die Routing-Tabellen, die mit Ihrer Instance verknüpft sind

Wenn Sie eine Multi-AZ-Bereitstellung erstellen, starten Sie mehrere Replikat-DB-Instances in verschiedenen Availability Zones, um die Fehlertoleranz Ihrer Anwendung zu verbessern. Stellen Sie sicher, dass die mit jeder DB-Instance verknüpften Subnetze mit denselben oder ähnlichen Routing-Tabellen verknüpft sind. Wenn Ihre primäre DB-Instance auf ein Standby-Replikat ausfällt und das Standby-Replikat einer anderen Routing-Tabelle zugeordnet ist, wird Datenverkehr, der zuvor an Ihre DB-Instance geroutet wurde, möglicherweise nicht mehr ordnungsgemäß geroutet.

Weitere Informationen über die Konfiguration von Routing-Tabellen finden Sie unter Konfigurieren von Routing-Tabellen. Weitere Informationen zu Multi-AZ-Bereitstellungen finden Sie unter Multi-AZ-Bereitstellungen für hohe Verfügbarkeit.

Hinweis: Wenn Sie eine Verbindung zu Ihrer DB-Instance herstellen können, aber Authentifizierungsfehler erhalten, erfahren Sie mehr unter Wie setze ich das Master-Benutzerpasswort für meine Amazon-RDS-DB-Instance zurück?

Konnektivität überprüfen

Überprüfen Sie Ihre Verbindung, indem Sie einen der folgenden Befehle ausführen:

telnet <RDS endpoint> <port number>
nc -zv <RDS endpoint> <port number>

Wenn einer der telnet- oder nc-Befehle erfolgreich sind, wurde eine Netzwerkverbindung hergestellt. Dies bedeutet, dass das Problem wahrscheinlich durch die Benutzerauthentifizierung bei der Datenbank verursacht wird, z. B. durch den Benutzernamen und das Passwort.