Wenn sich Ihre EC2-Instance und Ihre RDS-DB-Instance in unterschiedlichen VPCs befinden, verwenden Sie möglicherweise VPC-Peering, um zwei VPCs zu verbinden. Aber in Ihrem Fall befinden sich beide in derselben VPC. Das ist gut. Stellen Sie sicher, dass die RDS-DB-Instance im privaten Subnetz und die EC2-Instance im öffentlichen Subnetz gestartet werden.
Zum Verbinden einer RDS-DB-Instance in einer EC2-Instance
- In der RDS-DB-Instance-Sicherheitsgruppe müssen Sie den Datenverkehr für die EC2-Instance öffnen.
- Klicken Sie auf DB-Sicherheitsgruppe aus dem RDS-Dashboard. Klicken Sie auf Eingehend Tab. Die Schaltfläche „Bearbeiten“ wird verwendet, um Regeln zur Sicherheitsgruppe hinzuzufügen oder daraus zu entfernen.
- Fügen Sie eine Regel für die EC2-Instanz hinzu, um auf Ihre Datenbank zuzugreifen. Angenommen, Sie haben MySQL DB Engine in DB Instance gestartet. Sie müssen den Port 3306 für die EC2-Instance öffnen. Sie können die private IP der EC2-Instance verwenden, um eine Verbindung mit der RDS-DB-Instance herzustellen.
- SSH in EC2-Instanz,
mysql-server
installieren Paket. Sie müssen die RDS-DB-Instanz mitmysql-server
verbinden . mysql --host=<my-hostname> --port=3306 --user=<user> --password=<password>
Befehl zum Herstellen einer Verbindung mit der RDS-DB-Instance.
Zur Verbindung einer RDS-DB-Instance in MySQL WorkBench
-
Klicken Sie in MySQL WorkBench auf Neue Verbindung einrichten .
-
Verbindungsname angeben. Wählen Sie Standard (TCP/IP) über SSH . Sie müssen SSH-Hostname, Benutzername und Schlüsseldatei sowie MySQL-Hostname, Port, Benutzername und Passwort angeben.
-
SSH-Anmeldeinformationen sind nichts als EC2-Instance-Anmeldeinformationen. Für Keyfile müssen Sie nach der KeyPair(.pem)-Datei suchen. In RDS-Hostname müssen Sie einen Endpunkt angeben, der im RDS-Dashboard verfügbar ist.
-
Um die Verbindung zu überprüfen, klicken Sie auf Verbindung testen Schaltfläche.
Der Grund, warum Sie sich für Standard (TCP/IP) statt SSH entschieden haben besteht darin, die RDS-DB-Instanz über die EC2-Instanz zu verbinden. Zuerst stellt es eine Verbindung zu einer EC2-Instance her und greift dann auf die RDS-DB-Instance zu, da die DB-Instance keinen Internetzugang hat und sich in einem privaten Subnetz befindet.
Stellen Sie sicher, dass in der Java-Webanwendung der von Ihnen erwähnte RDS-Hostname, -Port, -Benutzername und -Passwort korrekt sind. Es ist nicht erforderlich, den EC2-Hostnamen in der Anwendung anzugeben.