¿Cómo soluciono los errores de comprobación del estado del equilibrador de carga de red para las tareas de Amazon ECS en Fargate?
Recibo errores en las comprobaciones de estado del equilibrador de carga de red cuando ejecuto tareas de Amazon Elastic Container Service (Amazon ECS) en AWS Fargate.
Descripción corta
Para comprobar el estado de HTTP y HTTPS, consulte ¿Cómo soluciono los errores de comprobación de estado del equilibrador de carga de aplicación para las tareas de Amazon ECS en Fargate?
Cuando sus tareas de Amazon ECS no pasan una comprobación de estado del equilibrador de carga de red, recibe errores en los mensajes de eventos de servicio similares a los de los siguientes ejemplos:
- «Error en las comprobaciones de estado: (service AWS-service) (puerto 80) no está en buen estado en (target-group arn:aws:elasticloadbalancing:us-east-1:111111111111:targetgroup/aws-targetgroup/123456789) debido a que (fallaron las comprobaciones de estado)»
- «El destino se encuentra en una zona de disponibilidad que no está activada por el error del equilibrador de carga: (service AWS-service) (puerto 80) no está en buen estado en (target-group arn:aws:elasticloadbalancing:us-east-1:111111111111:targetgroup/aws-targetgroup/123456789) debido a que (el destino se encuentra en una zona de disponibilidad que no está habilitada para el equilibrador de carga)»
- «Se agotó el tiempo de espera de las solicitudes de comprobaciones de estado: (service AWS-service) (puerto 8443) no está en buen estado en (target-group arn:aws:elasticloadbalancing:us-east-1:111111111111:targetgroup/aws-targetgroup/123456789) debido a que (se agotó el tiempo de espera de la solicitud)».
Si recibe errores en la comprobación de estado del contenedor, consulte ¿Cómo soluciono los errores de comprobación de estado del contenedor para las tareas de Amazon ECS?
Si sus tareas de Amazon ECS están detenidas, consulte Visualización de errores de tareas detenidas de Amazon ECS.
Resolución
Nota: Si se muestran errores al ejecutar comandos de la Interfaz de la línea de comandos de AWS (AWS CLI), consulte Solución de problemas de AWS CLI. Además, asegúrese de utilizar la versión más reciente de la AWS CLI.
Error en las comprobaciones de estado
Para solucionar los errores de comprobación de estado del equilibrador de carga en las tareas de Fargate, haga lo siguiente.
Comprobar la conectividad entre el equilibrador de carga y la tarea de Amazon ECS
Para permitir que el equilibrador de carga realice comprobaciones de estado en las tareas de Amazon ECS, confirme las siguientes configuraciones:
- Si el contenedor está asignado al puerto 80, el grupo de seguridad de tareas permite el tráfico entrante en dicho puerto.
- La aplicación se puede ejecutar en el puerto que está asignado a la instancia de contenedor en la definición de la tarea.
- El grupo de seguridad de la interfaz de red elástica permite el tráfico en el intervalo CIDR de Amazon Virtual Private Cloud (Amazon VPC). Para obtener más información, consulte Grupos de seguridad de destino.
- Las reglas del grupo de seguridad del equilibrador de carga de red permiten el tráfico saliente al grupo de seguridad del servicio Amazon ECS en el puerto de contenedor requerido.
- Las listas de control de acceso de la red (ACL de la red) de las subredes de la interfaz de red para su tarea permiten el tráfico entrante en el puerto de comprobación de estado.
- La ACL de la red permite el tráfico saliente en los puertos efímeros.
Confirmar que sus tareas responden correctamente a las comprobaciones manuales dentro de su conexión de Amazon VPC
Confirme que las tareas de la instancia de Amazon Elastic Compute Cloud (Amazon EC2) dentro de su VPC respondan correctamente a las comprobaciones manuales.
Nota: Puede crear un clúster para el tipo de inicio de Amazon EC2 o iniciar una nueva instancia de Amazon EC2. Si no desea iniciar una instancia de Amazon EC2, puede utilizar ECS Exec.
Para comprobar la respuesta de la tarea, utilice SSH para conectarse a una instancia de EC2 dentro de su conexión de Amazon VPC. A continuación, ejecute uno de los siguientes comandos para probar la configuración del grupo de destino.
Comprobaciones de estado de HTTP:
curl -Iv http://example-task-private-ip:example-port/healthcheck_path
Nota: Sustituya example-task-private-ip por la dirección IP de su tarea y example-port por su puerto. El resultado del comando muestra los códigos de estado correctos en el intervalo de 200 a 399 para las configuraciones de comprobación de estado HTTP en el grupo de destino.
Resultado de ejemplo:
HTTP/1.1 200 OK
Comprobaciones de estado de TCP que no utilizan SSL con los destinos:
nc -z -v -w10 example-task-private-ip example-port
Nota: Sustituya example-task-private-ip por la dirección IP de su tarea y example-port por su puerto.
Resultado de ejemplo:
nc -z -v -w10 10.x.x.x 80Connection to 10.x.x.x port 80 [tcp/http] succeeded!
Comprobaciones de estado de TCP que requieren SSL para las comprobaciones de estado del backend:
nc -z -v -w10 --ssl example-task-private-ip example-port
Nota: Sustituya example-task-private-ip por la dirección IP de su tarea y example-port por su puerto.
Resultado de ejemplo:
nc -z -v -w10 10.x.x.x 443Connection to 10.x.x.x port 443 [tcp/https] succeeded!
Comprobar el estado y la configuración de la aplicación en su instancia de contenedor de Amazon ECS
Haga lo siguiente:
- Compruebe que el puerto de ping y la ruta de la comprobación de estado de su grupo de destino se hayan configurado correctamente.
- Supervise las métricas de uso de CPU y memoria del servicio para detectar el alto consumo de recursos que hace que la aplicación no responda a las solicitudes de comprobación de estado.
Si su tarea necesita un periodo de gracia de comprobación de estado más largo, ejecute el siguiente comando update-service de la AWS CLI para aumentar healthCheckGracePeriodSeconds:
aws ecs update-service --cluster example-cluster --service example-service --region example-region --health-check-grace-period-seconds example-value --force-new-deployment
Nota: Sustituya example-cluster por el nombre de su clúster, example-service por el nombre de su servicio, example-region por su región de AWS y example-value por el periodo de gracia de su comprobación de estado en segundos.
Compruebe si los destinos de su grupo de destino no pasan las comprobaciones de estado porque tardan más en responder que el periodo de tiempo de espera predeterminado. Para resolver este problema, ejecute el siguiente comando modify-target-group para aumentar los segundos de tiempo de espera del grupo de destino:
aws elbv2 modify-target-group --target-group-arn Target-Group-ARN --health-check-timeout-seconds Timeout-Value
Nota: Sustituya Target-Group-ARN por el ARN de su grupo de destino y Timeout-Value por el valor de tiempo de espera de su grupo en segundos.
Compruebe los registros de la aplicación para ver si hay errores.
Asegúrese de que el código de respuesta que envía su aplicación en HealthCheckPath coincida con el código de respuesta de los parámetros de comprobación de estado de su grupo de destino. Si ha configurado el registro de acceso en su aplicación, utilice la palabra clave ELB-HealthChecker/2.0 para comprobar la respuesta registrada. Si utiliza los registros de AWS CloudWatch, utilice la Información de registros de CloudWatch y ejecute el siguiente comando:
fields @timestamp, @message| sort @timestamp desc | filter @message like /ELB-HealthChecker/
El resultado de la consulta muestra las solicitudes de comprobación de estado que envía el equilibrador de carga de red, el código de respuesta y los errores.
El destino se encuentra en una zona de disponibilidad que no está activada para el equilibrador de carga
Si registra destinos en una zona de disponibilidad, debe activar esa zona de disponibilidad para que los destinos registrados reciban tráfico.
Importante: No puede desactivar las zonas de disponibilidad de un equilibrador de carga de red después de crear el equilibrador de carga. Sin embargo, puede activar zonas de disponibilidad adicionales.
Para identificar las zonas de disponibilidad para las que está configurado el equilibrador de carga, ejecute el siguiente comando describe-load-balancers:
aws elbv2 describe-load-balancers --load-balancer-arn example-arn-load-balancer --region example-region --query "LoadBalancers[].AvailabilityZones[].ZoneName"
Nota: Sustituya example-arn-load-balancer por el ARN de su equilibrador de carga y example-region por su región.
Para identificar las zonas de disponibilidad para las que está configurada la tarea de Fargate, ejecute el siguiente comando describe-services:
aws ecs describe-services --cluster example-cluster-name --services example-service-name --region example-region --query "services[].networkConfiguration.awsvpcConfiguration.subnets"
Nota: Sustituya example-cluster-name por el nombre de su clúster, example-service-name por el nombre de su servicio y example-region por su región. El resultado del comando muestra los ID de las subredes de su servicio.
Para identificar las zonas de disponibilidad de las subredes de la tarea, ejecute el siguiente comando describe-subnets:
aws ec2 describe-subnets --subnet-ids example-subnet-ids --region example-region --query "Subnets[].AvailabilityZone"
Nota: Sustituya example-subnet-ids por su ID de subred y example-region por su región. El resultado del comando muestra las zonas de disponibilidad para las que está configurado el servicio.
Para cambiar la configuración de subred de un servicio de Amazon ECS, ejecute el siguiente comando update-service:
aws ecs update-service --cluster cluster-name --service service-name --network-configuration "awsvpcConfiguration={subnets=[subnet-xxxxx,subnet-yyyyy]}"
Nota: Sustituya cluster-name por el nombre de su clúster y service-name por el nombre de su servicio.
Dependencia del backend
Si la ruta de comprobación de estado de la aplicación se comunica con un servicio ascendente o descendente, como una base de datos, asegúrese de que los servicios estén disponibles. Los problemas con los servicios pueden provocar un error en la comprobación de estado.
Las tareas de Amazon ECS pueden estar en mal estado por varios motivos. Si la resolución anterior no resuelve el problema, consulte Solución de problemas con los equilibradores de carga de servicio en Amazon ECS.
Información relacionada
Comprobaciones de estado de los grupos de destino del equilibrador de carga de red
- Temas
- ServerlessContainers
- Idioma
- Español

Contenido relevante
- preguntada hace 3 meses
- preguntada hace 16 días
- preguntada hace 5 meses
- preguntada hace 7 meses
- preguntada hace 7 meses