¿Cómo puedo utilizar Elastic Load Balancing para solucionar el motivo por el que no se puede acceder a mi sitio web?

Última actualización: 07/04/2022

No se puede acceder a mi sitio web. ¿Cómo puedo usar Elastic Load Balancing (ELB) para entender por qué los usuarios finales no pueden acceder a mi sitio web?

Descripción corta

Hay varias razones por las que es posible que no pueda acceder a su sitio web. Para encontrar la mejor manera de solucionar el problema, responda antes a estas preguntas:

  • ¿No se puede acceder al sitio web y recibe una página de tiempo de espera predeterminada del navegador?
  • ¿El problema es intermitente?
  • ¿Se carga la página después de un retraso?
  • ¿La página muestra un error como HTTP 5XX?

Resolución

Realice una búsqueda y comparación de DNS

Confirme que el dominio que sufre este problema se resuelve correctamente en la dirección IP de los nodos del equilibrador de carga. Esto garantiza que el intento de conexión de los clientes se envía a la dirección IP correcta.

1.    Realice una búsqueda de DNS:

dig <affected domain>

o bien

nslookup <affected domain>

2.    Realice una búsqueda de DNS para comparar los resultados con el DNS del equilibrador de carga. Por ejemplo:

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

Esta comprobación se considera satisfactoria si la lista de direcciones IP coincide. Si el equilibrador de carga está en un estado de escalado horizontal, es posible que haya más direcciones IP de las que puede mostrar una sola respuesta de DNS. En este caso de uso, esta comparación puede no ser suficiente. Es posible que deba ejecutar varias consultas de DNS para obtener una enumeración de todas las IP.

Comprobar el estado del backend o los destinos

Realice una comprobación de estado del backend o el destino. Los equilibradores de carga cuentan con una comprobación de estado configurada que usan para verificar el estado del backend o los destinos. Según el tipo de equilibrador de carga, los backend o destinos en mal estado pueden afectar el enrutamiento. Compruebe el estado del equilibrador de carga según el tipo:

Nota:

  • Habilitar o desactivar la característica entre zonas puede afectar la forma en que se dirigen las solicitudes con NLB y CLB.
  • Puede configurar comprobaciones de estado en puertos que no sean puertos de tráfico. En este caso, incluso si el destino o el backend están en buen estado, es posible que el destino no responda al tráfico que se le envía.

Si la comprobación de estado muestra que los destinos no están en buen estado, es posible que el servicio se interrumpa en las instancias de destino o en el backend. Otra posibilidad es que los equilibradores de carga no puedan obtener una respuesta de las instancias de destino o del backend.

Conectarse directamente a los nodos del equilibrador de carga

Conéctese directamente a los nodos del equilibrador de carga. Esta prueba confirma si se puede acceder a todas las direcciones IP del equilibrador de carga que se resolvieron con DNS anteriormente. Además, también confirma si el problema ocurre solo con una subred de una zona de disponibilidad (AZ) específica.

Anote las direcciones IP del equilibrador de carga y, a continuación, intente conectarse a estas direcciones IP, de una en una. Es posible que el uso de un explorador para esta prueba no sea una opción adecuada debido a las validaciones de certificados y al encabezado del host. En cambio, se recomienda utilizar la herramienta curl para realizar esta comprobación con este formato. Tenga en cuenta que debe reemplazar <protocol> (<protocolo>), <ELB IP Address> (<Dirección IP del ELB>) ,<port> (<puerto>), <path> (<ruta>) y <domain name> (<nombre de dominio>) por los valores correctos de configuración de la web.

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

Por ejemplo:

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

Si su intento obtiene una respuesta, compruebe si se trata de la respuesta esperada o de un error. Si la respuesta es satisfactoria, compruebe la siguiente dirección IP.

Comprobar el equilibrador de carga para ver si hay problemas de backend o destino

Si confirma la conectividad a todas las direcciones IP que usa el equilibrador de cargas, confirma el estado de la comunicación del equilibrador de carga con el destino o backend.

1.    En primer lugar, compruebe los grupos de seguridad, la ACL de red y el enrutamiento.

2.    Si permiten el acceso, entonces inicie sesión en el destino/backend. Después de establecer el acceso, confirme que el servicio web está escuchando en el puerto configurado mediante este comando. Reemplace “port” por el puerto de escucha del destino o backend. Este es el puerto que se usa al registrar el destino o backend en el equilibrador de carga.

Windows:

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

Linux:

netstat -an | grep LISTEN | grep "port"

3.    Si no ve nada en la lista después de mencionar el puerto de escucha esperado, el servicio web no funciona. Siga solucionando los problemas de estado del servicio.

4.    Si la respuesta muestra que el puerto está escuchando, intente conectarse a él mediante curl. Reemplace <protocol> por el servicio de aplicación de escucha y <port> por el puerto localhost:

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

Si recibe una respuesta de este comando, significa que su servicio web está funcionando. Durante esta fase de pruebas, puede iniciar una conexión desde otra instancia de Amazon Elastic Compute Cloud (Amazon EC2) en la misma nube virtual privada de Amazon (Amazon VPC). Compruebe si este intento de conexión llega y recibe una respuesta del servicio web. Esta respuesta también muestra lo que recibe el equilibrador de carga cuando intenta conectarse al destino o al backend.


¿Le resultó útil este artículo?


¿Necesita asistencia técnica o con la facturación?