Comment puis-je résoudre les problèmes de connectivité des points de terminaison AWS DMS ?

Date de la dernière mise à jour : 16/02/2021

Je n'arrive pas à me connecter à mes points de terminaison AWS Database Migration Service (AWS DMS). Pourquoi ma connexion de test échoue-t-elle et comment résoudre ces problèmes de connectivité ?

Résolution

Une fois que vous avez créé vos points de terminaison source et cible AWS DMS, il est recommandé de tester la connectivité entre l'instance de réplication AWS DMS et les points de terminaison. Faites-le avant de démarrer la tâche de migration AWS DMS. Le test de connectivité sert à s'assurer que la tâche n'échoue pas en raison de problèmes de connectivité avec le point de terminaison.

Pour que l'instance de réplication AWS DMS se connecte aux points de terminaison source et cible, le groupe de sécurité qu'utilise l'instance de réplication AWS DMS doit inclure des règles sortantes pour les adresses IP du point de terminaison pour le port spécifique. Si les règles sortantes du groupe de sécurité pour l'instance de réplication sont correctes, vérifiez le réseau entrant ou les paramètres de sécurité sur la base de données source ou cible. Pour obtenir plus d'informations, consultez la section Ajout, suppression et mise à jour de règles.

Si l'erreur s'est produite parce que l'accès à la base de données est refusé, vous verrez des erreurs semblables à ce qui suit :

Test Endpoint failed: Application-Status: 1020912, Application-Message: Cannot connect to ODBC provider Network error has occurred, Application-Detailed-Message: RetCode: SQL_ERROR SqlState: 08001 NativeError: 101 Message: [unixODBC]FATAL: password authentication failed for user "dmsuser" ODBC general error.

Test Endpoint failed: Application-Status: 1020912, Application-Message: Cannot connect to ODBC provider ODBC general error., Application-Detailed-Message: RetCode: SQL_ERROR SqlState: HY000 NativeError: 2005 Message: [unixODBC][MySQL][ODBC 5.3(w) Driver]Unknown MySQL server host 'mysql1.chulbfpmdg0x.us-east-1.rds.amazonaws.com' (22) ODBC general error.

Pour résoudre ces erreurs, vérifiez que les informations suivantes relatives au point de terminaison sont définies correctement :

  • Nom d'utilisateur et mot de passe
  • ServerName (nom du point de terminaison de l'instance de base de données)
  • Port

Si l'erreur est due à la configuration du réseau ou à des délais d'expiration, vous verrez des erreurs semblables à ce qui suit :

Test Endpoint failed:
    Application-Status: 1020912, Application-Message: Failed to connect Network error has occurred, Application-Detailed-Message: RetCode: SQL_ERROR SqlState: HYT00 NativeError: 0 Message: [unixODBC][Microsoft][ODBC Driver 13 for SQL Server]Login timeout
    expired ODBC general error.

Test Endpoint failed: Application-Status: 1020912, Application-Message: Cannot connect to ODBC provider Network error has occurred, Application-Detailed-Message: RetCode: SQL_ERROR SqlState: 08001
    NativeError: 101 Message: [unixODBC]timeout expired ODBC general error.

Pour résoudre ces erreurs, vérifiez la résolution de l'erreur NativeError pour le moteur de base de données de votre point de terminaison.

La base de données source ou cible est hébergée sur AWS.

Commencez par vérifier que la base de données possède une configuration de groupe de sécurité qui autorise le trafic entrant à partir de l'adresse IP de l'instance de réplication AWS DMS.

Procédez comme suit pour vérifier l'adresse IP publique et privée de l'instance de réplication :

  1. Ouvrez la console AWS DMS, puis choisissez Instances de réplication à partir du volet de navigation.
  2. Choisissez le nom de votre instance de réplication.
  3. Dans la section Details (Informations), vous pouvez vérifier l’adresse IP publique et l’adresse IP privée de votre instance de réplication. Vous pouvez également exécuter describe-replication-instances pour vérifier les adresses IP de votre instance de réplication :

Adresse IP privée

aws dms describe-replication-instances
    --filters Name=replication-instance-id,Values=<DMS replication instance name> "ReplicationInstances[*].ReplicationInstancePrivateIpAddress" --output=text

Adresse IP publique

aws dms describe-replication-instances --filters Name=replication-instance-id,Values=<DMS replication instance name> "ReplicationInstances[*].ReplicationInstancePublicIpAddress" --output=text

Ensuite, vérifiez que les règles de la liste de contrôle d'accès (ACL) réseau pour Amazon Virtual Private Cloud (Amazon VPC) ne limitent pas le trafic entrant vers les bases de données source ou cible et l'instance de réplication. Par exemple, il pourrait y avoir une règle de refus explicite. Enfin, vérifiez que la table de routage du sous-réseau associé à la base de données comporte les entrées requises qui autorisent le trafic réseau public ou privé.

La base de données source ou cible est hébergée sur site.

Vérifiez auprès de votre administrateur réseau si votre base de données est configurée pour autoriser les connexions entrantes à partir de l'instance de réplication AWS DMS. Vérifiez que la configuration DNS est correctement définie et qu'aucun pare-feu ne bloque la communication avec la base de données source ou cible.

Si vous ne pouvez pas identifier le point de blocage dans la connectivité réseau, créez une nouvelle instance Amazon Elastic Compute Cloud (Amazon EC2) dans le même VPC. Assurez-vous que votre instance Amazon EC2 possède les mêmes configurations réseau que l'instance de réplication AWS DMS. À partir de la nouvelle instance EC2 de test, exécutez les commandes suivantes pour tenter de dépanner la connectivité réseau :

telnet <IP address of host database server> <port number>
nslookup <Fully qualified domain name for the database server>
tracert <IP address of host database server> <ip address of host database server> <port number> <fully qualified domain name for the database server> <ip address of host database server>

Résoudre les erreurs de connexion SSL

Pour plus d'informations sur le chiffrement des connexions pour les points de terminaison source et cible à l'aide de SSL (Secure Sockets Layer), consultez Utilisation de SSL avec AWS Database Migration Service.