Comment puis-je résoudre les problèmes de connectivité entre mes tâches Amazon ECS pour un type de lancement Amazon EC2 et une base de données Amazon RDS ?

Date de la dernière mise à jour : 15/10/2020

Mon application est exécutée sous la forme d'un ensemble de tâches lancées par Amazon Elastic Container Service (Amazon ECS) sur des instances Amazon Elastic Compute Cloud (Amazon EC2). Mon application ne peut pas communiquer avec la base de données Amazon Relational Database Service (Amazon RDS).

Résolution

Vérifier vos configurations réseau

Pour vérifier si une instance de conteneur peut établir une connexion à la base de données, effectuez les opérations suivantes pour les instances de conteneur Linux ou Windows :

Pour les instances de conteneur Linux :

1.    Utilisez SSH pour vous connecter à l'instance de conteneur dans laquelle se trouve la tâche.

2.    Pour vous connecter à votre base de données RDS, exécutez la commande suivante :

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

Remarque : remplacez test.ab12cde3fg4.us-east-1.rds.amazonaws.com par le point de terminaison de votre base de données. Remplacez 3306 par le port de votre base de données.

Le résultat doit être similaire à ce qui suit :

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

Important : Telnet n'est pas préinstallé sur les Amazon Machine Images (AMI) optimisées pour Amazon ECS. Pour installer Telnet, exécutez la commande sudo yum install telnet -y.

Pour les instances de conteneur Windows :

1.    Utilisez le protocole RDP (Remote Desktop Protocol) pour vous connecter à l'instance de conteneur où votre tâche est placée.

2.    Pour vous connecter à votre base de données RDS, exécutez la commande suivante à l'aide de l'invite de commande Windows ou de Windows PowerShell :

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

Remarque : remplacez test.ab12cde3fg4.us-east-1.rds.amazonaws.com par le point de terminaison de votre base de données. Remplacez 3306 par le port de votre base de données.

Important : Telnet n'est pas préinstallé sur les AMI Windows optimisées pour Amazon ECS. Pour installer Telnet, exécutez la commande Install-WindowsFeature -Name Telnet-Client en tant qu'administrateur à l'aide de PowerShell.

Si la connexion est établie, une page blanche s'affiche.

Si la connexion n'est pas établie et que vous obtenez des erreurs de type « Connection Timed Out » (Expiration du délai de connexion) ou « Connect failed » (Échec de la connexion), effectuez les opérations suivantes :

1.    Vérifiez si les groupes de sécurité attachés autorisent l'accès à la base de données RDS. Vous pouvez utiliser l'appel API DescribeInstances ou l'onglet Description de l'ID d'instance sélectionné dans la console Amazon EC2.

Remarque : en mode réseau bridge et host, ce sont les groupes de sécurité associés à l'instance de conteneur qui gèrent l'accès à la base de données. En mode réseau awsvpc, ce sont les groupes de sécurité associés pendant le lancement du service ou de la tâche qui gèrent l'accès.

Astuce : il est recommandé de créer un groupe de sécurité qui autorise le trafic entrant depuis le port de la base de données. Associez ensuite le groupe de sécurité à la base de données et à l'instance de conteneur ou associez-le aux tâches, en fonction de la commande awsvpc.

2.    Vérifiez que les listes de contrôle d'accès (ACL) réseau et que la table de routage associée au sous-réseau autorisent l'accès à la base de données.

Vérifier les paramètres de connexion à la base de données

1.    Dans la section environment de votre définition de conteneur, transmettez vos variables d'environnement en toute sécurité. Pour les transmettre en toute sécurité, référencez-les depuis AWS Systems Manager Parameter Store ou AWS Secrets Manager.

Remarque : une application utilise des paramètres (par exemple, point de terminaison, port et informations d'identification pour l'accès à la base de données) pour établir une connexion à la base de données. Ces paramètres sont généralement transmis à la tâche en tant que variables d'environnement.

2.    Si le conteneur de votre tâche peut établir une connexion à la base de données, mais ne peut pas s'authentifier en raison de paramètres de connexion incorrects (par exemple le nom d'utilisateur ou le mot de passe de la base de données), réinitialisez le mot de passe de votre base de données.

3.    Supprimez tous les espaces de début ou de fin dans vos paramètres de connexion.

Remarque : les erreurs de syntaxe peuvent provoquer l'échec de la connexion entre votre conteneur et la base de données RDS.</p


Cet article vous a-t-il été utile ?


Besoin d'aide pour une question technique ou de facturation ?