Comment puis-je corriger l'erreur AWS Glue « VPC S3 endpoint validation failed for SubnetId » ?

Lecture de 5 minute(s)
0

Ma tâche AWS Glue échoue avec l'erreur « JobRunId:jr_xx failed to execute with exception VPC S3 endpoint validation failed for SubnetId. Reason: Could not find S3 endpoint or NAT gateway for subnetId ». -ou- Mon robot AWS Glue échoue avec l'erreur « VPC S3 endpoint validation failed for SubnetId. Reason: Could not find S3 endpoint or NAT gateway for subnetId ».

Brève description

Cette erreur s’affiche lorsque les conditions suivantes sont remplies :

  • Vous utilisez une connexion AWS Glue avec votre tâche AWS Glue ou votre robot AWS Glue.
  • Le sous-réseau configuré pour votre connexion AWS Glue ne possède pas de configuration de point de terminaison pour le cloud privé virtuel (VPC) Amazon Simple Storage Service (Amazon S3) ou la passerelle NAT.

AWS Glue crée des interfaces réseau Elastic dans le sous-réseau spécifié dans la connexion AWS Glue. Ces interfaces réseau Elastic sont utilisées pour se connecter à vos sources de données et à Amazon S3. Les interfaces réseau Elastic se voient attribuer une adresse IP privée à partir de la plage d’adresses IP dans le sous-réseau spécifié. Étant donné qu’aucune adresse IP publique n’est utilisée, AWS Glue ne peut pas utiliser directement Internet pour se connecter à vos sources de données ou à Amazon S3 au sein de votre VPC. Pour plus d’informations, consultez Configuration de l’accès réseau aux magasins de données.

Résolution

Assurez-vous que le sous-réseau configuré pour votre connexion AWS Glue dispose bien d’un point de terminaison de passerelle Amazon S3 VPC ou d’une route vers une passerelle NAT dans la table de routage du 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 VPC. Si votre tâche AWS Glue doit accéder à l’Internet public, vérifiez et confirmez que le sous-réseau est bien configuré avec une passerelle NAT.

Configuration d’un point de terminaison de passerelle VPC S3

Pour configurer un point de terminaison de passerelle pour un VPC S3, procédez comme suit :

  1. Ouvrez la console Amazon VPC.
  2. Dans le volet de navigation, choisissez Points de terminaison.
  3. Choisissez Créer un point de terminaison.
  4. Pour Nom du service, sélectionnez com.amazonaws.us-east-1.s3. Assurez-vous que la colonne Type indique bien Passerelle.
    Remarque :
    assurez-vous de remplacer us-east-1 par la région AWS de votre choix.
  5. Pour VPC, sélectionnez le VPC sur lequel vous souhaitez créer le point de terminaison.
  6. Pour Configurer les tables de routage, une route vers le point de terminaison d’un VPC S3 est automatiquement ajoutée.
  7. Pour Politique, vous pouvez laisser l’option par défaut Accès complet.
  8. Choisissez Créer un point de terminaison.

Pour plus d’informations, consultez la section Points de terminaison de passerelle.

Si vous configurez une politique plus restrictive, assurez-vous d’autoriser votre tâche AWS Glue ou le rôle AWS Identity and Access Management (IAM) de votre robot AWS Glue à accéder aux compartiments et objets S3 requis.

Configuration d’une passerelle NAT

Remarque : la création d’une adresse IP Elastic est une condition préalable à la configuration d’une passerelle NAT. Pour plus d’informations, consultez Allocation d’une adresse IP Elastic.

Pour configurer une passerelle NAT, procédez comme suit :

Remarque : assurez-vous que le VPC utilisé pour la connexion AWS Glue possède au moins un sous-réseau public. Pour plus d’informations, consultez VPC avec des sous-réseaux publics et privés (NAT).

  1. Ouvrez la console Amazon VPC.
  2. Dans le panneau de navigation, choisissez Passerelles NAT.
  3. Choisissez Créer une passerelle NAT.
  4. Pour le Nom, saisissez le nom de la passerelle que vous souhaitez créer.
  5. Pour le Sous-réseau, sélectionnez un sous-réseau public dans le VPC que vous avez spécifié dans la connexion AWS Glue.
  6. Pour Type de connectivité, vous pouvez laisser l’option par défaut Public pour créer une passerelle NAT publique.
  7. Choisissez Créer une passerelle NAT.

Après avoir configuré la passerelle, vous devez effectuer les opérations suivantes :

  • Modifiez la table de routage associée au sous-réseau spécifié dans la connexion AWS Glue.
  • Ajoutez une route à la passerelle NAT créée.

Pour modifier la table de routage et ajouter une route à la passerelle NAT, procédez comme suit :

  1. Dans le panneau de navigation, choisissez Tables de routage.
  2. Sélectionnez la table de routage associée au sous-réseau que vous souhaitez modifier.
  3. Choisissez Actions, puis Modifier les routes.
  4. Dans la page Modifier les routes, choisissez Ajouter une route.
  5. Dans la nouvelle route qui apparaît, procédez comme suit :
    Dans le champ Destination, saisissez 0.0.0.0/0.
    Dans le champ Cible, sélectionnez Passerelle NAT, puis sélectionnez la passerelle NAT que vous avez créée. Remarque : vous devez sélectionner ces options pour vous assurer que tout le trafic de sous-réseau, tel que le trafic lié à Internet, est envoyé à la passerelle NAT.
  6. Choisissez Enregistrer les modifications.

Après avoir configuré le point de terminaison d’un VPC S3 ou la passerelle NAT dans votre sous-réseau, testez votre connexion AWS Glue respective. Exécutez à nouveau votre tâche AWS Glue ou votre robot AWS Glue une fois la connexion de test réussie.


Informations connexes

Points de terminaison Amazon VPC pour Amazon S3

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