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

Lesedauer: 6 Minute
0

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

Kurzbeschreibung

Es gibt eine Reihe von Ursachen für die Unfähigkeit, eine Verbindung zu einer Amazon-RDS-DB-Instance herzustellen. Hier sind ein paar der häufigeren Gründe:

  • Die RDS-DB-Instance befindet sich in einem anderen Status als verfügbar, sodass sie keine Verbindungen akzeptieren kann.
  • Ihre Quelle für die Verbindung mit der DB-Instance hat keinen Autorisierungszugriff in Ihrer Sicherheitsgruppe, Ihren Netzwerkzugriffssteuerungslisten (ACLs) oder lokalen Firewalls.
  • Für die Verbindung mit der DB-Instance wird 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. Kurzlebige Ports werden jedoch nicht verifiziert. 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 einer Automatisierung.

Lö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 dann, dass sich die DB-Instance in der Amazon-RDS-Konsole im Status verfügbar 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 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. Fragen Sie Ihren 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. Achten Sie darauf, den richtigen Endpunkt zu verwenden. Stellen Sie außerdem den Endpunkt im richtigen Format für den Client bereit, den Sie für die Verbindung mit der DB-Instance verwenden. Weitere Informationen zu DB-Engine-Verbindungen und zur Verwendung eines Endpunkts in verschiedenen Client-Anwendungen 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 Amazon 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 zu einem Standby-Replikat übergeht, das mit einer anderen Routentabelle verknüpft ist, wird der Datenverkehr möglicherweise nicht korrekt weitergeleitet. Selbst wenn dieser Datenverkehr zuvor ohne Probleme weitergeleitet wurde, wird er möglicherweise nicht mehr korrekt weitergeleitet.

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 RDS-DB-Instance zurück?

Konnektivität überprüfen

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

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

Wenn einer der telnet- oder nc-Befehle erfolgreich ist, 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.


Relevante Informationen

Keine Verbindung zur Amazon-RDS-DB-Instance möglich

Wie kann ich Probleme bei der Verbindung zu einer Amazon RDS DB-Instance beheben, die ein öffentliches oder privates Subnetz einer VPC verwendet?

Sicherheit in Amazon RDS

Verwenden von SSL/TLS zum Verschlüsseln einer Verbindung zu einer DB-Instance