Passer au contenu

Comment résoudre les échecs de connectivité des points de terminaison AWS DMS ?

Lecture de 10 minute(s)
0

Je n'arrive pas à me connecter à mes points de terminaison AWS Database Migration Service (AWS DMS) et ma connexion de test échoue. Je souhaite résoudre les problèmes de connectivité.

Résolution

Lorsque vous testez la connexion entre votre instance de réplication et le point de terminaison source ou cible, vous pouvez rencontrer des problèmes de connectivité ou de base de données native.

En cas de problème de connexion entre l'instance de réplication et la source ou la cible, des erreurs similaires à celles-ci s'affichent :

  • « 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. »
  • « 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. »
  • « 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.xxxxx.us-east-1.rds.amazonaws.com' (22) ODBC general error. »

Si l'échec se produit en raison de problèmes liés à la base de données native, tels que des erreurs d'autorisation ou d'authentification, vous recevez une erreur similaire à la suivante :

« 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. »

Remarque : Une fois que vous avez créé vos points de terminaison source et cible, il est recommandé de tester la connexion entre l'instance de réplication AWS DMS et les points de terminaison. Effectuez le test avant de commencer la tâche de migration AWS DMS.

Résoudre les problèmes de connectivité liés aux ressources que vous hébergez sur AWS

Vérifiez que vous pouvez établir une connexion entre la base de données source ou cible et l'instance de réplication. Selon votre cas d'utilisation et votre infrastructure réseau, connectez votre base de données source ou cible à une instance de réplication dans un sous-réseau public ou un sous-réseau privé. Pour plus d'informations, consultez la section Configuration d'un réseau pour une instance de réplication.

Remarque : Les versions 3.4.7 et ultérieures d'AWS DMS nécessitent que vous configuriez AWS DMS pour utiliser des points de terminaison Amazon Virtual Private Cloud (Amazon VPC). Vous devez également utiliser des routes publiques vers tous vos points de terminaison source et cible qui interagissent avec certains services AWS.

Vérifier la configuration de l’instance de réplication

Vérifiez que la configuration de votre instance de réplication inclut les règles suivantes :

  • Une Règle sortante pour l'adresse IP avec le port de la base de données source ou cible dans le groupe de sécurité. Par défaut, la Règle sortante d'un groupe de sécurité autorise tout trafic. Les groupes de sécurité sont dynamiques. Vous pouvez donc conserver la Règle entrante par défaut.
  • Une Règle sortante pour l'adresse IP avec le port de la base de données source ou cible dans la Liste de contrôle d’accès au réseau (ACL). Par défaut, la Règle sortante d'une liste ACL réseau autorise tout trafic.
  • Une Règle entrante pour l'adresse IP avec les ports éphémères de la base de données source ou cible dans l'ACL réseau. Par défaut, la Règle entrante d'une liste ACL réseau autorise tout trafic.

Vérifier la configuration de la base de données source ou cible

Dans votre base de données source ou cible, vérifiez que votre configuration inclut les règles suivantes :

  • Une Règle entrante pour l'adresse IP de l'instance de réplication ou le Bloc CIDR du groupe de sous-réseaux de l'instance de réplication. La Règle entrante doit inclure le port de la base de données source ou cible dans le groupe de sécurité. Les groupes de sécurité sont dynamiques. Vous pouvez donc conserver la Règle sortante par défaut.
  • Une Règle entrante pour l'adresse IP de l'instance de réplication ou le bloc CIDR du groupe de sous-réseaux de l'instance de réplication. La Règle entrante doit inclure le port de la base de données source ou cible dans l'ACL réseau. Assurez-vous qu'il n'existe pas de règle de refus explicite pour l'adresse IP et le port.
  • Une Règle sortante pour l'adresse IP ou le bloc CIDR du groupe de sous-réseaux de l'instance de réplication avec des ports éphémères dans la liste ACL réseau. Par défaut, la Règle sortante d'une liste ACL réseau autorise tout trafic.

Il est recommandé de configurer votre réseau pour autoriser le bloc CIDR du groupe de sous-réseaux de l'instance de réplication. L'adresse IP de l'instance de réplication change lors d'un événement de basculement ou de remplacement d'un hôte.

