Saltar al contenido

¿Cómo me conecto a una instancia de base de datos de Amazon RDS que usa una subred pública o privada de una Amazon VPC?

6 minutos de lectura
0

Quiero conectarme a mi instancia de base de datos de Amazon Relational Database Service (Amazon RDS) que se encuentra en una subred pública o privada de una Amazon Virtual Private Cloud (Amazon VPC).

Descripción corta

Al iniciar instancias de base de datos de RDS en la subred pública o privada de una VPC, es posible que tengas problemas de conexión por los siguientes motivos:

  • Configuración de VPC incorrecta en la instancia de base de datos
  • Problemas de configuración o conectividad incorrectos en el cliente desde el que se conecta

Para resolver estos problemas, completa la resolución de tu entorno.

Resolución

Nota: Si se muestran errores al ejecutar comandos de la Interfaz de la línea de comandos de AWS (AWS CLI), consulta Solución de problemas de AWS CLI. Además, asegúrate de utilizar la versión más reciente de la AWS CLI.

Solución de problemas de conexión a una instancia de base de datos en una subred pública a través de Internet desde el equipo local

Si la propiedad de acceso público de tu instancia de base de datos está establecida en No, es posible que se produzcan problemas de conexión. Para comprobar si tu instancia de base de datos es de acceso público, sigue estos pasos:

  1. Abre la consola de Amazon RDS.
  2. En el panel de navegación, selecciona Bases de datos.
  3. Selecciona tu instancia de base de datos.
  4. Revisa la sección Conectividad y seguridad de tu instancia.
    Alternativa:
    Ejecuta el comando describe-db-instances de la AWS CLI:
    aws rds describe-db-instances --db-instance-id example_instance_id
    Nota: Sustituye example_instance_id por el ID de tu instancia de base de datos.

Para actualizar la propiedad de acceso público de tu instancia de base de datos, sigue estos pasos:

  1. Abre la consola de Amazon RDS.
  2. En el panel de navegación, selecciona Bases de datos y, a continuación, selecciona la instancia de base de datos.
  3. Selecciona Modificar.
  4. En Conectividad, expande la sección Configuración adicional y, a continuación, selecciona Accesible públicamente.
  5. Selecciona Continuar.
  6. Elige Modificar la instancia de base de datos.
    Nota: Amazon RDS aplica el cambio inmediatamente, aunque no elijas la opción Aplicar inmediatamente. El tiempo de inactividad solo se produce si tienes una acción de mantenimiento pendiente que requiere tiempo de inactividad y eliges Aplicar inmediatamente.

Si has activado la propiedad de acceso público pero sigues sin poder conectarte a tu instancia, comprueba los siguientes detalles:

  • Comprueba que has conectado una puerta de enlace de Internet a tu VPC.
  • Asegúrate de que las reglas de entrada del grupo de seguridad de la instancia de base de datos permitan las conexiones desde tu IP de origen.

Solución de problemas de conexión a una instancia de base de datos en una subred privada desde el equipo local

Para resolver este problema, utiliza uno de los siguientes métodos que mejor se adapte a tu caso de uso:

Para cambiar a una subred pública, sigue estos pasos:

  1. Abre la consola de Amazon RDS.

  2. En el panel de navegación, selecciona Bases de datos y, a continuación, selecciona la instancia de base de datos.

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

  4. Ejecuta un nslookup en el punto de enlace de la instancia de base de datos desde una instancia de EC2 dentro de la VPC, de forma similar al siguiente ejemplo:

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

    Resultado de ejemplo:

    Non-authoritative answer:
    Name: myexampledb.xxxx.us-east-1.rds.amazonaws.com
    Address: 172.31.xx.x
  5. Una vez que dispongas de la dirección IP privada de tu instancia de base de datos, relaciónala 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. Abre la consola de Amazon VPC.

  7. En el panel de navegación, elige Subredes.

  8. Selecciona la subred que está asociada a la instancia de base de datos que has encontrado en el paso 5.

  9. En el panel Descripción, elige la Tabla de enrutamiento.

  10. Selecciona Acciones y, a continuación, Editar enrutamiento.

  11. Selecciona Agregar ruta. Para el tráfico IPv4 e IPv6, en el recuadro Destino, introduce las rutas de la red externa o local. A continuación, selecciona el ID de la puerta de enlace de Internet en la lista de Destino.
    Nota: Asegúrate de que la regla del grupo de seguridad de entrada de tu instancia restrinja el tráfico a las direcciones de tu red externa o local.

  12. Selecciona Guardar.

Si la instancia de base de datos sigue sin estar accesible, confirma que la instancia de base de datos es de acceso público. Para obtener más información, consulta la sección anterior Solución de problemas de conexión a una instancia de base de datos en una subred pública a través de Internet desde el equipo local.

Solución de problemas de acceso a las instancias de base de datos por parte de una instancia de EC2 desde una VPC diferente

Si no puedes acceder a tu instancia de base de datos desde una instancia de EC2 en otra VPC, crea una conexión de emparejamiento de VPC. Una conexión de emparejamiento de VPC usa direcciones IP privadas para permitir que las VPC se comuniquen.

Sigue estos pasos:

  1. Crea una conexión de emparejamiento de VPC.
    Nota: Si las VPC están en la misma cuenta de AWS, asegúrate de que los bloques de CIDR de IPv4 no se superpongan. Para obtener más información, consulta Limitaciones de emparejamiento de VPC.
  2. Acepta la conexión.
  3. Actualiza ambas tablas de enrutamiento.
  4. Actualiza tus grupos de seguridad para que hagan referencia a los grupos VPC pares.
  5. Activa la resolución de DNS para la conexión de emparejamiento de VPC.
  6. En la instancia de EC2, utiliza una utilidad de red para probar la conexión de emparejamiento de VPC, de forma similar al ejemplo siguiente:
    nc -zv hostname port
    Nota: Sustituye hostname por tu nombre de host y port por tu puerto.
    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