Comment puis-je utiliser Elastic Load Balancing pour résoudre les problèmes liés à l'impossibilité d'accéder à mon site web ?

Lecture de 5 minute(s)
0

Mon site web n'est pas accessible. Comment puis-je utiliser a fonction Elastic Load Balancing (ELB) pour comprendre pourquoi les utilisateurs finaux ne peuvent pas accéder à mon site web ?

Brève description

Il existe plusieurs raisons pour lesquelles vous ne pouvez ne plus pouvoir accéder à votre site web. Pour trouver le meilleur moyen de résoudre les problèmes, répondez d'abord aux questions suivantes :

  • Le site web n'est pas accessible et la page d'attente par défaut du navigateur s'affiche-t-elle ?
  • Le problème est-il intermittent ?
  • La page se charge-t-elle après un certain délai ?
  • La page affiche-t-elle une erreur du type HTTP 5XX ?

Résolution

Effectuer une recherche et une comparaison DNS

Confirmez que le domaine confronté à ce problème est correctement résolu sur l'adresse IP des nœuds d'équilibrage de charge. Cette opération garantit que la tentative de connexion des clients est envoyée à la bonne adresse IP.

1.    Effectuez une recherche DNS :

dig <affected domain>

ou

nslookup <affected domain>

2.    À présent, faites une recherche DNS par rapport au DNS de l'équilibreur de charge pour comparaison. Par exemple :

dig lb-xxxxxxxxxx.us-east-1.elb.amazonaws.com

Cette vérification est réussie si la liste des adresses IP correspond. Si l'équilibreur de charge est dans un état de montée en puissance parallèle, il se peut qu'il y ait plus d'adresses IP qu'une seule réponse DNS ne peut en afficher. Dans ce cas d'utilisation, cette comparaison peut ne pas être suffisante. Vous devrez peut-être exécuter plusieurs requêtes DNS pour obtenir toutes les adresses IP répertoriées.

Vérifiez l'état du backend/des cibles

Vérifiez l'état de la surveillance de l'état backend/cible. Les équilibreurs de charge disposent d'une surveillance de l'état configurée qu'ils utilisent pour vérifier l'état du backend/des cibles. Selon le type d'équilibreur de charge, le backend/cibles défectueux peut affecter le routage. Vérifiez l'état de votre équilibreur de charge en fonction du type :

Remarque :

  • L'activation ou la désactivation des zones croisées peut avoir un impact sur la façon dont les demandes sont acheminées avec NLB et CLB.
  • Vous pouvez configurer des surveillances de l'état sur des ports autres que les ports de trafic. Dans ce cas, même si la cible/la sauvegarde est à l'état, la cible peut ne pas répondre au trafic qui lui est envoyé.

Si la surveillance de l'état indique que les cibles ne sont pas à l'état, le service peut être arrêté au niveau des instances cibles/backend. Sinon, les équilibreurs de charge ne peuvent pas obtenir de réponse des instances cibles/backend.

Connectez-vous directement aux nœuds de l'équilibreur de charge

Connectez-vous directement aux nœuds de l'équilibreur de charge. Ce test confirme que toutes les adresses IP de l'équilibreur de charge qui ont été résolues par DNS précédemment sont accessibles. Ce test permet également de confirmer que le problème ne se produit que dans le sous-réseau d'une zone de disponibilité (AZ) spécifique.

Notez les adresses IP de l'équilibreur de charge, puis tentez de vous connecter à ces adresses IP, une par une. L'utilisation d'un navigateur pour ce test peut ne pas fonctionner en raison des validations des certificats et de l'en-tête de l'hôte. Par contre, une bonne pratique consiste à utiliser l'outil curl pour effectuer cette vérification avec ce format. Notez que vous devez remplacer <protocol><ELB IP Address>, <port><path>, et <domain name>par les valeurs appropriées de votre configuration web.

curl -lvk <protocol>://<ELB IP Address>:<port>/<path> -H "Host: <domain name>"

Par exemple :

Eg: curl -lvk https://3.2.1.1:443/test -H "Host: example.com"

Si vous obtenez une réponse, vérifiez s'il s'agit de la réponse attendue ou d'une erreur. Si la réponse est satisfaisante, vérifiez l'adresse IP suivante.

Vérifiez l'équilibreur de charge à la recherche de problèmes de backend/cible

Si vous confirmez la connectivité à toutes les adresses IP utilisées par l'équilibreur de charge, confirmez ensuite l'état de communication de l'équilibreur de charge avec la cible/le backend.

1.    Vérifiez d'abord les groupes de sécurité, la liste de contrôle d'accès réseau et le routage.

2.    S'ils autorisent l'accès, connectez-vous à la cible/au backend. Une fois que vous avez établi l'accès, confirmez que le service web écoute sur le port configuré à l'aide de cette commande. Remplacez « port » par le port d'écoute de la cible/du backend. Il s'agit du port utilisé lors de l'enregistrement de la cible/du backend auprès de l'équilibreur de charge.

Windows :

netstat -an | findstr "LISTEN" | findstr "port"

Linux :

netstat -an | grep LISTEN | grep "port"

3.    Si vous ne voyez rien après avoir mentionné le port d'écoute attendu, c'est que le service web est hors service. Continuez à résoudre les problèmes liés à l'état du service.

4.    Si la réponse indique que le port est en écoute, essayez de vous y connecter en utilisantcurl. Remplacez <protocol> par le service d'application d'écoute et <port> par le port localhost :

curl -lvk <protocol>://localhost:<port>

Si vous obtenez une réponse à cette commande, c'est que votre service web fonctionne. Au cours de cette phase de test, vous pouvez initier une connexion à partir d'une autre instance Amazon Elastic Compute Cloud (Amazon EC2) dans le même cloud privé virtuel (Amazon VPC). Vérifiez si cette tentative de connexion aboutit et obtient une réponse du service web. Cette réponse montre également les informations reçues par l'équilibreur de charge lorsque vous tentez de vous connecter à la cible/au backend.


Informations connexes

Comment résoudre les problèmes liés à un site Web qui ne répond pas hébergé sur mon instance EC2 ?

AWS OFFICIEL
AWS OFFICIELA mis à jour il y a 2 ans