Comment résoudre les problèmes de désenregistrement de cibles pour ma tâche Amazon ECS ?
Ma tâche Amazon Elastic Container Service (Amazon ECS) a été désenregistrée du groupe cible.
Résolution
Remarque : Si des erreurs surviennent lorsque vous exécutez des commandes de l'interface de la ligne de commande AWS (AWS CLI), consultez la section Résoudre des erreurs liées à l’AWS CLI. Vérifiez également que vous utilisez bien la version la plus récente de l'interface.
Si votre tâche Amazon ECS est désenregistrée du groupe cible, vérifiez qu'elle ne contient pas de messages d'erreur. Vous pouvez également exécuter la commande describe-tasks suivante de l'interface de ligne de commande AWS :
aws ecs describe-tasks \ --cluster cluster-name \ --tasks task-ARN
Remarque : Remplacez cluster-name par le nom du cluster et task-ARN par l'ARN de votre tâche. Les détails des tâches interrompues ne sont disponibles que pendant une heure après l'arrêt des tâches.
Vérifiez les valeurs de exitCode, reason, stopCode et stoppedReason dans la sortie de la commande, puis dépannez la tâche arrêtée.
Vérifier si un conteneur essentiel de la tâche est terminé
Toutes les tâches doivent disposer au moins d’un conteneur essentiel. Si le conteneur essentiel tombe en panne ou s'arrête, Amazon ECS arrête tous les conteneurs de la tâche. Pour en savoir plus, consultez vos journaux d’application.
Si votre tâche utilise le pilote de journal awslogs, exécutez la commande get-log-events suivante pour vérifier vos journaux d’application dans Amazon CloudWatch :
aws logs get-log-events \ --log-group-name awslogs-group \ --log-stream-name awslogs-stream-prefix/container-name/task-id
Remarque : Remplacez awslogs-group par le nom du groupe de journaux, awslogs-stream-prefix par le nom du flux de journaux, container-name par le nom du conteneur et task-id par l'ID de tâche.
Pour un exemple de définition de tâche qui envoie des journaux à CloudWatch, consultez la section Exemple de définition de tâche Amazon ECS : Acheminer les journaux vers CloudWatch.
Vérifier les problèmes liés à OutofMemory
Si les processus du conteneur consomment plus de mémoire que la quantité que vous avez allouée dans la définition de tâche, votre conteneur de tâches se ferme.
Pour résoudre ce problème, allouez davantage de mémoire au conteneur. Il est recommandé de charger, de tester et d'affiner les paramètres de mémoire dans un environnement hors production. Il est également recommandé d'augmenter progressivement la mémoire, puis de surveiller les performances. Par exemple, augmentez 256 Mo à 512 Mo. Lorsque vous mettez à jour la mémoire de vos tâches, vérifiez également votre allocation de processeur. Pour en savoir plus, consultez la section Bonnes pratiques relatives aux tailles de tâches Amazon ECS.
Pour mettre à jour la mémoire, vérifiez si vous avez défini la mémoire dans le conteneur ou dans la définition de tâche. Mettez à jour la définition de tâche, puis mettez à jour le service pour utiliser la nouvelle révision de définition de tâche. Surveillez le service pour vous assurer que la définition de tâche est correctement déployée avec les nouveaux paramètres de mémoire.
Pour plus d'étapes de dépannage, consultez la section Comment résoudre les erreurs OutOfMemory dans Amazon ECS ?
Vérifier vos paramètres de vérification d’état
Pour résoudre les échecs de vérification d’état pour les tâches AWS Fargate, consultez la section Comment résoudre les échecs de vérification d’état pour les tâches Amazon ECS sur Fargate ?
Des erreurs de désenregistrement peuvent se produire lorsqu'une tâche échoue aux vérifications d’état de l'Elastic Load Balancing (ELB) et que vous recevez l'une des erreurs suivantes :
- « (service AWS-service) (port 8080) is unhealthy in (target-group arn:aws:elasticloadbalancing:us-east-1:111111111111:targetgroup/aws-targetgroup/123456789) due to (reason Health checks failed with these codes: [5xx]/[4xx]/[3xx]) or (Request timed out). » (service AWS-service) (port 8080) n’est pas sain dans (target-group arn:aws:elasticloadbalancing:us-east-1:111111111111:targetgroup/aws-targetgroup/123456789) en raison de (raison pour laquelle les vérifications d’état ont échoué avec ces codes : [5xx]/[4xx]/[3xx]) ou (Expiration du délai de la requête).
- « (service AWS-Service) (task eaa3ec9e9f104070b461490987654321) failed container health checks. » (service AWS-Service) (tâche eaa3ec9e9f104070b461490987654321) a échoué aux vérifications d’état du conteneur.
- « (service AWS-Service) (instance 10.122.144.145) (port 8080) is unhealthy in (target-group arn:aws:elasticloadbalancing:ap-south-1:120987654321:targetgroup/AWS-Service-TG/159c835dc9d8cf84) due to (reason Target is in an Availability Zone that is not enabled for the load balancer). » (service AWS-Service) (instance 10.122.144.145) (port 8080) n’est pas sain dans (target-group arn:aws:elasticloadbalancing:ap-south-1:120987654321:targetgroup/AWS-Service-TG/159c835dc9d8cf84) en raison de (raison pour laquelle la cible se trouve dans une zone de disponibilité qui n’est pas activée pour l’équilibreur de charge)
L'erreur suivante peut également s'afficher dans la console Amazon ECS :
« Task failed ELB health checks in (target-group arn:aws:elasticloadbalancing:us-east-1:111111111111:targetgroup/aws-targetgroup/123456789) » (La tâche a échoué aux vérifications d’état de l’ELB dans (target-group arn:aws:elasticloadbalancing:us-east-1:111111111111:targetgroup/aws-targetgroup/123456789)
Pour résoudre ce problème, assurez-vous que le point de terminaison que vous avez configuré dans le cadre de la vérification d’état du groupe cible est exact.
Si vos tâches Amazon ECS tardent à répondre aux vérifications de l’état, il est recommandé d'augmenter la valeur du paramètre healthCheckGracePeriodSeconds. Utilisez également le mode de démarrage lent pour permettre la préparation des cibles avant que l'équilibreur de charge ne leur envoie les requêtes de vérifications d’état.
Vérifier la configuration de vos tâches et de vos services
Vérifiez les métriques de processeur et de mémoire de votre service. Une utilisation élevée des ressources peut empêcher votre application de répondre et provoquer une erreur 5xx. Pour résoudre ces problèmes pour les tâches utilisant à la fois les types de lancement Fargate et Amazon EC2, consultez la section Comment puis-je surveiller l'utilisation élevée de la mémoire pour les tâches Amazon ECS sur Fargate ?
Vérifiez que l'interface réseau Elastic de la tâche ou les groupes de sécurité de l'instance de conteneur autorisent le trafic provenant de votre équilibreur de charge sur les ports requis de votre mode réseau :
- Pour le mode réseau awsvpc, autorisez le port que vous avez défini comme containerPort dans votre définition de tâche.
- Pour le mode réseau pont, autorisez les ports éphémères (32768-60999).
Informations connexes
Messages d'erreur concernant les tâches arrêtées par Amazon ECS
Utiliser un Application Load Balancer pour Amazon ECS
Journalisation et surveillance dans Amazon Elastic Container Service
- Sujets
- Containers
- Langue
- Français

Contenus pertinents
- demandé il y a 10 mois
- demandé il y a 9 mois
- demandé il y a 8 mois
AWS OFFICIELA mis à jour il y a un an
AWS OFFICIELA mis à jour il y a un an