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

Date de la dernière mise à jour : 26/09/2019

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 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 plus d'informations, consultez 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 pouvez voir 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 à une configuration réseau ou à des délais d'expiration, vous pouvez voir 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. Ensuite, choisissez« Replication instances » (Instances de réplication) dans le 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 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 – par exemple, une règle de refus explicite – 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. 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 configurée 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 et avec les mêmes configurations réseau que l'instance de réplication AWS DMS. Depuis 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>