Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Was würde mich daran hindern, von einer AWS EC2-VM aus eine Verbindung zu einem MySQL-Server auf AWS RDS herzustellen?

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

  1. In der RDS-DB-Instance-Sicherheitsgruppe müssen Sie den Datenverkehr für die EC2-Instance öffnen.
  2. 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.
  3. 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.
  4. SSH in EC2-Instanz, mysql-server installieren Paket. Sie müssen die RDS-DB-Instanz mit mysql-server verbinden .
  5. 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

  1. Klicken Sie in MySQL WorkBench auf Neue Verbindung einrichten .

  2. 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.

  3. 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.

  4. 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.