Jieling vous aide à apporter une solution
aux problèmes de vérification d'état dans ECS
lors de l'utilisation du mode Bridge

Jieling_Thumbnail

Une vérification d’état de l’Équilibreur de charge pour une instance Amazon Elastic Compute Cloud (Amazon EC2) dans Amazon Elastic Container Service (Amazon ECS) renvoie un état défectueux. Comment puis-je faire en sorte que l’instance Amazon EC2 réussisse la vérification de l’état ?

Pour réussir la vérification de l’Équilibreur de charge d’application, confirmez ce qui suit :

  • L’application présente dans votre conteneur Amazon ECS renvoie le code de réponse correct.
  • Les groupes de sécurité associés à votre équilibreur de charge et votre instance de conteneur sont correctement configurés.
  • Les paramètres avancés de vérification de l'état du groupe cible sont correctement configurés.

Confirmez que l’application présente dans votre conteneur Amazon ECS renvoie le code de réponse correct.

Lorsque l'équilibreur de charge envoie une requête HTTP GET sur le chemin de vérification de l'état, l'application dans votre conteneur Amazon ECS doit renvoyer le code de réponse par défaut, 200 OK

Remarque : Lorsque vous utilisez un équilibreur de charge d'applications, vous pouvez mettre à jour le paramètre Matcher pour définir 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 à l'instance à l'aide de 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 conteneur, exécutez la commande suivante :

docker ps

Remarque : Le port destiné à l’écouteur local s’affichera dans le résultat de la commande sous PORTS, à la fin de la séquence, après le chevron.

4.    Pour obtenir l’adresse IP du conteneur, utilisez la commande docker inspect. Consultez l'exemple suivant :

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

Remarque : L’adresse IP du conteneur est enregistrée dans IPADDR.

5.    Pour obtenir le code d’état, exécutez une commande curl incluant IPADDR et le port de l’écouteur local. Pour un conteneur à l’écoute sur le port 8080 avec le chemin de vérification de /health, voir l’exemple suivant :

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

Remarque : La commande doit renvoyer le message 200 OK. Si vous ne recevez pas 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 Matcher, votre application écoute, mais ne renvoie pas de code d’état pour une cible fonctionnant correctement.

Configurer correctement les 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 conteneur. En respectant cette bonne pratique, vous permettrez l’ensemble du trafic entre les équilibreurs de charge et les instances de conteneur. Vous permettrez également à vos instances de conteneur d’accepter le trafic sur la plage de ports éphémère utilisée pour le mappage du port de l’hôte dynamique.

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 groupe de sécurité associé à vos instances de conteneur autorise la totalité du trafic d'entrée sur la plage éphémère (en principe, les ports 32768 à 65535) du groupe de sécurité associé à votre équilibreur de charge

Important : Si vous déclarez le port hôte dans votre définition de tâche, le service sera exposé sur le port spécifié plutôt que sur la plage de ports éphémère. Pour cette raison, assurez-vous que le groupe de sécurité prend bien en compte le port hôte spécifié plutôt que la plage de ports éphémère.

Pour contrôler le groupe de sécurité associé à votre Équilibreur de charge, voir la section Groupe de sécurité pour votre Équilibreur de charge d’application.

Configurez correctement 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 suivante :

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

Important : Assurez-vous d’utiliser un nouveau groupe cible. Évitez d’ajouter manuellement de cibles au groupe cible, car Amazon ECS enregistre et annule de façon automatique l’enregistrement des conteneurs du groupe cible.

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

3.    Pour Port, choisissez port du trafic.

Note : si vous sélectionnez Remplacer, le trafic de vérification d’état ne sera pas correctement routé.


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 : 01/02/2019