¿Cómo soluciono los problemas de conexión con la instancia de base de datos de Amazon RDS?

Última actualización: 15/08/2022

No puedo conectarme a mi instancia de base de datos de Amazon Relational Database Service (Amazon RDS).

Descripción corta

La imposibilidad de conectarse a una instancia de base de datos de Amazon RDS puede tener varias causas raíz. A continuación, se indican algunas de las razones más comunes:

  • El estado de la instancia de base de datos de RDS no es available (disponible), por lo que no puede aceptar conexiones.
  • El origen para conectarse a la instancia de base de datos no tiene autorización de acceso en el grupo de seguridad, las listas de control de acceso (ACL) de red ni los firewalls locales.
  • Se utilizó un nombre de DNS o un punto de conexión incorrecto para conectarse a la instancia de base de datos.
  • Se produjo un error en la instancia de base de datos Multi-AZ y la instancia de base de datos secundaria utiliza una subred o tabla de enrutamiento que no permite conexiones entrantes.
  • La autenticación del usuario es incorrecta por uno de los siguientes motivos:
    • Está utilizando un nombre de usuario o una contraseña incorrecto en la base de datos para acceder a la instancia desde el cliente de la base de datos.
    • No tiene los permisos de base de datos necesarios para acceder a la instancia.
    • El cliente se ejecuta en una versión que no es compatible con la versión de la base de datos.

Consejo: Puede utilizar los siguientes pasos de solución de problemas para identificar el origen del problema de conectividad. O puede utilizar el documento AWSSupport-TroubleshootConnectivityToRDS de Automatización de AWS Systems Manager para diagnosticar el problema. Este documento de automatización puede diagnosticar los ACL de red en función de la dirección IP principal de la instancia de Amazon Elastic Compute Cloud (Amazon EC2). Sin embargo, los puertos efímeros no se verifican. El documento de automatización también verifica los grupos de seguridad en función de la dirección IP principal de la instancia de EC2, pero la automatización no verifica puertos específicos. Para obtener más información, consulte Run an automation (Ejecutar una automatización).

Resolución

Asegúrese de que su instancia de base de datos esté disponible

Si lanzó o reinició recientemente la instancia de base de datos, confirme que su estado sea available (disponible) en la consola de Amazon RDS. Según el tamaño de la instancia de base de datos, puede tardar hasta 20 minutos en estar disponible para las conexiones de red.

Si el estado de la instancia de base de datos es failed (error), consulte ¿Por qué el estado de mi instancia de base de datos de Amazon RDS es de error?

Asegúrese de que su instancia de base de datos permita las conexiones

Asegúrese de que el tráfico del origen que se conecta a la instancia de base de datos no esté bloqueado por uno o más de los siguientes elementos:

  • Cualquier grupo de seguridad de Amazon Virtual Private Cloud (Amazon VPC) asociado a la instancia de base de datos. Si es necesario, agregue reglas al grupo de seguridad asociado a la VPC que permitan que el tráfico relacionado con el origen entre y salga de la instancia de base de datos. Puede especificar una dirección IP, un intervalo de direcciones IP u otro grupo de seguridad de VPC. Para obtener información general sobre las instancias de base de datos y VPC, consulte Situaciones para el acceso a una instancia de base de datos situada en una VPC.
  • Cualquier grupo de seguridad de base de datos asociado a la instancia de base de datos. Si la instancia de base de datos no está en una VPC, es posible que esté utilizando un grupo de seguridad de base de datos para bloquear el tráfico. Actualice su grupo de seguridad de base de datos para permitir el tráfico del intervalo de direcciones IP o el grupo de seguridad de Amazon EC2 que utiliza para conectarse.
  • Conexiones fuera de una VPC. Asegúrese de que la instancia de base de datos sea accesible públicamente y esté asociada a una subred pública (por ejemplo, la tabla de enrutamiento permite el acceso desde una puerta de enlace de Internet). Para obtener más información, consulte Situaciones para el acceso a una instancia de base de datos situada en una VPC.
    Si su instancia de base de datos está en una subred privada, asegúrese de utilizar la interconexión de VPC o AWS Site-to-Site VPN para conectarse a la instancia de forma segura. Con AWS Site-to-Site VPN, configura una puerta de enlace de cliente que le permite conectar su VPC a la red remota. Para usar la interconexión de VPC, cree una conexión de interconexión entre la VPC de origen y la VPC de su instancia para acceder a la instancia desde fuera de su VPC. También puede usar una instancia de Amazon EC2 como host bastión (salto).
  • ACL de red. Las ACL de red funcionan como un firewall para los recursos de una subred específica en una VPC. Si utiliza ACL en la VPC, asegúrese de que cuentan con reglas que permitan el tráfico entrante y saliente de la instancia de base de datos.
  • Firewalls de red o locales. Pregunte al administrador de red si la red permite el tráfico hacia y desde los puertos que la instancia de base de datos utiliza para la comunicación de entrada y salida.
    Nota: Amazon RDS no acepta el tráfico del protocolo de mensajes de control de Internet (ICMP), incluido ping.

