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

Lecture de 8 minute(s)
0

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

Résolution

Veuillez vérifier les problèmes fréquents suivants.

Problèmes de mise en réseau

  • **Vérifiez 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. Dès lors, AWS Glue ne peut pas utiliser l’Internet public pour se connecter au magasin de données.

  • Si le magasin de données se trouve en dehors du Virtual Private Cloud (VPC) Amazon, la table de routage du sous-réseau doit alors comporter une route vers une passerelle NAT au sein d’un sous-réseau public. Si ce n’est pas le cas, la connexion expire.
    Remarque : le magasin de données 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.

  • Si le magasin de données se trouve dans l’Amazon VPC, 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 bien le trafic vers le magasin de données.

  • Vérifier les groupes de sécurité de la connexion : l’un des groupes de sécurité associés à la connexion doit avoir une règle entrante avec référence circulaire ouverte à tous les ports TCP. De même, l’un des groupes de sécurité doit être ouvert à tout le trafic sortant. Vous pouvez utiliser une règle avec référence circulaire pour limiter le trafic sortant vers l’Amazon VPC. Consultez Configuration d’un VPC pour se connecter aux magasins de données JDBC pour plus d’informations.

  • 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’unités de traitement de données (DPU) spécifié pour la tâche. Cela permet à AWS Glue de créer des interfaces réseau Elastic dans le sous-réseau spécifié.

  • Confirmer que le sous-réseau peut accéder à Amazon Simple Storage Service (Amazon S3) : fournissez un point de terminaison Amazon S3 ou fournissez 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 bien d’un point de terminaison d’un VPC AWS KMS : si votre catalogue de données AWS Glue chiffre les connexions, assurez-vous que vous disposez bien d’une route vers AWS KMS. Par exemple, cette route peut être un point de terminaison d’interface d’un VPC AWS KMS. Pour plus d’informations, consultez Connexion à AWS KMS via un point de terminaison d’un 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 temporisation lorsque les conditions suivantes sont remplies :
    La base de données n’est pas accessible au public.
    La tâche AWS Glue est associée à une connexion qui utilise un VPC différent sans appairage de VPC.
    Ce problème peut être résolu en créant un VPC AWS Glue dédié et en configurant les appairages de VPC correspondants avec vos autres VPC si nécessaire. Pour plus d’informations, consultez Se connecter à et exécuter des tâches ETL sur plusieurs VPC à l’aide d’un VPC AWS Glue dédié.

  • Vérifiez la connectivité au magasin de données sur site : si vous testez la connexion AWS Glue à une base de données sur site, il est recommandé de vous connecter à une instance Amazon Elastic Compute Cloud (Amazon EC2) dans les même VPC, sous-réseau et groupe de sécurité que ceux utilisés pour la connexion. Exécutez ensuite les tests suivants à partir de l’instance Amazon EC2. Si vous rencontrez des problèmes lors de l’exécution des commandes, vérifiez votre VPN et la configuration du VPC, du sous-réseau, du groupe de sécurité et des listes de contrôle d’accès (ACL) réseau. Assurez-vous que ces 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 Comment accéder à des magasins de données sur site et les analyser à l’aide d’AWS Glue.

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

Problèmes d’authentification

  • Choisissez le bon rôle IAM : le rôle AWS Identity and Access Management (IAM) que vous sélectionnez pour la connexion de test doit avoir une relation d’approbation avec AWS Glue. Pour ce faire, vous pouvez facilement choisir un rôle lié à un service auquel est associée la politique AWSGlueServiceRole.
  • Vérifiez le rôle IAM de la connexion : si le mot de passe de connexion est chiffré avec AWS Key Management Service (AWS KMS), confirmez que le rôle IAM de la connexion autorise bien l’action kms:Decrypt pour la clé. Consultez la section Configuration du chiffrement dans AWS Glue pour plus d’informations.
  • Vérifiez les journaux de connexion : les journaux des connexions test sont situés dans Amazon CloudWatch Logs sous /aws-glue/testconnection/output. Recherchez les messages d’erreur dans les journaux.
  • Vérifier les paramètres SSL : si le magasin de données nécessite une connectivité SSL pour l’utilisateur spécifié, veillez à sélectionner Nécessite une connexion SSL lorsque vous créez la connexion sur la console. Ne choisissez pas cette option si le magasin de données ne prend pas en charge le protocole SSL.
  • Vérifier le nom d’utilisateur et le mot de passe JDBC : tout utilisateur accédant au magasin de données JDBC doit disposer d’autorisations d’accès suffisantes. Par exemple, les robots AWS Glue ont besoin des autorisations SELECT. Un travail 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 Ajout d’une connexion AWS Glue et passez en revue les exemples sous URL JDBC.

Résolution de problèmes supplémentaires

  • Vérifier le type de connexion :

  • pensez à choisir le bon type de connexion. 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é.

  • Si vous devez vous connecter à MySQL, sachez que la fonctionnalité de test de connexion ne fonctionne que pour les versions MySQL 5.x. La version 8 de MySQL n’est pas compatible avec le pilote JDBC intégré à AWS Glue. 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 risque de se produire. Toutefois, vous pouvez toujours utiliser votre connexion AWS Glue pour vous connecter à la version 8 de MySQL avec une solution de contournement. Utilisez la connexion sur une tâche d’extraction, de chargement et de transformation (ETL) en fournissant manuellement le pilote JAR compatible pour MySQL version 8 et ultérieure. Ensuite, chargez ce fichier JAR dans votre tâche de la même manière que vous chargeriez un pilote JDBC dans une tâche Spark. Pour plus d’informations, consultez la section Types de connexion et options pour ETL dans AWS Glue.

  • Exclure les problèmes de DNS : pour exclure les problèmes de DNS, utilisez l’adresse IP publique ou privée du magasin de données en tant qu’URL JDBC pour la connexion AWS Glue. Dans ce cas, vous devez décocher Nécessite une connexion SSL, car vous n’utilisez plus de nom de domaine.

  • Vérifier si le pilote est compatible : en cas d’échec de la connexion à cause de l’incompatibilité du pilote, fournissez le pilote approprié sous la forme d’un fichier JAR supplémentaire dans les propriétés de la tâche, ainsi que le nom de la connexion qui a échoué. (Lorsque vous spécifiez le nom de connexion comme propriété de tâche, AWS Glue utilise les paramètres de mise en réseau de la connexion, notamment le VPC et les sous-réseaux.) Remplacez ensuite les pilotes de magasin de données AWS Glue par défaut en créant manuellement le cadre des données Apache Spark à l’aide du fichier JAR que vous avez fourni dans les propriétés de la tâche. Une fois le cadre des données créé, vous avez la possibilité de le convertir en cadre dynamique AWS Glue (AWS Glue DynamicFrame). Pour plus d’informations, consultez fromDF.

  • Vérifier si le magasin de données JDBC est accessible au public : connectez-vous au magasin de données à l’aide de MySQL Workbench et de l’URL JDBC. L’autre option consiste à 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 utilisés pour la connexion. Ensuite, connectez-vous à l’instance à l’aide de SSH et exécutez les commandes suivantes pour tester la connectivité.

$ dig hostname
$ nc -zv hostname port

Informations connexes

Définition de connexions dans le catalogue de données AWS Glue

Résolution des erreurs dans AWS Glue

AWS OFFICIEL
AWS OFFICIELA mis à jour il y a 3 ans