J'utilise un modèle de formation cloud pour construire l'infrastructure (cluster ECS Fargate). Le modèle a été exécuté avec succès et la pile a été créée avec succès. Cependant, la tâche a échoué avec l'erreur suivante:
Task failed ELB health checks in (target-group arn:aws:elasticloadbalancing:eu-central-1:890543041640:targetgroup/prc-service-devTargetGroup/97e3566c8b307abf)
Je n'obtiens pas quoi et où chercher pour résoudre le problème. comme il s'agit d'un cluster Fargate, je ne sais pas comment me connecter au conteneur et exécuter certaines requêtes de vérification de l'état pour déboguer davantage.
Quelqu'un peut-il m'aider s'il vous plaît à me guider davantage à ce sujet et m'aider? En raison de cette erreur, je ne suis même pas en mesure d'accéder à mon application Web. Comme ALB
n'acheminera pas le trafic s'il est malsain.
Ce que j'ai fait
Après quelques recherches sur Google, j'ai trouvé ce message: https://aws.Amazon.com/premiumsupport/knowledge-center/troubleshoot-unhealthy-checks-ecs/
Cependant, je suppose que cela est lié à la compatibilité EC2 dans Fargate. Mais dans mon cas, EC2 n'est pas là.
Si vous le sentez, je peux également coller le modèle entier.
s'il vous plaît aider
J'ai reçu ce message d'erreur car le groupe de sécurité entre le service ECS et le groupe cible de l'équilibreur de charge autorisait uniquement le trafic HTTP et HTTPS.
Apparemment, le contrôle d'intégrité se produit sur un autre port et/ou protocole en mettant à jour le groupe de sécurité pour autoriser tout le trafic sur tous les ports (comme suggéré à https://docs.aws.Amazon.com/AmazonECS/latest/userguide/ create-application-load-balancer.html ) a fait fonctionner le bilan de santé.
Comme mentionné par tschumann ci-dessus, vérifiez le groupe de sécurité autour du cluster ECS. Si vous utilisez Terraform, autorisez l'entrée à tous les ports éphémères de docker avec quelque chose comme ci-dessous:
resource "aws_security_group" "ecs_sg" {
name = "ecs_security_group"
vpc_id = "${data.aws_vpc.vpc.id}"
}
resource "aws_security_group_rule" "ingress_docker_ports" {
type = "ingress"
from_port = 32768
to_port = 61000
protocol = "-1"
cidr_blocks = ["${data.aws_vpc.vpc.cidr_block}"]
security_group_id = "${aws_security_group.ecs_sg.id}"
}
J'ai eu exactement le même problème. J'ai pu contourner le problème en:
Il y a plusieurs différentes raisons possibles de ce problème, pas seulement les ports ouverts:
Par conséquent, AWS a créé son propre site Web afin de répondre aux possibilités de cette erreur:
Edit: dans mon cas, le code de contrôle de santé de mon application était différent. La valeur par défaut est 200, mais vous pouvez également ajouter une plage telle que 200-499.