Solución de problemas de servicios de Amazon ECS Express Mode
Esta sección le es útil para identificar y resolver los problemas comunes al implementar y administrar los servicios de Express Mode.
Problemas de implementación
El servicio está bloqueado en estado ACTIVO o VACIANDO
Síntomas: DescribeServiceRevisions muestra que los recursos se siguen aprovisionando o desaprovisionando. DescribeServices muestra que la implementación no está estabilizada
Posibles causas y soluciones:
-
Permisos de IAM insuficientes: compruebe que el rol de ejecución de tareas y el rol de infraestructura tengan los permisos necesarios, tal como se indica en sus respectivas políticas administradas.
# Check if the role has the required managed policy aws iam list-attached-role-policies --role-name ecsTaskExecutionRole -
Errores en la extracción de imágenes: asegúrese de que la imagen del contenedor existe y de que se puede acceder a esta.
# Test image pull manually docker pull 123456789012.dkr.ecr.us-west-2.amazonaws.com/my-app:latest -
Problemas de conectividad de red: compruebe que las subredes tengan acceso a Internet o puntos de conexión de Amazon VPC para los servicios de AWS.
-
Límites de recursos: compruebe que su cuenta tiene capacidad suficiente de Fargate y que no ha alcanzado las cuotas de servicio.
Pasos de diagnóstico:
Utilice DescribeExpressGatewayService para obtener la revisión del servicio actual, seguida de DescribeServiceRevisions de ServiceRevision para ver el estado del aprovisionamiento o desaprovisionamiento
Compruebe los eventos de servicio en la consola de Amazon ECS para consultar los mensajes de error detallados.
Compruebe que el puerto del contenedor esté configurado correctamente.
Consulte las cuotas de servicio de AWS para Amazon ECS y Fargate.
Errores de inicio de tareas
Síntomas: las tareas no se inician ni se detienen de inmediato después de iniciarlas.
Causas habituales:
-
Errores de aplicación: la aplicación contenedora se cierra debido a errores de configuración o tiempo de ejecución.
-
Errores en las comprobaciones de estado: la aplicación no responde a las comprobaciones de estado en el puerto o la ruta esperados.
-
Restricciones de recursos: asignación insuficiente de CPU o memoria para la aplicación.
-
Faltan variables de entorno o secretos: la aplicación no dispone de la configuración necesaria.
Pasos de resolución:
-
Compruebe los registros de las aplicaciones en Registros de CloudWatch y obtenga el nombre del grupo de registros en DescribeServiceRevisions:
aws logs describe-log-streams --log-group-name /ecs/express-service-my-app aws logs get-log-events --log-group-name /ecs/express-service-my-app --log-stream-name stream-name Compruebe que la ruta de comprobación de estado devuelva el estado HTTP 200.
Pruebe la imagen del contenedor de manera local para asegurarse de que se inicia correctamente.
Revise y ajuste las asignaciones de CPU y memoria si es necesario.
Problemas de conectividad
No se puede acceder a la aplicación mediante el equilibrador de carga
Síntomas: la URL de la aplicación devuelve tiempos de espera o errores de conexión.
Pasos para la solución de problemas:
-
Valide que los recursos hayan terminado de aprovisionarse
-
Compruebe que las tareas estén en marcha y estén en buen estado:
aws ecs describe-services --cluster my-cluster --services my-express-service -
Compruebe el estado del grupo de destinos del equilibrador de carga de aplicaciones:
aws elbv2 describe-target-health --target-group-arn arn:aws:elasticloadbalancing:region:account:targetgroup/name/id -
Asegúrese de que la aplicación esté escuchando en el puerto correcto dentro del contenedor.
Problemas de rendimiento
Tiempos de respuesta lentos
Síntomas: las respuestas de las aplicaciones son más lentas de lo esperado.
Enfoque diagnóstico:
-
Supervisión del uso de CPU y memoria:
# Check CloudWatch metrics for the service aws cloudwatch get-metric-statistics \ --namespace AWS/ECS \ --metric-name CPUUtilization \ --dimensions Name=ServiceName,Value=my-express-service Name=ClusterName,Value=my-cluster \ --start-time 2024-01-01T00:00:00Z \ --end-time 2024-01-01T01:00:00Z \ --period 300 \ --statistics Average Revise los registros de la aplicación para ver si hay errores o advertencias de rendimiento.
Compruebe si el escalado automático responde de manera adecuada a la carga.
Analiza las métricas del equilibrador de carga para la distribución de las solicitudes.
Estrategias de optimización:
Aumente la asignación de CPU o memoria si los recursos son limitados.
Ajuste los umbrales de escalado automático para escalarlos antes.
Optimice el código de la aplicación y las consultas de bases de datos.
El escalado automático no funciona según lo esperado
Síntomas: el servicio no se escala verticalmente cuando hay mucha carga ni se reduce verticalmente cuando hay poca carga.
Pasos para la solución de problemas:
-
Compruebe las políticas de escalado automático y su configuración:
aws application-autoscaling describe-scaling-policies \ --service-namespace ecs \ --resource-id service/my-cluster/my-express-service Revise las métricas de CloudWatch para asegurarse de que se cumplen los factores desencadenantes de escalado.
Compruebe que el servicio tenga permiso para escalar (compruebe los roles de IAM).
Compruebe las actividades de escalado y sus resultados.
Herramientas de supervisión y depuración
Uso de Información de contenedores de CloudWatch
Habilite Información de contenedores para una supervisión integral:
aws ecs put-account-setting --name containerInsights --value enabled
Información de contenedores ofrece lo siguiente:
Métricas de CPU, memoria, disco y red
Panel supervisión de rendimiento
Correlación y análisis de registros
Detección de anomalías