AWS announces preview of AWS Interconnect - multicloud
AWS announces AWS Interconnect – multicloud (preview), providing simple, resilient, high-speed private connections to other cloud service providers. AWS Interconnect - multicloud is easy to configure and provides high-speed, resilient connectivity with dedicated bandwidth, enabling customers to interconnect AWS networking services such as AWS Transit Gateway, AWS Cloud WAN, and Amazon VPC to other cloud service providers with ease.
¿Cómo soluciono los errores de comprobación de estado para las tareas de Amazon ECS en Fargate?
Tengo errores en las comprobaciones de estado de mis tareas de Amazon Elastic Container Service (Amazon ECS) en AWS Fargate.
Descripción corta
Los errores en las comprobaciones de estado de las tareas de Amazon ECS en Fargate pueden producirse por los siguientes motivos:
- Errores en la comprobación de estado del contenedor
- Un destino que se encuentra en una zona de disponibilidad que está desactivada para el equilibrador de carga
- Restricciones de recursos para la CPU o la memoria
- Configuración de comprobación de estado mal configurada
- Problemas de conectividad de red
Si una tarea no supera la comprobación de estado del equilibrador de carga, se mostrará uno de los siguientes errores en el mensaje de evento de servicio de Amazon ECS:
- «(service AWS-service) (port 8080) is unhealthy in (target-group arn:aws:elasticloadbalancing:us-east-1:111111111111:targetgroup/aws-targetgroup/123456789) due to (reason Health checks failed with these codes: [5xx]/[4xx]/[3xx]) or (Request timed out)».
- «(service AWS-Service) (task eaa3ec9e9f104070b461490987654321) failed container health checks».
- «(service AWS-Service) (instance 10.122.144.145) (port 8080) is unhealthy in (target-group arn:aws:elasticloadbalancing:ap-south-1:120987654321:targetgroup/AWS-Service-TG/159c835dc9d8cf84) due to (reason Target is in an Availability Zone that is not enabled for the load balancer)».
En la consola de tareas de Amazon ECS, es posible que también recibas el error «Task failed ELB health checks in (target-group arn:aws:elasticloadbalancing:ap-south-1:111111111111:targetgroup/aws-targetgroup/123456789)».
Resolución
Nota: Si se muestran errores al ejecutar comandos de la Interfaz de la línea de comandos de AWS (AWS CLI), consulta Solución de problemas de AWS CLI. Además, asegúrate de utilizar la versión más reciente de la AWS CLI.
Solución de un error HTTP [5xx]/[4xx]/[3xx] o (Se agotó el tiempo de espera de la solicitud)
Comprobar la configuración de la comprobación de estado del equilibrador de carga
Recibes estos errores cuando el equilibrador de carga de Elastic Load Balancing (ELB) espera un código HTTP 200, pero en su lugar recibes un código de error 3xx, 4xx o 5xx. Como resultado, el equilibrador de carga detiene la tarea y la marca como en mal estado. Para resolver este problema, configura la ruta de comprobación de estado correcta o modifica la configuración de la comprobación de estado.
Para obtener información sobre los errores HTTP en el equilibrador de carga de aplicación, consulta El equilibrador de carga genera un error HTTP.
Si la tarea de Amazon ECS no responde a la comprobación de estado del equilibrador de carga dentro del periodo de tiempo de espera, recibirás el error de tiempo de espera agotado.
Comprobar que el equilibrador de carga pueda realizar comprobaciones de estado
Confirma las siguientes configuraciones:
- El grupo de seguridad asociado a tu equilibrador de carga permite el tráfico saliente a las interfaces de red elásticas de tareas de Amazon ECS en el puerto del contenedor registrado.
- El grupo de seguridad de Amazon ECS permite todo el tráfico entrante en el puerto del contenedor registrado desde el grupo de seguridad asociado a tu equilibrador de carga.
Configuración de los parámetros de tiempo de espera
Si las tareas de Amazon ECS tardan en responder a las comprobaciones de estado, se recomienda aumentar el valor del parámetro HealthCheckGracePeriod.
Si la solicitud suele tardar mucho en responder a las comprobaciones de estado, también puedes aumentar el valor del tiempo de espera de las comprobaciones de estado del grupo de destino. Este parámetro define cuánto tiempo tienen las tareas de Amazon ECS para responder a las comprobaciones de estado.
Comprobar el uso de los recursos
Si tu aplicación requiere conectividad de backend con una base de datos, comprueba si el uso de recursos es elevado a nivel de base de datos. El uso excesivo de recursos puede provocar problemas durante el proceso de inicialización de la aplicación y provocar errores durante la comprobación del estado del equilibrador de carga.
Solucionar problemas de respuesta lenta
Utiliza ECS Exec para comprobar cómo responde la aplicación en la ruta y el puerto de comprobación de estado. Para comprobar que el backend responde correctamente sin demora, ejecuta el siguiente comando:
curl -iv localhost:container-port/path
Nota: Sustituye container-port por el puerto que usa tu contenedor y path por la ruta de comprobación de estado.
Comprobar la configuración de la comprobación de estado
En primer lugar, asegúrate de que el archivo esté en la ruta que has configurado en la comprobación de estado del grupo de destino.
Si el archivo está en la ubicación correcta, pero las comprobaciones de estado siguen fallando, sigue estos pasos:
- Abre la consola de Amazon Elastic Compute Cloud (Amazon EC2).
- En el panel de navegación, en Equilibrio de carga, selecciona Grupos de destino.
- Selecciona el grupo de destino.
- Selecciona la pestaña Comprobaciones de estado y, a continuación, elige Editar.
- En la página Editar grupo de destino, en Código correcto, introduce el código HTTP del mensaje de error. Por ejemplo, introduce 404.
- Selecciona Guardar.
Importante: Asegúrate de que el protocolo del grupo de destino esté establecido en el protocolo HTTP que admite la aplicación.
Comprobar las restricciones de recursos en Amazon ECS
Consulta las métricas del servicio Amazon ECS para ver el uso de la CPU y la memoria. Si los valores de CpuUtilization o MemoryUtilization son altos de forma constante, se producen problemas de rendimiento que pueden provocar errores en las comprobaciones de estado.
Para reducir el uso de recursos, toma las siguientes medidas:
- Asigna más recursos de CPU y memoria en la definición de la tarea.
- Para escalar horizontalmente la configuración, aumenta la cantidad de tareas en ejecución para distribuir la carga de trabajo de manera uniforme entre varias instancias y ofrecer un mejor rendimiento durante los picos repentinos.
- Evalúa periódicamente el rendimiento del sistema en diversas condiciones de carga para identificar posibles cuellos de botella y asignar mejor los recursos.
- Supervisa el uso de la red, los patrones de conexión y los tiempos de respuesta de la aplicación para identificar posibles cuellos de botella y optimizar los patrones de uso ineficientes de la red.
Se recomienda supervisar con frecuencia el comportamiento del sistema y ajustar la configuración según sea necesario.
Solución de errores en la comprobación de estado del contenedor fallida
Si las instancias de contenedor de ECS de la tarea utilizan comprobaciones de estado que el servicio no puede superar, recibirás el error de comprobación de estado del contenedor fallida. Para solucionar este problema, consulta ¿Cómo soluciono los errores de comprobación del estado de los contenedores para las tareas de Amazon ECS?
Solución de problemas de la zona de disponibilidad con las tareas de Amazon ECS de destino
Si registras destinos en una zona de disponibilidad que no has activado, los destinos registrados no reciben tráfico. Para obtener más información, consulta Zonas de disponibilidad y nodos de equilibrador de carga.
Por ejemplo, las subredes de Amazon ECS pertenecen a las zonas de disponibilidad us-east-1x y us-east-1y. Si el equilibrador de carga tiene activadas las zonas de disponibilidad us-east-1p y us-east-1q, recibirás un error.
Para actualizar Amazon ECS para usar las subredes de la zona de disponibilidad del equilibrador de carga, ejecuta el comando update-service de la AWS CLI:
aws ecs update-service --cluster cluster-name --service service-name --region region-code --network-configuration '{"awsvpcConfiguration": {"subnets": ["subnet-1","subnet-2"],"securityGroups": ["sg-abcdxyz"]}}'
Nota: Sustituye cluster-name por el nombre del clúster, service-name por el nombre del servicio y region-code por la región de AWS. Además, sustituye subnet-1 y subnet-2 por las subredes y sg-abcdxyz por el grupo de seguridad.
Información relacionada
Escalamiento automático del servicio Amazon ECS
- Temas
- Containers
- Etiquetas
- Amazon Elastic Container Service
- Idioma
- Español
Vídeos relacionados


Contenido relevante
- preguntada hace 5 meses
- preguntada hace 8 meses
- preguntada hace 2 meses