Passer au contenu

Pourquoi le test de connexion AWS Glue a-t-il échoué ?

Lecture de 8 minute(s)
0

Je souhaite résoudre un problème d’échec d’une connexion test dans AWS Glue.

Résolution

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 des erreurs liées à l’AWS CLI. Vérifiez également que vous utilisez bien la version la plus récente de l'interface.

Pour résoudre les problèmes liés à l'échec de votre connexion de test dans AWS Glue, vérifiez votre réseau et vos connexions d'authentification.

Problèmes liés au réseau

Vérifier la connectivité aux magasins de données JDBC

AWS Glue crée des interfaces réseau Elastic avec des adresses IP privées dans le sous-réseau de la connexion. Les données que vous avez stockées en dehors d'Amazon Virtual Private Cloud (Amazon VPC) exigent que la table de routage du sous-réseau inclue une passerelle NAT dans un sous-réseau public. Si tel n’est pas le cas, la connexion expire.

Remarque : les données que vous stockez en dehors d’Amazon VPC peut être un magasin de données sur site ou une ressource Amazon Relational Database Service (Amazon RDS) avec un nom d’hôte public.

Vérifiez que les groupes de sécurité et la liste de contrôle d'accès au réseau (ACL réseau) de la connexion autorisent le trafic vers les données du VPC. Puis, utilisez le dossier d’exploitation AWSSupport-TroubleshootGlueConnection dans AWS Systems Manager. Pour plus d'informations, consultez la section Comment résoudre les erreurs liées à votre connexion AWS Glue qui inclut une source JDBC ?.

Si la connexion nécessite une passerelle NAT ou un accès à AWS Secrets Manager et Service de jetons de sécurité AWS (AWS STS), associez les points de terminaison. Pour plus d'informations, consultez la section Connexion aux données.

Vérifier les groupes de sécurité de la connexion

L’un des groupes de sécurité qui est associé à la connexion doit avoir une règle entrante auto-référencée ouverte à tous les ports TCP. L’un des groupes de sécurité doit être ouvert à tout le trafic sortant. Vous pouvez utiliser une règle auto-référencée pour limiter le trafic sortant vers le VPC. Pour plus d'informations, consultez la section Configuration d’Amazon VPC pour les connexions JDBC aux magasins de données Amazon RDS depuis AWS Glue.

Vérifier le nombre d’adresses IP libres

Le nombre d’adresses IP libres dans le sous-réseau doit être supérieur au nombre d’environnements de travail que vous spécifiez pour la tâche. Cela permet à AWS Glue de créer des interfaces réseau dans le sous-réseau spécifié.

Vérifier que le sous-réseau peut accéder à Amazon S3

Indiquez un point de terminaison Amazon Simple Storage Service (Amazon S3) ou une route vers une passerelle NAT dans la table de routage de votre sous-réseau. Pour en savoir plus, consultez la section Erreur : Impossible de trouver le point de terminaison S3 ou la passerelle NAT du subnetId dans le VPC.

Vérifier si vous disposez d'un point de terminaison de VPC AWS KMS

Pour chiffrer les connexions de votre catalogue de données AWS Glue, assurez-vous que vous disposez bien d’une route vers AWS Key Management Service (AWS KMS). Par exemple, cette route peut être un point de terminaison d’interface de VPC AWS KMS. Pour plus d’informations, consultez la section Connexion à AWS KMS via un point de terminaison de VPC.

Vérifier si la connexion AWS Glue et la base de données utilisent bien différents VPC

Votre connexion de test échoue avec un message d’erreur de délai d’expiration lorsque les conditions suivantes sont remplies :

  • La base de données n’est pas accessible au public.
  • Vous avez associé la tâche AWS Glue à une connexion qui utilise un VPC différent sans appairage de VPC.

Pour résoudre un échec de connexion lors d'un test, créez un VPC AWS Glue dédié et configurez l’appairage de VPC associés à vos autres VPC.

Vérifier la connectivité au magasin de données sur site

Pour vérifier la connexion d'AWS Glue à une base de données sur site qui se connecte à une instance Amazon Elastic Compute Cloud (Amazon EC2), exécutez les commandes suivantes :

$ telnet hostname port  
$ nc -zv hostname port  
$ dig hostname  
$ traceroute -AnT -p IP port

Vérifiez votre VPN et vos configurations de VPC, de sous-réseau, de groupe de sécurité et d'ACL réseau. Assurez-vous que les configurations ne bloquent pas la connectivité entre le VPC et votre base de données sur site et ne créent pas de problèmes de pare-feu depuis cette base de données. Pour plus d’informations, consultez la section Comment accéder à des magasins de données sur site et les analyser à l’aide d’AWS Glue.

