¿Cómo puedo solucionar los problemas de conectividad a una instancia de base de datos de Amazon RDS que usa una subred pública o privada de una VPC?

6 minutos de lectura
0

No puedo conectarme a mi instancia de base de datos de Amazon Relational Database Service (Amazon RDS). ¿Cómo puedo solucionar los problemas de conectividad en una subred pública o privada de Amazon Virtual Private Cloud (Amazon VPC)?

Descripción breve

Puede lanzar bases de datos de Amazon RDS en la subred pública o privada de una VPC. Sin embargo, si la configuración de la VPC en la instancia de RDS es incorrecta, puede haber problemas de conexión. Los problemas de configuración o conectividad del cliente desde el que se conecta también pueden provocar problemas de conexión.

Para resolver estos problemas, consulte las siguientes resoluciones según su entorno.

Resolución

Nota: Si recibe errores al ejecutar comandos de la Interfaz de la línea de comandos de AWS (AWS CLI), asegúrese de utilizar la versión más reciente de la AWS CLI.

Mi instancia de base de datos está en una subred pública y no puedo conectarme a ella a través de Internet desde mi equipo local

Este problema puede producirse cuando la propiedad Accesible públicamente de la instancia de base de datos está establecida en No. Para comprobar si una instancia de base de datos es de acceso público:

Abra la consola de Amazon RDS, seleccione Bases de datos en el panel de navegación y seleccione su instancia de base de datos. A continuación, revise la sección Conectividad y seguridad de su instancia.

-o-

Utilice el comando describe-db-instances de la AWS CLI.

Para cambiar la propiedad Accesible públicamente de la instancia de Amazon RDS a :

1.    Abra la consola de Amazon RDS.

2.    Elija Bases de datos en el panel de navegación y, a continuación, seleccione la instancia de base de datos.

3.    Seleccione Modificar.

4.    En Conectividad, expanda la sección Configuración adicional y, a continuación, seleccione Accesible públicamente.

5.    Seleccione Continuar.

6.    Elija Modificar la instancia de base de datos.

Nota: Este cambio se aplica inmediatamente, aunque no seleccione la opción Aplicar inmediatamente. El tiempo de inactividad solo se produce si tiene una acción de mantenimiento pendiente configurada con esta modificación (que requiere un tiempo de inactividad) y elige Aplicar inmediatamente.

Si establece la propiedad Accesible públicamente en y sigue sin poder conectarse a la instancia de RDS, compruebe lo siguiente:

Mi instancia de base de datos está en una subred privada y no puedo conectarme a ella desde mi equipo local

Puede resolver este problema mediante una subred pública. Al usar una subred pública, se puede acceder a todos los recursos de la subred desde Internet. Si esta solución no cumple sus requisitos de seguridad, utilice AWS Site-to-Site VPN. Con AWS Site-to-Site VPN, puede configurar una puerta de enlace de cliente que le permite conectar la VPC a la red remota.

Otro método para resolver este problema es utilizar una instancia de Amazon EC2 como host bastión (de salto). Para obtener más información, consulte ¿Cómo puedo conectarme a una instancia de base de datos privada de Amazon RDS desde un equipo local con una instancia de Amazon EC2 que actúe como un host bastión?

Para cambiar a una subred pública:

1.    Abra la consola de Amazon RDS.

2.    Elija Bases de datos en el panel de navegación y, a continuación, elija la instancia de base de datos.

3.    En la sección Conectividad y seguridad, copie el punto de conexión de la instancia de base de datos.

4.    Haga una búsqueda nslookup en el punto de conexión de la instancia de base de datos desde una instancia de EC2 dentro de la VPC. Vea el siguiente ejemplo de salida:

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

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

5.    Una vez que disponga de la dirección IP privada de su instancia de base de datos de RDS, puede relacionarla con una subred concreta de la VPC. La subred de la VPC se basa en el rango del CIDR de la subred y en la dirección IP privada.

6.    Abra la consola de Amazon VPC y, a continuación, seleccione Subredes en el panel de navegación.

7.    Elija la subred que está asociada a la instancia de base de datos que ha encontrado en el paso 5.

8.    En el panel Descripción, elija la Tabla de enrutamiento.

9.    Elija Acciones y, a continuación, Editar rutas.

10.    Seleccione Añadir ruta. Para el tráfico IPv4 e IPv6, en el recuadro Destino, introduzca las rutas de la red externa o local. A continuación, seleccione el ID de la puerta de enlace de Internet en la lista de Destino.

Nota: Asegúrese de que la regla del grupo de seguridad de entrada de su instancia restrinja el tráfico a las direcciones de su red externa o local.    

11.    Seleccione Guardar.

Importante: Si cambia una subred a pública, también se podrá acceder a otras instancias de base de datos de la subred desde Internet. Se puede acceder a las instancias de base de datos desde Internet si tienen una dirección pública asociada.

Si la instancia de base de datos sigue sin estar accesible después de seguir estos pasos, compruebe si es Accesible públicamente. Para ello, siga los pasos que se indican en Mi instancia de base de datos está en una subred privada y no puedo conectarme a ella desde mi equipo local.

Una instancia de Amazon EC2 no puede acceder a mi instancia de base de datos desde una VPC diferente

Cree una conexión de emparejamiento de VPC entre las VPC. Una conexión de emparejamiento de VPC permite que dos VPC se comuniquen entre sí mediante direcciones IP privadas.

1.    Cree y acepte una conexión de emparejamiento de VPC.

Importante: Si las VPC están en la misma cuenta de AWS, asegúrese de que los bloques del CIDR de IPv4 no se superpongan. Para obtener más información, consulte Limitaciones de interconexión de VPC.

2.    Actualice ambas tablas de enrutamiento.

3.    Actualice sus grupos de seguridad para que hagan referencia a grupos de VPC del mismo nivel.

4.    Habilite la resolución de DNS para la conexión de emparejamiento de VPC.

5.    En la instancia de Amazon Elastic Compute Cloud (Amazon EC2), pruebe la conexión de emparejamiento de VPC mediante una utilidad de red. Vea el siguiente ejemplo:

nc -zv <hostname> <port>

Si la conexión funciona, el resultado es similar al siguiente:

$ nc -zv myexampledb.xxxx.us-east-1.rds.amazonaws.com 5439
found 0 associations
found 1 connections:
     1:    flags=82<CONNECTED,PREFERRED>
    outif en0
    src xx.xxx.xxx.xx port 53396
    dst xx.xxx.xxx.xxx port 5439
    rank info not available
    TCP aux info available

Connection to myexampledb.xxxx.us-east-1.rds.amazonaws.com port 5439 [tcp/*] succeeded!

Información relacionada

Escenarios de acceso a una instancia de base de datos en una VPC

Uso de una instancia de base de datos en una VPC