Solucionar problemas potenciales de nombre de DNS o punto de conexión

Al conectarse a su instancia de base de datos, usa un nombre de DNS (punto de conexión) proporcionado por la consola de Amazon RDS. Asegúrese de utilizar el punto de conexión correcto. Además, proporcione el punto de conexión en el formato correcto al cliente que utilice para conectarse a la instancia de base de datos. Para obtener más información sobre las conexiones del motor de base de datos y sobre cómo utilizar un punto de conexión en varias aplicaciones cliente, consulte Introducción a Amazon RDS.

Por ejemplo, utilice nslookup en el punto de conexión de la instancia de base de datos desde una instancia de Amazon EC2 dentro de la VPC:

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

Consulte el ejemplo siguiente de una respuesta no autoritativa:

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

Solución de problemas de la base de datos

  • Asegúrese de utilizar el nombre de usuario y la contraseña correctos para acceder a la instancia desde el cliente de base de datos.
  • Asegúrese de que el usuario tenga los permisos de base de datos para conectarse a la instancia de base de datos.
  • Compruebe si hay alguna limitación de recursos en Amazon RDS, como contención de CPU o memoria. Esta contención puede provocar problemas al establecer conexiones más nuevas con la instancia.
  • Asegúrese de que la instancia no haya alcanzado el límite de max_connections (máximo de conexiones).

Verificación de las tablas de enrutamiento asociadas a su instancia

Cuando crea una implementación Multi-AZ, lanza varias instancias de base de datos de réplica en varias zonas de disponibilidad para mejorar la tolerancia a errores de su aplicación. Asegúrese de que las subredes asociadas a cada instancia de base de datos estén asociadas a las mismas tablas de enrutamiento o similares. Si la instancia de base de datos principal realiza una conmutación por error a una réplica en espera que está asociada a una tabla de enrutamiento diferente, es posible que el tráfico no se enrute correctamente. Incluso si ese tráfico se enrutó anteriormente sin problemas, es posible que ya no se enrute de manera correcta.

Para obtener más información sobre cómo configurar tablas de enrutamiento, consulte Configurar tablas de enrutamiento. Para obtener información adicional sobre las implementaciones multi-AZ, consulte Implementaciones multi-AZ para alta disponibilidad.

Nota: Si puede conectarse a la instancia de base de datos, pero se producen errores de autenticación, consulte ¿Cómo puedo restablecer la contraseña de usuario principal de mi instancia de base de datos de RDS?

Verificación de la conectividad

Ejecute uno de los comandos siguientes para verificar la conexión:

telnet <RDS endpoint> <port number>
nc -zv <RDS endpoint> <port number>

Si uno de los comandos telnet o nc funciona correctamente, se ha establecido una conexión de red. Esto significa que el problema se debe probablemente a la autenticación del usuario en la base de datos, como el nombre de usuario o la contraseña.