Déterminer les adresses IP et le bloc CIDR d'un groupe de sous-réseaux

Pour configurer des règles entrantes et sortantes, déterminez les adresses IP et le bloc CIDR du groupe de sous-réseaux. Vous pouvez utiliser la console AWS DMS ou l'interface de ligne de commande AWS (AWS CLI).

Remarque : Si des erreurs surviennent lorsque vous exécutez des commandes de l’interface de la ligne de commande AWS (AWS CLI), consultez la section Résoudre les erreurs liées à l’AWS CLI. Vérifiez également que vous utilisez bien la version la plus récente de l'AWS CLI.

Console AWS DMS

Procédez comme suit :

  1. Ouvrez la console AWS DMS.
  2. Dans le panneau de navigation, sélectionnez Instances de réplication.
  3. Sélectionnez votre instance de réplication.
  4. Sous Détails, copiez l’adresse IP publique, l’adresse IP privée et le groupe de sous-réseaux de réplication de votre instance de réplication.
  5. Sous Groupe de sous-réseaux de réplication, choisissez le lien pour accéder à la page du groupe de sous-réseaux. Copiez le nom de chaque sous-réseau du groupe de sous-réseaux.
  6. Pour vérifier le bloc CIDR de chaque sous-réseau, ouvrez la console Amazon VPC.
  7. Dans l'onglet Sous-réseaux, recherchez les sous-réseaux. Pour chaque sous-réseau, notez le bloc CIDR.

AWS CLI

Pour déterminer le bloc CIDR de chaque sous-réseau, exécutez la commande describe-subnets de l’AWS CLI :

aws ec2 describe-subnets --filters Name=subnet-id,Values="$(aws dms describe-replication-instances --filters "Name=replication-instance-id,Values=replication-instance-name" --query "ReplicationInstances[*].ReplicationSubnetGroup.Subnets[*].SubnetIdentifier" --output text | sed -e 's/\t/,/g')" --query "Subnets[*].{SubnetId:SubnetId,CidrBlock:CidrBlock}" --output table

Remarque : Remplacez replication-instance-name par le nom de votre instance de réplication.

Pour déterminer les adresses IP de l'instance de réplication, exécutez la commande describe-replication-instances :

aws dms describe-replication-instances --filters "Name=replication-instance-id,Values=replication-instance-name" --query "ReplicationInstances[*].{ReplicationInstancePublicIpAddresses:ReplicationInstancePublicIpAddresses,ReplicationInstancePrivateIpAddresses:ReplicationInstancePrivateIpAddresses}" --output table

Remarque : Remplacez replication-instance-name par le nom de votre instance de réplication.

Résoudre des problèmes de connectivité des ressources sur site

Si vous hébergez votre base de données source ou cible sur site, vérifiez que la base de données autorise les connexions entrantes depuis l'instance de réplication AWS DMS. Pour confirmer, adressez-vous à votre administrateur réseau. Aussi, un pare-feu ne bloque pas les communications avec la base de données source ou cible.

Assurez-vous de configurer correctement la configuration DNS. Si vous avez besoin d'une résolution DNS, utilisez Amazon Route 53 Resolver. Pour plus d'informations sur l'utilisation d'un serveur de noms sur site pour résoudre des points de terminaison à l'aide d'Amazon Route 53 Resolver, consultez la section Utilisation de votre propre serveur de noms sur site. Vous pouvez également créer une nouvelle instance AWS DMS via l'AWS CLI pour utiliser un serveur de noms DNS client (--dns-name-servers) afin de résoudre les problèmes de DNS. Par défaut, les instances AWS DMS utilisent les noms DNS fournis par Amazon pour les résolutions. Pour plus d’informations, consultez la section create-replication-instance.

Remarque : Lorsque vous configurez la source ou la cible pour utiliser un DNS personnalisé, les points de terminaison AWS DMS peuvent échouer.

Vérifiez que votre instance Amazon Elastic Compute Cloud (Amazon EC2) utilise les mêmes configurations réseau que l'instance de réplication AWS DMS présentant les problèmes de connectivité. Pour résoudre les problèmes liés à la connectivité réseau, exécutez d’abord la commande suivante sur la nouvelle instance Amazon EC2 :

