Comment puis-je exécuter mes tâches Amazon ECS à l'aide du type de lancement Amazon EC2 pour la réussite de la vérification de l'état d'Application Load Balancer dans Amazon ECS ?

Dernière mise à jour : 12/11/2020

Une vérification d'état d'Application Load Balancer pour une instance Amazon Elastic Compute Cloud (Amazon EC2) dans Amazon Elastic Container Service (Amazon ECS) renvoie un état défectueux. Je souhaite que mon instance EC2 réussisse la vérification de l'état.

Brève description

Pour réussir la vérification d'Application Load Balancer, confirmez ce qui suit :

  • L'application de votre conteneur ECS renvoie le bon code de réponse.
  • Les groupes de sécurité reliés à votre équilibreur de charge et à votre instance de conteneur sont correctement configurés.
  • Les paramètres de vérification avancés de votre groupe cible sont correctement configurés.

Remarque : une tâche ECS peut renvoyer un état non sain pour de nombreuses raisons. Si les étapes suivantes ne permettent pas de résoudre votre problème, consultez Dépannage des équilibreurs de charge du service.

Conseil : pour savoir ce qui a arrêté votre tâche ECS, consultez Recherche d’erreurs dans les tâches arrêtées.

Résolution

Vérification du code de réponse renvoyé par l’application de votre conteneur ECS

Lorsque l'équilibreur de charge transmet une demande GET HTTP, l'application de votre container ECS doit renvoyer le code de réponse 200 OK par défaut.

Remarque : si vous utilisez un Application Load Balancer, vous pouvez modifier le paramètre Concordeur afin de spécifier un code de réponse autre que 200. Pour plus d'informations, consultez la rubrique Vérification de l'état de vos groupes cibles.

1.    Connectez-vous à votre instance de conteneur avec SSH.

2.    (En option) Installez curl en utilisant la commande appropriée pour votre système.

Pour Amazon Linux et d'autres distributions basées sur RPM, exécutez la commande :

sudo yum –y install curl

Pour les systèmes basés sur Debian tels que Ubuntu exécutez la commande suivante :

sudo apt-get install curl

3.    Pour obtenir l'ID de container, exécutez la commande suivante :

docker ps

Remarque : le port de l'écouteur local est indiqué dans le résultat de la commande, sous PORTS, à la fin de la séquence et après le chevron.

4.    Pour obtenir l'adresse IP du container, utilisez la commande docker inspect :

$ IPADDR=$(docker inspect --format='{{.NetworkSettings.IPAddress}}' aabbccddeeff)

Remarque : l'adresse IP du container est enregistrée dans IPADDR. Cela renverra une adresse IP si vous utilisez le mode réseau BRIDGE. Si vous utilisez le mode réseau AWSVPC ou HOST utilisez l'adresse IP de tâche attribuée à la tâche ENI ou à l'hôte par lequel la tâche est exposée.

5.    Pour obtenir le code d'état, exécutez une commande curl incluant la bibliothèque IPADDR et le port de l'écouteur local.

Reportez-vous à l'exemple suivant, applicable à un conteneur d'écoute au niveau du port 8080 avec le chemin de vérification étant /health :

curl -I http://${IPADDR}:8080/health

La commande doit renvoyer le code 200 OK.

Si vous recevez un message d'erreur non HTTP, votre application n'écoute pas le trafic HTTP. SI vous recevez un code d'état HTTP autre que celui que vous avez spécifié dans le paramètre Concordeur, votre application écoute, mais ne renvoie pas de code d'état pour une cible fonctionnant correctement.

Configuration correcte des groupes de sécurité associés à votre équilibreur de charge et à votre instance de conteneur

Il est recommandé de configurer deux groupes de sécurité : l'un pour votre équilibreur de charge, et l'autre pour votre instance de container. En procédant ainsi, vous autorisez tout le trafic entre vos équilibreurs de charge et les instances de container. En outre, activez vos instances de container pour accepter le trafic sur le port hôte spécifié pour la tâche.

1.    Confirmez que le groupe de sécurité associé à votre équilibreur de charge autorise tout le trafic de sortie vers le groupe de sécurité associé à votre instance de conteneur.

2.    Confirmez que le groupe de sécurité associé à vos instances de container autorise la totalité du trafic d'entrée sur la plage de port d'hôte de tâche du groupe de sécurité associé à votre équilibreur de charge.

Important : si vous utilisez le mappage de ports dynamiques, le service est exposé sur le port dynamique (généralement les ports 32768-65535) plutôt que sur le port hôte. Pour cette raison, vérifiez que votre groupe de sécurité d'instance de container reflète la plage de ports éphémères dans les règles d'entrée de l'équilibreur de charge en tant que source.

Pour contrôler le groupe de sécurité associé à votre équilibreur de charge, voir la section Groupe de sécurité pour votre Application Load Balancer.

Configurez les paramètres avancés de vérification de l'état de votre groupe cible sont correctement configurés

Pour configurer correctement les paramètres avancés de vérification de l'état correctement, voir la section Vérification d'état pour vos groupes cible. Lorsque vous configurez vos paramètres avancés de vérification d'état, réalisez avec attention les opérations suivantes :

1.    Ouvrez la console Amazon EC2, choisissez Groupes cibles, puis choisissez votre groupe cible.

Important : utilisez un nouveau groupe cible. Évitez d'ajouter manuellement des cibles au groupe, Amazon ECS enregistrant et annulant automatiquement l'enregistrement des containers auprès du groupe cible.

2.    Sélectionnez la vue Vérifications de l'état.

3.    Dans la section Port, choisissez Port de trafic.

Remarque : si vous choisissez Remplacer, vérifiez que le port spécifié correspond au port hôte de la tâche.

Vérifiez que votre équilibreur de charge est configuré dans les mêmes zones de disponibilité que vos instances de container

Pour obtenir les zones de disponibilité pour lesquelles votre équilibreur de charge est configuré :

1.    Ouvrez la console Amazon EC2.

2.    Dans le volet de navigation, dans la section Équilibrage de charge, choisissez Équilibreurs de charge.

3.    Sélectionnez l'équilibreur de charge que vous utilisez avec Amazon ECS service.

4.    Sous l'onglet Description dans le champ Zones de disponibilité, notez les zones de disponibilité répertoriées. 

Pour obtenir les zones de disponibilité pour lesquelles vos instances de container sont configurées :

1.    Ouvrez la console Amazon EC2.

2.    Dans le volet de navigation, dans la section Auto Scaling, choisissez Groupes Auto Scaling

3.    Sélectionnez le groupe Auto Scaling d'instance de container associé à votre cluster.

4.    Sous l'onglet Détails, dans la section Réseau, vérifiez que les zones de disponibilité répertoriées correspondent aux zones de disponibilité répertoriées pour votre équilibreur de charge.


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


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