Échec de la connexion test dans AWS Glue

Date de la dernière mise à jour : 07/11/2019

Comment puis-je résoudre l'échec d'une connexion test dans AWS Glue ?

Résolution

Vérifiez les problèmes courants suivants.

Problèmes de mise en 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. Cela signifie qu'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 VPC, par exemple un magasin de données sur site ou une ressource Amazon Relational Database Service (Amazon RDS) avec un nom d'hôte public, la table de routage du sous-réseau doit avoir une route vers une passerelle NAT dans un sous-réseau public. Si tel n'est pas le cas, la connexion expire. Si le magasin de données se trouve dans le VPC, vérifiez que les groupes de sécurité et la liste de contrôle d'accès (ACL réseau) de la connexion autorisent 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 qui est 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 le VPC. Pour plus d'informations, consultez Configuration d'un VPC pour se connecter aux magasins de données JDBC.
  • 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 plus d'informations, consultez Erreur : impossible de trouver le point de terminaison S3 ou la passerelle NAT du subnetId dans VPC.

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 choisir un rôle lié à un service auquel la stratégie AWSGlueServiceRole est attachée.
  • 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 l'action kms:Decrypt pour la clé. Pour plus d'informations, consultez Configuration du chiffrement dans AWS Glue.
  • 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érifiez les paramètres SSL : si le magasin de données nécessite une connectivité SSL pour l'utilisateur spécifié, veillez à sélectionner « Require SSL connection » (Connexion SSL obligatoire) lorsque vous créez la connexion sur la console. Évitez de sélectionner pas cette option si le magasin de données ne prend pas en charge SSL.
  • Vérifier le nom d'utilisateur et le mot de passe JDBC : l'utilisateur qui accède au magasin de données JDBC doit disposer d'autorisations d'accès suffisantes. Par exemple, les analyseurs AWS Glue ont besoin des autorisations « SELECT » (SÉLECTIONNER). Une tâche qui écrit dans un magasin de données a besoin des autorisations « INSERT » (INSÉRER), « UPDATE » (METTRE À JOUR) et « DELETE » (EFFACER).
  • 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 JDBC à un magasin de données et consultez les exemples sous URL JDBC.

Résolution des problèmes supplémentaires

  • Type de connexion : veillez à choisir le type de connexion adéquat. Lorsque vous choisissez Amazon RDS ou Amazon Redshift pour « Connection type » (Type de connexion), AWS Glue renseigne automatiquement le VPC, le sous-réseau et le groupe de sécurité.
  • Problèmes DNS : pour exclure les problèmes DNS, utilisez l'adresse IP publique ou privée du magasin de données comme l'URL JDBC pour la connexion AWS Glue. Dans ce cas, vous devez décocher « Require SSL connection » (Connexion SSL obligatoire) car vous n'utilisez plus de nom de domaine.
  • Pilote incompatible : si la connexion échoue en raison de l'incompatibilité d'un pilote, fournissez le pilote compatible en tant que fichier JAR supplémentaire dans les propriétés de la tâche, ainsi que le nom de connexion ayant é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 la trame de données Apache Spark à l'aide du fichier JAR que vous avez fourni dans les propriétés de la tâche. Une fois la trame de données créée, vous pouvez éventuellement la convertir en trame dynamique AWS Glue. Pour plus d’informations, consultez fromDF.
  • Si le magasin de données JDBC est accessible publiquement : connectez-vous au magasin de données à l'aide de MySQL Workbench et de l'URL JDBC. Vous pouvez également lancer une instance Amazon Elastic Compute Cloud (Amazon EC2) qui dispose 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