telnet database_IP_address_or_DNS port_number

Remarque : Remplacez database_IP_address_or_DNS par l'adresse IP ou le nom de domaine de la base de données que vous spécifiez pour le point de terminaison source ou cible AWS DMS. Remplacez port_number par le numéro de port de la base de données que vous spécifiez pour le point de terminaison source ou cible AWS DMS.

Puis, exécutez la commande suivante :

nslookup domain_name

Remarque : Remplacez domain_name par le nom de domaine de la base de données que vous spécifiez pour le point de terminaison source ou cible AWS DMS.

Résoudre des erreurs de base de données native

Pour résoudre des erreurs de base de données native, vérifiez que vous avez correctement défini les configurations de point de terminaison suivantes :

  • Nom d’utilisateur
  • Mot de passe
  • ServerName
    Remarque : Vous devez définir le ServerName sur le serveur DNS ou l'adresse IP de la base de données sur site, ou sur le point de terminaison Amazon Relational Database Service (Amazon RDS).
  • Port
  • Nom de base de données
    Remarque : Ne spécifiez pas de nom de base de données pour la source ou la cible MySQL.

Si vous utilisez AWS Secrets Manager pour spécifier l'un des champs précédents, consultez la section Utilisation de secrets pour accéder aux points de terminaison AWS DMS.

Remarque : Secrets Manager ne prend pas en charge les caractères suivants dans les mots de passe : points-virgules ( ; ), points ( . ), deux-points ( : ), signes plus ( + ) et crochets ( { } ).

Pour les erreurs de base de données native liées à la base de données source ou cible, reportez-vous à la résolution fournie dans la documentation de base de données spécifique. Utilisez le code d'erreur et le message d'erreur que vous recevez dans la console AWS DMS.

Lorsque vous saisissez manuellement vos informations d'identification pour la configuration du point de terminaison, assurez-vous de ne pas inclure de crochets autour de votre mot de passe. Si vous insérez des crochets, vous recevez des messages d'erreur similaires aux suivants :

Exemple d'erreur lorsque Amazon Redshift est le point de terminaison cible

« [SERVER ]E: RetCode: SQL_ERROR SqlState: 28000 NativeError: 10 Message: [Amazon][Amazon Redshift] (10) Error occurred while trying to connect: [SQLState 28000] connection to server at Your workgroup endpoint (IP), port 5439 failed: FATAL: password authentication failed for user Your Username [1022502] (ar_odbc_conn.c:614) »

Exemple d'erreur lorsque MySQL est le point de terminaison cible

« 00012920: 2025-05-08T20:27:50:341649 [SERVER ]D: RetCode: SQL_ERROR SqlState: HY000 NativeError: 1045 Message: [MySQL][ODBC 8.0(w) Driver]Access denied for user UserName@IP (using password: YES) [1022502] (ar_odbc_conn.c:614) »

Exemple d'erreur lorsque SQL Server est le point de terminaison cible

« 00012920: 2025-05-08T21:15:20:185761 [SERVER ]E: RetCode: SQL_ERROR SqlState: 28000 NativeError: 18456 Message: [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]Login failed for user UserName. [1022502] (ar_odbc_conn.c:614) »

Remarque : Si vous utilisez PostgreSQL comme point de terminaison cible, vous pouvez utiliser des accolades.

Pour plus d'informations, consultez les journaux d'erreur, de suivi, d'alerte ou d'autres journaux de la base de données source ou cible.

Pour les erreurs d'accès à la base de données, confirmez les autorisations requises par AWS DMS pour la source ou la cible spécifique.

Pour plus d'informations sur la procédure de chiffrage des connexions pour les points de terminaison source et cible avec SSL, consultez la section Utilisation du protocole SSL avec AWS DMS.

Informations connexes

Comment puis-je résoudre les problèmes de connexion au point de terminaison Amazon S3 lors de l'utilisation d'AWS DMS ?

Comment puis-je dépanner les erreurs et pannes de connectivité pour une tâche AWS DMS qui utilise Amazon Redshift comme point de terminaison cible ?

Comment puis-je résoudre les échecs de connectivité entre AWS DMS et un point de terminaison source MongoDB ?

Migration de bases de données Microsoft SQL Server vers le Cloud AWS