Une ou plusieurs instances derrière my Classic Load Balancer ont échoué aux vérifications de l'état Quelles sont les causes potentielles de ces échecs et comment puis-je y remédier ?

Elastic Load Balancing (ELB) prend en charge les équilibreurs de charge d'application, les Network Load Balancer et les Classic Load Balancer. Les instances exécutées sur des Classic Load Balancer peuvent échouer aux vérifications de l'état pour les raisons suivantes :

  • Problèmes de connectivité entre l’équilibreur de charge et le backend
  • Problèmes de configuration de l’application
  • Absence de réponse « 200 OK » du backend pour la demande de vérification de l'état
  • Problèmes avec SSL, qui provoquent l'échec des vérifications de l'état de HTTPS ou SSL

Pour dépanner et résoudre les problèmes liés à la vérification de l'état, procédez comme suit :

Remédiez aux problèmes de connectivité potentiels entre votre équilibreur de charge et votre backend

Assurez-vous des éléments suivants :

  • Le backend autorise le trafic de vérification de l'état.Pour vérifier vos règles de groupes de sécurité, voirGroupes de sécurité pour les équilibreurs de charge dans un VPC Pour l’instance backend, voirGroupes de sécurité pour les instances dans un VPC.
  • La liste de contrôle d'accès (ACL) pour le sous-réseau avec l’équilibreur de charge ou le backend autorise le trafic de vérification de l'état.Pour vérifier les règles ACL pour le sous-réseau avec l’équilibreur de charge et le backend, voirACL réseau pour des équilibreurs de charge dans un VPC
  • Les pare-feu de niveau instance ou système d’exploitation sur le backend permettent le trafic de vérification de l'état. Assurez-vous que les pare-feu de niveau instance ou système d’exploitation sur le backend autorisent le trafic de contrôle de santé entrant ou sortant.
  • Les ressources de l’instance backend ne sont pas utilisées de manière excessive.Assurez-vous que l'utilisation de la mémoire et de l’UC respecte les limites acceptables. Si l'utilisation de la mémoire ou de l'UC est trop élevée, ajoutez des backends supplémentaires ou mettez à jour les backends vers un type d'instance plus grande.
  • Toutes les ressources supplémentaires autorisent le trafic de vérification de l'état.La demande de vérification de l’état doit être transmise à une ressource supplémentaire par le backend. Si la dépendance supplémentaire de répond pas ou tarde trop à répondre, la vérification de l'état échoue ou son délai expire. Vérifiez que la ressource supplémentaire répond à la demande de vérification de l'état.

Résolvez les problèmes potentiels de configuration liés à votre application

  • L'application est en cours d’exécution.Par exemple, si vous exécutez Apache sur une instance Linux, utilisez la commande sudo service httpd pour confirmer qu’Apache est en cours d’exécution.
  • L'application écoute sur le port de vérification de l'état.Pour confirmer que le serveur est en état d’écoute sur le port de vérification de l'état, exécutez la commande netstat -ant sur le serveur. Vérifiez que le port de configuration de l'application est en cours d'exécution. Pour simuler une connexion TCP entre l'équilibreur de charge et le backend, exécutez la commande telnet < IP backend privé > sur l'instance. Si la sortie est « connectée », le backend écoute sur le port de vérification de l'état.
  • L’application est configurée pour répondre aux demandes avec un en-tête hôte personnalisé.Pour les vérifications de l’état HTTP et HTTPS, les classic Load Balancer configurent l’en-tête sur l’adresse IP privée avec l'interface réseau principale du backend et l’agent utilisateur sur « ELB-HealthChecker/1.0 ». Si le backend ne répond qu'aux demandes avec un en-tête d'hôte personnalisé ou un agent utilisateur, la demande de vérification de l'état échoue.
  • L'application écoute l’interface de réseau principal du backend. Les classic Load Balancers se connectent à l’interface réseau principale de l’instance backend. Soyez assuré que l'application écoute l'interface réseau principale de l'instance backend, autorisant le backend à envoyer une réponse aux demandes de vérification de l'état.

Absence de réponse « 200 OK » du backend pour la demande de vérification de l'état

Assurez-vous des éléments suivants :

  • Le chemin de ping est valide. Si le fichier spécifié dans le chemin de ping n’est pas configuré sur le backend, le backend risque de répondre avec un code de réponse « 404 Not Found » et la vérification de l'état échouera. Remarque : la valeur par défaut du chemin ping est /index.html. Si vous n’avez pas de fichier index.html sur le backend, créez-en un ou changez la valeur du chemin ping avec un nom de fichier sur le backend.
  • La redirection n’est pas configurée sur le backend. La redirection configurée sur le backend peut aboutir à un code réponde 301 ou 302, ce qui se traduit par l’échec des vérifications de l'état. Par exemple, si vous avez une redirection de HTTP:80 vers HTTPS:443 sur le backend, les vérifications de l'état HTTP sur le port 80 échouent, sauf si vous modifiez la vérification de l'état sur HTTPS et le port de vérification de l'état sur 443. Remarque : vous pouvez simuler la demande de vérification de l'état envoyée par l’équilibreur de charge à l'aide de la commande curl -Ivk http[s]:// : / à partir de l’instance dans le sous-réseau qui est associé à l’équilibreur de charge.

Résolvez les problèmes concernant SSL

Assurez-vous des éléments suivants :

  • Tous les protocoles et les chiffrements correspondent. Pour les vérifications de l’état HTTPS ou SSL, l’équilibreur de charge et le backend doivent utiliser le même protocole et le même chiffrement. Les captures Packet prises sur l'instance backend affichent les chiffrements et protocoles pris en charge sur l’équilibreur de charge dans la commande hello client envoyée par l'équilibreur de charge. L'instance backend enregistrée doit prendre en charge au moins un chiffrement correspondant et un protocole envoyé par l'équilibreur de charge.
  • L’identification de nom de serveur (SNI) n’est pas activée sur le serveur backend.Si la vérification de l'état est HTTPS/SSL et que SNI est activé sur l’instance backend, l’équilibreur de charge et le backend ne peuvent pas établir de négociation SSL. Cela vient du fait que le serveur backend envoie un RST après la commande hello client. Désactivez le SNI ou utilisez les vérifications de l'état TCP à la place.


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 : 10/01/2017

Date de mise à jour : 08/06/2018