Conexión a una instancia de Amazon RDS a través de una instancia de EC2 mediante MySQL Workbench


En AWS tengo una VPC configurada con un host Bastion. El host bastion es una única instancia EC2 con un canal de dirección pública que puede SSH a cualquier otro servidor en la VPC.

He creado una instancia RDS MySQL dentro de la VPC y me gustaría conectarme a ella usando MySQL workbench. He seguido los pasos detallados aquí , sin embargo, en "Paso 6: Configuración de configuración remota SSH", me pide que "Proporcione el DNS público de la instancia de Amazon EC2" (es decir, el bastion host).

MySQL workbench luego verifica ciertos recursos MySQL en ese servidor. Sin embargo, esto no es correcto en mi opinión, ya que he proporcionado la dirección del host bastion, que no tiene instalado MySQL. Como resultado, las dos últimas comprobaciones para "Comprobar la ubicación de los comandos de inicio/parada" y "Comprobar el archivo de configuración de MySQL" fallan.

Luego he intentado usar la dirección de punto final de la instancia de MySQL RDS, pero sin éxito (como es en la subred privada, no lo es publicly addressed).

Parece que mucha gente tiene esto en marcha, pero ¿qué estoy haciendo mal aquí?

Author: iamyojimbo, 2013-10-02

6 answers

He estado luchando con algo similar durante semanas. Lo descubrí hace unos minutos.

  1. En mysql workbench, cree una nueva instancia de servidor.
  2. Para la dirección de host remoto, introduzca su dirección de punto final (p. ej. xxxxxx.us-east-1.rds.amazonaws.com)
  3. Para el método de conexión, seleccione"TCP/IP estándar sobre SSH"
  4. El nombre de host SSH es el DNS público de su instancia EC2
  5. He especificado ec2-user (creo que varía según el tipo de instancia EC2) como el nombre de usuario y luego especificó el archivo de clave descargado correspondiente al par de claves que estaba utilizando la instancia.
  6. El nombre de host de mysql es el punto final de la instancia RDS.
  7. El nombre de usuario es el nombre de usuario de la instancia RDS (es decir, ebroot)

Usando eso pude conectarme. Sin embargo, no utilicé VPC en mi configuración. Espero que esto ayude. ¡Buena suerte!

 30
Author: AndrewSmiley,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-11-13 21:05:06

Ya que está utilizando una VPC, así es como debe configurarse para aceptar conexiones de su sub-red solamente:

  1. seleccione el grupo de seguridad VPC utilizado por la instancia de base de datos
  2. Agregue una nueva regla para permitir todas las direcciones IP de su subred privada en el puerto 3306

    Ex: Rule INBOUND 3306 (MYSQL) 172.33.11.0 / 24

  3. Utilice mysql workbench tcp / ssh y funcionará (siga AndrewSmiley respuesta).

 11
Author: john,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-12-19 09:41:40

Recomiendo usar el túnel SSH:

  1. Crear una sesión de putty en el host bastion
  2. En Conexión Tunnels> SSH Tunnels > Túneles, especifique el puerto de origen: 3306, Destino: yourRDSendpointname: 3306
  3. No olvides hacer clic en agregar!
  4. Conéctese al host bastion con esos ajustes
  5. Agregue una nueva conexión en MySQL workbench y apunte a su puerto localhost 3306 (asumiendo que no está ejecutando nada en 3306 en su máquina cliente local)
  6. Poner en su nombre de usuario y contraseña para su instancia RDS
 5
Author: user3067703,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-12-21 12:20:24

Puede crear un túnel SSH en su host Bastion (instancia EC2) para reenviar puertos desde su máquina local a la instancia RDS remota.

En mac / linux este es el comando (para windows siga las instrucciones en el siguiente enlace):

ssh -L 3306:myinstance.123456789012.us-east-1.rds.amazonaws.com:3306  your_c2_ip

Luego puede conectarse con workbench usando los siguientes ajustes:

  • Método de conexión: TCP estándar

  • Nombre de host: localhost

  • puerto 3306

Este post explica el método en más detalle; https://userify.com/blog/howto-connect-mysql-ec2-ssh-tunnel-rds /

 1
Author: Yasir,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-14 14:33:28

Esto es lo que resolvió el problema para mí. En el panel de control de RDS, eche un vistazo al grupo de seguridad de su instancia. Haz clic en esto y te llevará a la página del grupo de seguridad.

Aunque diría "Todo el tráfico" tanto para Entrada como para salida, haga clic en editar y asegúrese de que la fuente diga Mi IP. No recomendaría usar todas las IP, ya que esto lo abriría a cualquiera en Internet. Si no tiene una IP estática, asegúrese de actualizar este campo una vez que se detenga la conexión trabajo.

Después de esto pude conectarme a las instancias de AWS RDS T2.

 0
Author: Basil Abbas,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-01-24 10:27:43

Si desea utilizar realmente la conectividad VPC de AWS y no permitir IP públicas, haga lo siguiente.

Si tiene un grupo de seguridad al que tanto su EC2 como RDS están asignados, agregue una regla de entrada para mysql 3306 en TCP, pero en el campo fuente no ponga IP o subred, sino el ID del grupo de seguridad real. ie sg-9829f3d2.

Personalmente tengo dos grupos de seguridad en VPC.

El primero, el grupo de seguridad 1 está en uso por la instancia EC2 y solo permite los puertos necesarios para el EC2, es decir, 80 y 22.

El segundo, el grupo de seguridad 2 está en uso solo por las instancias de RDS y tiene una regla para permitir mysql(3302) y el campo de origen se establece en el id del grupo de seguridad 1.

Todos los túneles SSH de Mysql workbench también funcionan con los dos grupos de seguridad.

 0
Author: Skin,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-06-10 17:16:59