Passer au contenu

Pourquoi ma tâche Amazon ECS s’est-elle arrêtée ?

Lecture de 8 minute(s)
0

Je souhaite résoudre les problèmes liés â l’arrêt de la tâche Amazon Elastic Container Service (Amazon ECS).

Résolution

Résoudre les problèmes liés à une tâche arrêtée

Utilisez l'appel d’API DescribeTasks pour afficher les détails d'une tâche arrêtée. Puis, résolvez les problèmes liés à votre tâche en fonction de la raison de l'arrêt et du code de sortie figurant dans les détails de votre tâche.

Les détails de la tâche arrêtée n'apparaissent que pendant 1 heure dans les résultats de l'API. Pour avoir plus de temps pour consulter les détails de tâches interrompues, utilisez le modèle amazon-ecs-stopped-tasks-cwlogs sur le site Web de GitHub.

Conteneur essentiel dans la tâche terminé

Si votre conteneur essentiel est terminé, utilisez l'un des codes de sortie suivants pour résoudre votre problème :

  • Le code de sortie 0 apparaît lorsque le point d'entrée, la réussite ou la commande CMD sont terminés et qu'Amazon ECS arrête le conteneur.
  • Le code de sortie 1 apparaît en cas d'erreur d'application. Pour résoudre ce code de sortie, consultez vos journaux d’application.
  • Le code de sortie 137 apparaît lorsque vous ne répondez pas à un SIGTERM dans un délai de 30 secondes et qu'Amazon ECS arrête le conteneur avec SIGKILL. Pour modifier la période de 30 secondes par défaut, mettez à jour l'agent de conteneur Amazon ECS à l’aide du paramètre ECS_CONTAINER_STOP_TIMEOUT.
    Remarque : ce code de sortie se produit également en raison d'erreurs de mémoire insuffisante. Pour vérifier votre utilisation des ressources, consultez vos métriques Amazon CloudWatch pour Amazon ECS.
  • Le code de sortie 139 apparaît lorsque l'application tente d'accéder à une région en mémoire qui n'est pas disponible. Ce code de sortie apparaît également lorsqu'un espace réservé non défini ou non valide provoque une erreur de segmentation. Pour résoudre ce problème, consultez les journaux CloudWatch relatifs à vos tâches Amazon ECS.
  • Le code de sortie 143 apparaît lorsque le conteneur reçoit un avertissement d’arrêt progressif et qu'Amazon ECS a arrêté le conteneur.
  • Le code de sortie 255 apparaît lorsque la commande ENTRYPOINT CMD de votre conteneur échoue en raison d'une erreur. Pour vérifier que votre conteneur échoue en raison d'une erreur, consultez vos journaux CloudWatch.

Pour plus d'étapes de résolution des problèmes, consultez la section Comment résoudre les problèmes liés aux tâches Amazon ECS qui s'arrêtent ou ne démarrent pas à la fermeture de mon conteneur ?

CannotPullContainerError

Cette erreur se produit lorsque la tâche n'a pas pu démarrer car Amazon ECS ne peut pas récupérer l'image de conteneur spécifiée.

Pour résoudre ce problème pour une tâche de type de lancement Amazon Elastic Compute Cloud (Amazon EC2), consultez la section Comment résoudre les erreurs « CannotPullContainerError » lorsque je lance une tâche EC2 dans Amazon ECS ?

Pour résoudre ce problème pour une tâche Amazon ECS qui utilise le type de lancement AWS Fargate, consultez la section Comment résoudre l'erreur « cannotpullcontainererror » pour mes tâches Amazon ECS sur Fargate ?

La tâche a échoué aux surveillances de l’état de l’Elastic Load Balancer

Pour résoudre ce problème pour les tâches qui utilisent le type de lancement EC2, consultez la section Comment puis-je faire en sorte que mes tâches Amazon ECS qui utilisent le type de lancement Amazon EC2 réussissent la surveillance de l’état de l'Application Load Balancer ?

Pour résoudre ce problème pour les tâches qui utilisent le type de lancement Fargate, consultez la section Comment puis-je résoudre les échecs de surveillance de l'état des tâches Amazon ECS sur Fargate ?

Échec des surveillances de l’état du conteneur

Vous définissez les surveillances de l’état dans l'API HealthCheck ou dans le Dockerfile. Pour plus d'informations, consultez la page HEALTHCHECK sur le site Web de Docker.

Pour résoudre les erreurs de surveillances de l’état du conteneur, consultez la section Comment puis-je résoudre les échecs de surveillance de l’état du conteneur pour les tâches Amazon ECS ?

Le port est non sain

Les erreurs contenant « Instance i-## port # is unhealthy » se produisent lorsqu'une instance Amazon EC2 défectueuse ne répond pas aux surveillances de l’état sur le port spécifié.

Pour résoudre ce problème, procédez comme suit :

  • Vérifiez que le groupe de sécurité fixé à l'instance de conteneur autorise le trafic requis.
  • Exécutez la commande suivante pour vérifier que le backend répond sans délai :
    ` curl -iv localhost:container-port/path`
    Remarque : remplacez container-port par votre port de conteneur et path par le chemin de surveillance de l’état.
  • Augmentez la valeur du délai d’attente de réponse à partir de la valeur par défaut de 30 secondes. Mettez à jour l'agent de conteneur Amazon ECS avec le paramètre ECS_CONTAINER_STOP_TIMEOUT.

