¿Cómo soluciono los problemas de conectividad entre mis tareas de Amazon ECS para un tipo de lanzamiento de Amazon EC2 y una base de datos de Amazon RDS?

4 minutos de lectura
0

Mi aplicación se ejecuta como un conjunto de tareas que lanza Amazon Elastic Container Service (Amazon ECS) en instancias de Amazon Elastic Compute Cloud (Amazon EC2). Mi aplicación no se puede comunicar con la base de datos de Amazon Relational Database Service (Amazon RDS).

Resolución

Comprobación de las configuraciones de su red

Para comprobar si una instancia de contenedor puede establecer una conexión con la base de datos, complete los siguientes pasos para las instancias de contenedor basadas en Linux o Windows:

Para instancias de contenedor basadas en Linux:

1.    Utilice SSH para conectarse a la instancia del contenedor en la que está colocada su tarea.

2.    Para conectarse a su base de datos de RDS, ejecute el siguiente comando:

$ telnet test.ab12cde3fg4.us-east-1.rds.amazonaws.com 3306

Nota: Sustituya test.ab12cde3fg4.us-east-1.rds.amazonaws.com por el punto de conexión de su base de datos. Sustituya 3306 por el puerto de su base de datos.

El resultado es similar al siguiente:

> Trying 172.31.122.28
 > Connected to test.ab12cde3fg4.us-east-1.rds.amazonaws.com
 > Escape character is '^]'.

Importante: Telnet no viene preinstalado en las imágenes de máquina de Amazon (AMI) optimizadas para Amazon ECS. Para instalar Telnet, ejecute el comando sudo yum install telnet -y.

Para instancias de contenedor basadas en Windows:

1.    Utilice el Protocolo de escritorio remoto (RDP) para conectarse a la instancia del contenedor en la que está colocada su tarea.

2.    Para conectarse a su base de datos de RDS, ejecute el siguiente comando mediante la línea de comandos de Windows o Windows PowerShell:

$ telnet test.ab12cde3fg4.us-east-1.rds.amazonaws.com 3306

Nota: Sustituya test.ab12cde3fg4.us-east-1.rds.amazonaws.com por el punto de conexión de su base de datos. Sustituya 3306 por el puerto de su base de datos.

Importante: Telnet no viene preinstalado en las AMI de Windows optimizadas para Amazon ECS. Para instalar Telnet, ejecute el comando Install-WindowsFeature -Name Telnet-Client con PowerShell como administrador.

Si se establece la conexión, aparece una página en blanco.

Si no se establece la conexión y recibe los errores «Connection Timed Out» o «Connect failed», siga estos pasos:

1.    Compruebe si los grupos de seguridad adjuntos permiten el acceso a la base de datos de RDS. Puede utilizar bien la llamada a la API DescribeInstances o la pestaña Descripción para el ID de la instancia seleccionado en la consola de Amazon EC2.

**Nota:**En el modo de red bridge y host, los grupos de seguridad adjuntos a la instancia de contenedor controlan el acceso a la base de datos. En el modo de red awsvpc, los grupos de seguridad asociados durante el lanzamiento del servicio o la tarea controlan el acceso.

Consejo: Como práctica recomendada, cree un grupo de seguridad que permita el tráfico entrante desde el puerto de la base de datos. A continuación, adjunte el grupo de seguridad a la instancia de base de datos y de contenedor, o asocie el grupo de seguridad a las tareas basadas en awsvpc.

2.    Compruebe si la lista de control de acceso de la red (ACL de la red) y la tabla de enrutamiento asociadas a la subred permiten el acceso a la base de datos.

Comprobación de los parámetros de conexión con la base de datos

1.    En la sección Entorno de la definición de su contenedor, transmita sus variables de entorno de forma segura. Para transmitirlas de forma segura, consulte las variables de entorno desde el Almacén de parámetros de AWS Systems Manager o AWS Secrets Manager.

Nota: Una aplicación utiliza parámetros (como el punto de conexión de la base de datos, el puerto de la base de datos y las credenciales de acceso a la base de datos) para establecer una conexión con la base de datos. Estos parámetros se suelen transmitir como variables de entorno a la tarea.

2.    Si el contenedor de su tarea puede establecer una conexión con la base de datos, pero no puede autenticarse debido a parámetros de conexión incorrectos (como el nombre de usuario o la contraseña de la base de datos), restablezca la contraseña de su base de datos.

3.    Elimine los posibles espacios de caracteres iniciales o finales de sus parámetros de conexión.

Nota: Los errores de sintaxis pueden provocar un error en la conexión entre su contenedor y la base de datos de RDS.


OFICIAL DE AWS
OFICIAL DE AWSActualizada hace 4 años