Passer au contenu

Comment 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 disponibles pour répondre à la demande) ?

Lecture de 5 minute(s)
0

J’ai exécuté une tâche extraction, transformation et chargement (ETL) AWS Glue. Cependant, cette dernière a échoué et j'ai reçu un message d'erreur indiquant que le sous-réseau ne contient pas suffisamment d'adresses disponibles.

Brève description

Lorsque vous exécutez une tâche ETL AWS Glue, l'une des erreurs suivantes peut s'afficher :

  • « The specified subnet does not have enough free addresses to satisfy the request. (Service: AmazonEC2; Status Code: 400; Error Code: InsufficientFreeAddressesInSubnet; Request ID: my_request_id) » (Le sous-réseau spécifié ne dispose pas d’une quantité suffisante d'adresses libres pour répondre à la demande. (Service : AmazonEC2 ; Code d’état : 400 ; Code d’erreur : InsufficientFreeAddressesInSubnet ; ID de requête : my_request_id)
  • « An error occurred calling o70.getDynamicFrame. Job 0 cancelled because SparkContext was shut down caused by threshold for executors failed after launch reached » (Une erreur s'est produite lors de l'appel de o70.getDynamicFrame. La tâche 0 a été annulée car SparkContext a été arrêté en raison de l'échec du seuil d'exécution une fois le lancement effectué)

Les erreurs précédentes se produisent pour les raisons suivantes :

  • La tâche AWS Glue utilise plus d'unités de traitement des données (DPU) qu'il n'y a d'adresses IP disponibles.
  • D'autres services AWS utilisent des adresses IP dans le même sous-réseau.
  • Vous n'avez pas détaché les interfaces réseau Elastic une fois la tâche terminée.

Résolution

Confirmer le nombre de DPU utilisées par la tâche et réduire le nombre de DPU

Assurez-vous que la tâche est terminée. Puis, vérifiez le nombre de DPU utilisées par la tâche et déterminez le nombre de DPU que vous pouvez supprimer.

Pour vérifier le nombre de DPU utilisées par la tâche, procédez comme suit :

  1. Ouvrez la console AWS Glue.
  2. Dans le volet de navigation, choisissez Tâches.
  3. Sélectionnez la tâche, puis choisissez l’onglet Historique.
  4. Vérifiez le nombre de DPU dans la colonne Capacité maximale.

Puis, déterminez le nombre de DPU à supprimer de la tâche.

Le nombre de DPU n'est pas égal au nombre d'interfaces réseau.

Chaque environnement de travail a besoin d'une interface réseau, à l'exception des types d’environnements de travail suivants qui nécessitent chacun une interface réseau supplémentaire :

  • Type d’environnement de travail standard (1 DPU par environnement de travail)
  • Type d’environnement de travail G1.X (1 DPU par environnement de travail)
  • Type d’environnement de travail G2.X (2 DPU)

Par exemple, si vous exécutez une tâche avec 20 environnements de travail sur un G.2x, utilisez le calcul suivant pour calculer le nombre d'adresses IP :

AWS Glue 2.0/3.0/4.0 : 40 DPU = 19 environnements de travail (lanceurs) + 1 pilote = 20 adresses IP (aucun lanceur de tâches dans AWS Glue 2.0/3.0/4.0)

Pour réduire le nombre de DPU, procédez comme suit :

  1. Ouvrez la console AWS Glue.
  2. Dans le volet de navigation, choisissez Tâches, puis sélectionnez la tâche.
  3. Choisissez la liste déroulante Action, puis sélectionnez Modifier la tâche.
  4. Développez la liste Configuration de sécurité, bibliothèques de scripts et paramètres de tâche (facultatif).
  5. Dans le champ Capacité maximale, saisissez un nombre inférieur pour le nombre maximal de DPU que la tâche peut utiliser.
  6. Enregistrez vos modifications, puis relancez la tâche.

Vérifier le nombre d'adresses IP disponibles et supprimer les interfaces réseau inutilisées

Tout d'abord, vérifiez le nombre d'adresses IP disponibles dans le sous-réseau.

Procédez comme suit :

  1. Ouvrez la console AWS Glue.
  2. Dans le volet de navigation, choisissez Connexions.
  3. Sélectionnez la connexion utilisée par votre tâche.
  4. Choisissez la liste déroulante Action, puis sélectionnez ** Afficher les détails**.
  5. Notez le sous-réseau.
  6. Ouvrez la console Amazon VPC.
  7. Dans le volet de navigation, choisissez Sous-réseaux.
  8. Dans la liste déroulante Sous-réseau, choisissez le sous-réseau utilisé par la connexion AWS Glue.
  9. Dans l'onglet Description, vérifiez le champ Adresses IPv4 disponibles pour voir combien d'adresses IP sont disponibles dans le sous-réseau.
  10. Vérifiez que le sous-réseau dispose d'un plus grand nombre d'adresses IP disponibles que ne l'exige la tâche AWS Glue.

Si le sous-réseau ne dispose pas d'un nombre suffisant d'adresses IP disponibles, supprimez toutes les interfaces réseau non utilisées.

Créer et utiliser un sous-réseau avec davantage d'adresses IP disponibles

Si le sous-réseau existant ne dispose pas d’une quantité suffisante d'adresses IP, créez-en un nouveau dans votre Amazon VPC. Vous pouvez utiliser le bloc CIDR d'origine ou en ajouter un nouveau pour élargir la plage. Vérifiez ensuite que le nouveau sous-réseau utilise les mêmes règles de table de routage et de liste de contrôle d'accès réseau (ACL réseau) que le sous-réseau d'origine. Par exemple, si votre sous-réseau précédent utilisait une route par défaut vers une passerelle Internet, votre nouveau sous-réseau doit être acheminé vers une passerelle Internet.

Mettre à jour la connexion AWS Glue pour utiliser le nouveau sous-réseau

Procédez comme suit :

  1. Ouvrez la console AWS Glue.
  2. Dans le volet de navigation, choisissez Connexions.
  3. Sélectionnez la connexion utilisée par votre tâche AWS Glue.
  4. Dans la liste déroulante Action, choisissez Modifier la connexion.
  5. Sur la page Configurer les propriétés de votre connexion, choisissez Suivant.
  6. Sur la page Configurer l'accès à votre stockage de données, dans la liste déroulante Sous-réseau, sélectionnez le nouveau sous-réseau.
  7. Sélectionnez Suivant, puis Terminer.
  8. Exécutez à nouveau la tâche.

Informations connexes

Définition des propriétés de tâche pour les tâches Spark

Configuration d’Amazon VPC pour les connexions JDBC aux stockages de données Amazon RDS depuis AWS Glue.

AWS OFFICIELA mis à jour il y a 8 mois