Jieling vous aide à dépanner
les problèmes de vérification de l'état dans ECS
lors de l'utilisation du mode Bridge.

Jieling_Thumbnail

Une vérification de l'état de l'équilibreur de charge d'application pour une instance dans un conteneur Amazon ECS renvoie un résultat défaillant. Comment puis-je résoudre ce problème ?

Si votre vérification d'intégrité de l'équilibreur de charge est configurée conformément aux instructions indiquées dans Configurer le routage, assurez-vous que les conditions suivantes sont réunies :

  • L'application dans votre conteneur ECS renvoie le bon code de réponse (par défaut, « 200 OK ») lorsque l'équilibreur de charge envoie une requête HTTP GET au chemin de vérification de l'état.
  • Les groupes de sécurité de votre équilibreur de charge ou des instances de conteneur sont correctement configurés.
  • Les paramètres avancés de vérification de l'état du groupe cible sont correctement configurés.

Pour valider une vérification d'état, un serveur d'application doit renvoyer « 200 OK » par défaut lorsqu'un équilibreur de charge envoie une demande HTTP GET à l'application.

Remarque : Lorsque vous utilisez un équilibreur de charge d'applications, vous pouvez mettre à jour le paramètre Matcher pour remplacer le code de réponse attendu par une valeur différente de 200. Pour plus d'informations, consultez la rubrique Vérification de l'état de vos groupes cibles.

Pour confirmer que l'application fonctionne comme prévu, connectez-vous à l'instance de conteneur à l'aide de SSH et effectuez une vérification manuelle en procédant comme suit :

1.    (Facultatif) Installez curl, si ce n'est pas déjà fait.

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

2.   Recherchez l'ID du conteneur correspondant en exécutant la commande suivante :

docker ps

Trouvez la sortie sous PORTS, qui sera similaire à « 0.0.0.0:32768->80 ». Prenez plus particulièrement note de la partie de la sortie mise en évidence en gras, qui représente le port pour l'écouteur local.

3.   Obtenez l'adresse IP du conteneur en exécutant la commande suivante :

$ docker inspect --format='{{.NetworkSettings.IPAddress}}' [container ID]

Prenez note de l'adresse IP.

4.    Exécutez la commande suivante, où container_ip est l’adresse IP que vous avez obtenue à l’étape 3 et port, le port d'écoute local noté à l'étape 2 :

curl –v http://{containerip}:{port}

La commande doit renvoyer « 200 OK » (ou, si vous utilisez un équilibreur de charge d'applications et avez mis à jour votre paramètre Matcher, votre code de réponse préféré).

Remarque : Si vous ne recevez pas de réponse « 200 OK », votre application n'écoute pas le trafic HTTP.

Vérifier les groupes de sécurité attachés à votre équilibreur de charge et aux instances de conteneur

Il est recommandé de configurer deux groupes de sécurité : un pour vos instances de conteneur et un autre pour votre équilibreur de charge. Étant donné que les ports hôte sur les instances de conteneur sont attribués de façon dynamique, vérifiez les points suivants :

  • Le groupe de sécurité associé à vos équilibreurs de charge autorise tout le trafic de sortie vers le groupe de sécurité associé à vos instances principales.
  • Le groupe de sécurité associé à vos instances de conteneur backend autorise tout le trafic d'entrée sur les ports 32768-65535 du groupe de sécurité associé à votre équilibreur de charge.

Cela garantit l'autorisation de tout le trafic de vos équilibreurs de charge vers vos instances backend et le fait que vos instances backend acceptent le trafic sur la plage de ports éphémères utilisée lors de l'utilisation du mappage de port hôte dynamique.

Remarque : Si vous n'utilisez pas le mappage de port hôte dynamique et que vous déclarez le port hôte dans votre définition de tâche, assurez-vous que vos groupes de sécurité sont configurés pour autoriser le port déclaré sur le groupe de sécurité associé à vos instances principales à partir du groupe de sécurité associé à votre équilibreur de charge et non de la plage de ports éphémères.

Vérifier les paramètres avancés de vérification de l'état de votre équilibreur de charge

Assurez-vous que votre vérification d'état est configurée conformément aux instructions de la section Vérification de l’état de vos groupes cibles, en accordant une attention particulière aux points suivants, spécifiques à ECS :

  • Pour Groupe cible, utilisez Nouveau groupe cible. N’ajoutez pas manuellement de cibles au groupe cible, car ECS enregistre et annule de façon automatique l’enregistrement des conteneurs du groupe cible.
  • Pour Port, utilisez la valeur Port de trafic par défaut. Si vous choisissez Remplacer, le trafic des vérifications d’état n’est pas correctement acheminé.

Cette page vous a-t-elle été utile ? Oui | Non

Retour au Centre de connaissances AWS Support

Vous avez besoin d'aide ? Consultez le site du Centre AWS Support

Date de publication : 15/12/2016

Date de mise à jour : 08/03/2017