Comment puis-je résoudre l'erreur AWS Glue « The specified subnet does not have enough free addresses to satisfy the request » (Le sous-réseau spécifié ne dispose pas de suffisamment d'adresses libres pour répondre à la requête) » ?

Date de la dernière mise à jour : 27/08/2020

Ma tâche AWS Glue échoue avec un message d'erreur de type :

« The specified subnet does not have enough free addresses to satisfy the request » (Le sous-réseau spécifié ne dispose pas de suffisamment d'adresses libres pour répondre à la requête). (Service : AmazonEC2 ; Code de statut : 400 ; Code d'erreur : InsufficientFreeAddressesInSubnet ; ID de requête : my_request_id) »

Brève description

Cette erreur survient lorsque le nombre d'adresses IP disponibles est insuffisant pour la tâche AWS Glue. Voici deux causes courantes qui peuvent expliquer cette erreur :

  • Lorsque vous exécutez une tâche dans un sous-réseau Virtual Private Cloud (VPC), AWS Glue configure des interfaces réseau Elastic qui permettent à votre tâche de se connecter en toute sécurité à d'autres ressources du VPC. Chaque interface réseau Elastic se voit attribuer une adresse IP privée. Si les interfaces réseau Elastic ne sont pas lancées en temps voulu, il se peut que le nombre d’adresses IP disponibles pour la tâche ne soit pas suffisant. Pour corriger le problème, vérifiez le nombre de DPU utilisés par la tâche. Ensuite, réduisez le nombre de DPU et réexécutez la tâche. Vous pouvez également supprimer les interfaces réseau Elastic inutilisées.
  • Plusieurs services AWS utilisent le même sous-réseau. Ces services peuvent utiliser un grand nombre d'adresses IP disponibles du sous-réseau. Pour corriger le problème, utilisez un autre sous-réseau avec un plus grand nombre d'adresses IP disponibles pour la tâche AWS Glue.

Résolution

Utilisez l'une des méthodes suivantes pour éliminer l'erreur.

Réduisez le nombre de DPU pour la tâche

Une fois l'exécution de la tâche terminée, vérifiez le nombre de DPU qu’elle a utilisés :

  1. Ouvrez la console AWS Glue.
  2. Dans le volet de navigation, choisissez Jobs (Tâches).
  3. Choisissez la tâche, puis l'onglet History (Historique). La colonne Maximum capacity (Capacité maximale) indique le nombre de DPU utilisés pour la tâche.

Réduisez le nombre de DPU pour la tâche :

  1. Décidez du nombre de DPU à supprimer de la tâche. Gardez à l'esprit que le nombre de DPU n'est pas égal au nombre d'interfaces réseau Elastic. Une interface réseau Elastic est toujours liée à chaque application de type de travail. Toutefois, des interfaces réseau Elastic supplémentaires sont également nécessaires pour chaque tâche :
    Type de travail standard (1 DPU par application type de travail) : une interface réseau Elastic supplémentaire requise
    Type de travail G1.X (1 DPU par application type de travail) : deux interfaces réseau Elastic supplémentaires requises
    Type de travail G2.X (2 DPU par type de travail) : deux interfaces réseau Elastic supplémentaires requises
  2. Dans le volet de navigation, choisissez Jobs (Tâches).
  3. Choisissez le menu déroulant Action puis choisissez Edit job (Modifier la tâche).
  4. Développez la liste « Security configuration, script libraries, and job parameters » (Configuration de la sécurité, bibliothèques de scripts et paramètres de tâche) (facultatif).
  5. Dans le champ Maximum capacity (Capacité maximale), saisissez un nombre inférieur. Ce champ définit le nombre maximal de DPU que la tâche peut utiliser.
  6. Enregistrez vos modifications, puis réexécutez la tâche.

Supprimez les interfaces réseau Elastic inutilisées

Pour plus d'informations, consultez Suppression d'une interface réseau.

Utilisez un sous-réseau qui contient un plus grand nombre d'adresses IP disponibles

Créez un sous-réseau :

  1. Créez un sous-réseau dans votre VPC.
    Remarque : Vous pouvez créer un sous-réseau à l'aide des blocs CIDR d'origine du VPC ou ajouter des blocs CIDR supplémentaires à votre VPC afin de les utiliser avec le nouveau sous-réseau.
  2. Vérifiez les tables de routage et les règles de liste de contrôle d'accès (ACL) associées à l'ancien sous-réseau pour vous assurer que le nouveau achemine le trafic de la même manière. Par exemple, si votre sous-réseau précédent avait un routage par défaut configuré sur une passerelle Internet, assurez-vous que votre nouveau sous-réseau a un routage par défaut similaire.

Modifiez la connexion AWS Glue pour utiliser le nouveau sous-réseau :

  1. Ouvrez la console AWS Glue.
  2. Dans le volet de navigation, choisissez Connections (Connexions).
  3. Cochez la case correspondant à la connexion utilisée par la tâche AWS Glue.
  4. Dans la liste déroulante Action, choisissez Edit connection (Modifier la connexion).
  5. Sur la page Set up your connection’s properties (Configurer les propriétés de votre connexion), cliquez sur Next (Suivant).
  6. Sur la page Set up access to your data store (Configurer l'accès à votre magasin de données) dans la liste déroulante Subnet (Sous-réseau), choisissez le nouveau sous-réseau.
  7. Sélectionnez Next (Suivant), puis Finish (Terminer).
  8. Réexécutez la tâche.

Pour vérifier le nombre d'adresses IP disponibles dans le sous-réseau :

  1. Ouvrez la console AWS Glue.
  2. Dans le volet de navigation, choisissez Connections (Connexions).
  3. Cochez la case correspondant à la connexion utilisée par la tâche AWS Glue.
  4. Dans la liste déroulante Action choisissez View details (Afficher les détails). Notez le sous-réseau.
  5. Ouvrez la console Amazon VPC.
  6. Dans le volet de navigation, sélectionnezSubnets (Sous-réseaux).
  7. Dans la liste déroulante Subnet (Sous-réseau) choisissez le sous-réseau utilisé par la connexion AWS Glue.
  8. Dans l'onglet Description, cochez le champ Available IPv4 Addresses (Adresses IPv4 disponibles). Ce champ indique le nombre d'adresses IP disponibles dans le sous-réseau.

Cet article vous a-t-il été utile ?


Besoin d'aide pour une question technique ou de facturation ?