Problèmes d’authentification

Choisir le rôle IAM approprié

Le rôle Gestion des identités et des accès AWS (AWS IAM) que vous sélectionnez pour la connexion de test doit avoir une relation d’approbation avec AWS Glue. Choisissez un rôle lié à un service auquel la politique AWSGlueServiceRole est associée pour créer une relation d’approbation.

Vérifier le rôle IAM de la connexion

Si vous avez chiffré le mot de passe de connexion avec AWS Key Management Service (AWS KMS), vérifiez que le rôle IAM de la connexion autorise bien l’action kms:Decrypt pour la clé. Pour plus d’informations, consultez la section Configuration du chiffrement dans AWS Glue.

Vérifier les journaux de connexion

Recherchez l’existence de messages d’erreur dans les journaux. Vous trouverez les journaux des connexions test dans Amazon CloudWatch Logs sous /aws-glue/testconnection/output.

Vérifier les paramètres SSL

Si le magasin de données requiert une connectivité SSL pour l’utilisateur spécifié, sélectionnez Nécessite une connexion SSL lorsque vous créez la connexion sur la console. Sélectionnez cette option uniquement si le magasin de données prend en charge le protocole SSL.

Vérifier le nom d’utilisateur et le mot de passe JDBC

Les utilisateurs doivent disposer d'autorisations suffisantes pour accéder au magasin de données Java Database Connectivity (JDBC). Par exemple, les robots AWS Glue requièrent des autorisations SELECT. Une tâche de saisie dans un magasin de données doit disposer des autorisations INSERT, UPDATE et DELETE.

Vérifier la syntaxe de l’URL JDBC

Les exigences de syntaxe varient en fonction du moteur de base de données. Pour plus d'informations, consultez la section Propriétés de connexion JDBC d'AWS Glue et consultez les exemples présentés dans la section URL JDBC.

Conseils supplémentaires

Vérifier le type de connexion

Assurez-vous de choisir le type de connexion approprié. Lorsque vous choisissez Amazon RDS ou Amazon Redshift comme Type de connexion, AWS Glue renseigne automatiquement le VPC, le sous-réseau et le groupe de sécurité.

La fonctionnalité de test de connexion ne fonctionne que pour les versions de MySQL 5.x. Le pilote JDBC AWS Glue intégré ne prend pas en charge MySQL version 8. Si vous testez la connexion avec une version MySQL plus récente que la version 5.x, une erreur de délai d’expiration de connexion peut se produire. Utilisez votre connexion AWS Glue pour vous connecter à MySQL version 8. Saisissez le pilote JAR compatible pour MySQL version 8 et ultérieure pour utiliser la connexion sur une tâche d’extraction, de chargement et de transformation (ETL). Puis, chargez le fichier JAR dans votre tâche. Pour plus d’informations, consultez la section Types de connexion et options pour ETL dans AWS Glue pour Apache Spark.

Vérifier que le DNS n'est pas à l'origine des problèmes

Pour vérifier que le DNS n’est pas à l’origine des problèmes, utilisez l’adresse IP publique ou privée du magasin de données en tant qu’URL JDBC pour la connexion AWS Glue. Effacez le contenu du champ Nécessite une connexion SSL, car aucun nom de domaine n'est plus utilisé.

Vérifier si le pilote est incompatible

Fournissez le pilote approprié sous forme de fichier JAR supplémentaire dans les propriétés de la tâche, ainsi que le nom de la connexion ayant échoué. Lorsque vous spécifiez le nom de connexion comme propriété de tâche, AWS Glue utilise les paramètres réseau de la connexion, notamment le VPC et les sous-réseaux. Créez le DataFrame Spark avec le fichier JAR dans les propriétés de la tâche pour remplacer les pilotes de stockage de données AWS Glue par défaut.

Vous pouvez également convertir le DataFrame en DynamicFrame AWS Glue. Pour plus d’informations, consultez la section fromDF.

Vérifier si le magasin de données JDBC est accessible au public

Utilisez MySQL Workbench et l’URL JDBC pour vous connecter au magasin de données. Vous pouvez également lancer une instance Amazon EC2 dotée d’un accès SSH au même sous-réseau et aux mêmes groupes de sécurité que ceux que vous utilisez pour la connexion. Utilisez ensuite SSH pour vous connecter à l'instance, puis exécutez la commande suivante pour tester la connectivité :

dig hostname$ nc -zv hostname port

Informations connexes

Résolution des erreurs Spark

AWS OFFICIELA mis à jour il y a 2 ans