Pour plus d'informations sur ce message d'erreur, consultez la section Journaux d'accès de votre Network Load Balancer.

Amazon ECS effectue la maintenance de l'infrastructure sous-jacente hébergeant la tâche

Cette erreur se produit lorsqu'Amazon ECS effectue une maintenance sur les serveurs Fargate qui exécutent vos conteneurs d'applications. Par conséquent, votre service Amazon ECS est temporairement indisponible.

Pour plus d'informations, consultez la section Mise hors service et maintenance des tâches pour AWS Fargate sur Amazon ECS.

Pour les tâches autonomes, consultez la section Comment puis-je donner suite à un avis de mise hors service de tâche Amazon ECS pour une tâche exécutée sur Fargate ?

Événement de mise à l’échelle du service Amazon ECS activé

Lors d'un événement de mise à l’échelle du service Amazon ECS, les tâches s'arrêtent car la politique de mise à l’échelle réduit le nombre de tâches exécutées dans le service. Puis, Amazon ECS arrête les tâches pour atteindre le nouveau nombre spécifié. Cette action se produit généralement lorsque la demande diminue et qu'Amazon ECS requiert moins de tâches pour gérer la charge de travail.

Pour résoudre ce problème, procédez comme suit :

  • Créez des alarmes CloudWatch en cas de modification de votre service ou de vos tâches.
  • Examinez les déploiements planifiés susceptibles d'affecter vos tâches.

Pour une protection évolutive de vos tâches contre la résiliation d’événements en raison d’un autoscaling ou de déploiements de service, utilisez la protection évolutive des tâches Amazon ECS.

Pour plus d'informations, consultez la section Comment afficher et gérer les actions de mise à l’échelle planifiées pour les services Amazon ECS ?

Tâche arrêtée par un utilisateur

Pour identifier l'auteur de l'appel d’API StopTask, consultez StopTask dans AWS CloudTrail pour obtenir des informations sur userIdentity.

ResourceInitializationError

Pour les différents messages d'erreur ResourceInitialization et étapes de résolution, consultez la section Résolution des erreurs ResourceInitializatioError Amazon ECS.

Pour résoudre l'erreur « ResourceInitializationError : unable to pull secrets or registry auth », consultez la section Comment résoudre une erreur « ResourceInitializationError » lorsque j'essaie d'extraire des secrets ou de récupérer l'authentification Amazon ECR pour les tâches ECS ?

Pour résoudre l'erreur « ResourceInitializationError : failed to validate logger args », consultez la section Comment résoudre l'erreur « ResourceInitializationError : failed to validate logger args » dans Amazon ECS ?

SpotInterruptionError

Pour plus d'informations sur SpotInterruptionError, consultez la section Résolution des erreurs Amazon ECS SpotInterruption.

Pour résoudre cette erreur, consultez la section Comment gérer les notifications de résiliation ponctuelles dans les tâches AWS Fargate Spot ?

OutOfMemoryError

Cette erreur se produit lorsqu'un conteneur se ferme, car les processus du conteneur utilisent plus de mémoire que celle que vous avez allouée dans la définition de tâche.

Pour résoudre cette erreur, consultez la section Comment résoudre les erreurs OutOfMemory dans Amazon ECS ?

Résoudre les problèmes liés aux messages d'erreur que vous recevez lorsque votre tâche s'arrête

Si vous recevez un message d'erreur lorsque votre tâche s'arrête, effectuez les actions de dépannage suivantes en fonction de l'erreur.

Aucune instance de conteneur n’a été trouvée dans votre cluster

Pour résoudre ce problème, lancez une instance de conteneur.

Pour examiner les instances de votre cluster, procédez comme suit :

  1. Ouvrez la console Amazon ECS.
  2. Dans le volet de navigation, choisissez Clusters.
  3. Sélectionnez votre cluster.
  4. Choisissez l'onglet Infrastructure.
  5. Consultez la section Instances de conteneur.

S'il n'existe aucune instance de conteneur, consultez la section Pourquoi mon instance Amazon EC2 ne peut-elle pas rejoindre le cluster Amazon ECS ?

InvalidParameterException

Pour résoudre ce message d'erreur, vérifiez que les paramètres de votre TaskDefinition existent et que les Amazon Resource Names sont corrects. Vérifiez que le rôle de tâche et le rôle d'exécution de tâche disposent des autorisations requises.

Vous avez atteint la limite du nombre de tâches que vous pouvez exécuter simultanément

Cette erreur se produit lorsque vous dépassez un quota de service Amazon ECS. Pour résoudre ce problème, consultez la section Comment résoudre les problèmes de quota de service Amazon ECS ?

Informations connexes

Résoudre les erreurs de tâches interrompues par Amazon ECS

Affichage des erreurs liées aux tâches interrompues par Amazon ECS

AWS OFFICIELA mis à jour il y a 8 mois