tutorial side pricing example elb elastic balancer aws application alb amazon-web-services load-balancing amazon-elb

amazon-web-services - side - load balancer aws tutorial



¿Por qué Elastic Load Balancing informa ''fuera de servicio''? (10)

Estoy intentando configurar Elastic Load Balancing (ELB) en AWS para dividir las solicitudes entre varias instancias. He creado varias imágenes de mi servidor web basadas en la misma AMI, y puedo acceder a ellas de manera individual y acceder al sitio a través de cada DNS público distinto.

He agregado cada una de mis instancias al equilibrador de carga, pero todas vuelven con el Status: Out of Service porque no pasaron el control de estado. En general, estoy confundido porque puedo acceder a cada instancia desde su DNS público, pero obtengo un tiempo de espera cada vez que visito el nombre DNS del equilibrador de carga.

He estado tratando de leer todos los documentos y buscar en Google, pero estoy atascado. Cualquier puntero o enlace en la dirección correcta sería muy apreciado.


Agregando esto porque he pasado horas tratando de resolverlo ...

Si configuró su punto final de control de estado, pero todavía dice Out of Service , podría ser porque su servidor está redireccionando la solicitud (es decir, devolviendo una respuesta 301 o 302 ).

Por ejemplo, si su punto final se supone que es /app/health/ pero solo ingresa /app/health (sin barra final) en el campo de punto final de verificación de estado en su ELB, no obtendrá una respuesta de 200, por lo que el chequeo fallará.


Contacté con el soporte de AWS sobre este mismo problema. Aparentemente, su sistema no sabe cómo manejar los casos donde todas las instancias detrás del ELB se detienen durante un período de tiempo prolongado. El soporte de AWS puede actualizar manualmente los estados, si los necesita de inmediato.

La solución sugerida consiste en anular el registro de las instancias ec2 del ELB en lugar de simplemente detenerlas y volver a registrarlas cuando vuelva a comenzar.


En mi caso, las reglas sobre los grupos de seguridad asignados a la instancia y al equilibrador de carga no permitían que el tráfico pasara entre los dos. Esto causó que el control de salud fallara.


Estaba trabajando en AWS Tutorial en el alojamiento de una aplicación web y me encontré con este problema. El paso 7b establece lo siguiente:

"Establezca la ruta de ping en /. Esto envía consultas a su página predeterminada, ya sea que se llame index.html o alguna otra cosa".

Podrían haber puesto la barra inclinada en citas como esta "/". Asegúrese de tener eso en sus cheques de salud y no este "/". .


Finalmente lo hice funcionar. El problema estaba en Amazon Security Groups , porque restringí el acceso al puerto 80 a algunas máquinas en mi área de desarrollo y el equilibrador de carga no podía acceder al servidor apache en la instancia. Una vez que el equilibrador de carga obtuvo acceso a mi instancia, se pone en servicio .

Lo comprobé con la tail -f /var/log/apache2/access.log en mi instancia, para verificar si el equilibrador de carga intentaba acceder a mi servidor, y para ver la respuesta que el servidor está dando al equilibrador de carga.

Espero que esto ayude.


La comprobación de estado se realiza (de forma predeterminada) accediendo a index.html en cada instancia incorporada en el equilibrador de carga. Si no tiene index.html en el documento raíz de la instancia, la comprobación de estado predeterminada fallará. Puede configurar el protocolo, el puerto y la ruta personalizados para la comprobación de estado al crear el equilibrador de carga elástico.


Me gustaría proporcionarle una forma general de resolver este problema. Cuando haya configurado su servidor web como apache o nginx, intente leer el archivo de registro de acceso para ver qué sucedió. En mi caso, informa el 401 error porque agregué la autenticación básica en nginx. Por supuesto, al igual que recuerda @ivankoni, puede ser porque el documento que verificas no existe.


Si su servidor web funciona correctamente, significa que la verificación de estado se realiza en una URL que no devuelve 200.

Un truco que funciona para mí: ve a la instancia, escribe curl localhost: 80 / pathofyourhealthcheckurl

Después de que pueda adaptar su url de verificación de estado para tener siempre una respuesta de 200.


Tuve un problema similar. El problema parece haber sido causado debido a mi uso de un chequeo de salud HTTP y también usando .htaccess para proteger con contraseña el sitio.


Me enfrenté al mismo problema, cambié el protocolo Ping de https a ssl ... ¡funcionó!

Go to Health Check --> click on Edit Health Check -- > change Ping protocol from HTTPS to SSL

Ping Target SSL:443 Timeout 5 seconds Interval 30 seconds Unhealthy Threshold 5 Healthy Threshold 10