¿Cómo soluciono los problemas de las tareas de Amazon ECS que se detienen o no se inician cuando mi contenedor se cierra?
Quiero solucionar un error en una tarea de Amazon Elastic Container Service (Amazon ECS) en un clúster de ECS.
Descripción breve
Tus contenedores pueden cerrarse debido a problemas con las imágenes o con las aplicaciones, restricciones de recursos u otros problemas.
En el caso de un error de tareas provocado por problemas de imágenes, consulta How do I resolve the "Image does not exist" error when my tasks fail to start in my Amazon ECS cluster? (¿Cómo soluciono el error “Image does not exist” cuando mis tareas no se inician en mi clúster de Amazon ECS?).
En el caso de las tareas de AWS Fargate que se detienen inesperadamente, consulta Mensajes de error de las tareas detenidas de Amazon ECS.
Para analizar otros problemas que hacen que una tarea de ECS no se inicie, puedes usar el runbook AWSSupport-TroubleshootECSTaskFailedToStart de Automatización de AWS Systems Manager.
También puedes solucionar manualmente los problemas de tu clúster 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), consulta Solución de problemas de la AWS CLI. Además, asegúrate de utilizar la versión más reciente de la AWS CLI.
Ejecución del runbook para solucionar problemas del clúster
Antes de iniciar el runbook AWSSupport-TroubleshootECSTaskFailedToStart, asegúrate de que el usuario o rol de IAM tenga los permisos necesarios. Para obtener más información, consulta la sección Required IAM permissions (Permisos de IAM necesarios) de AWSSupport-TroubleshootECSTaskFailedToStart.
Para iniciar el runbook, sigue estos pasos:
- Abre el documento AWSSupport-TroubleshootECSTaskFailedToStart en la consola de AWS Systems Manager.
- Selecciona Ejecutar automatización.
- Introduce los siguientes valores para los parámetros de entrada:
(Opcional) AutomationAssumeRole: El ARN del rol de IAM que permite a Automatización realizar acciones por ti. Si no especificas un rol, la automatización usa los permisos del usuario que inicia el runbook.
ClusterName: El nombre del clúster de ECS en el que no se pudo iniciar la tarea.
(Opcional) CloudwatchRetentionPeriod: El período de retención, en días, para almacenar los registros de funciones de AWS Lambda en Registros de Amazon CloudWatch.
Nota: Define este valor cuando el análisis determine que debes probar la conectividad de la red. El valor predeterminado es de 30 días. Otros valores válidos son 1, 3, 5, 7, 14, 60 y 90.
TaskId: El ID de la tarea con el error más reciente. - Selecciona Ejecutar.
Nota: Para obtener más información sobre los pasos del runbook, consulta la sección Required IAM permissions (Permisos de IAM necesarios) de AWSSupport-TroubleshootECSTaskFailedToStart. - Revisa los resultados detallados en la sección Resultados. El resultado incluye la siguiente información:
TaskFailureReason: Un análisis del motivo del error final de la tarea.
ExecutionLogs: Los registros de salida de cada paso realizado por el runbook.
ENI_Deletion_Message.Status: El estado de la eliminación de la interfaz de red elástica de la nube virtual privada (VPC) de Lambda cuando el runbook crea una función de Lambda para probar la conectividad de la red.
Nota: Si ENI_Deletion_Message muestra que la interfaz de red no se ha eliminado, elimínala manualmente.
Solución manual de los problemas de tu clúster de ECS
Comprueba la información de diagnóstico en el registro de eventos de servicio. Además, utiliza la consola de Amazon ECS o la AWS CLI para comprobar si hay errores en las tareas detenidas.
Para solucionar los problemas de restricción de memoria, consulta ¿Cómo puedo asignar memoria a las tareas en Amazon ECS?
Si ya has configurado un controlador de registro, consulta los registros de la aplicación para ver si hay problemas con la aplicación. Por ejemplo, si has configurado el controlador de registro awslogs en la definición de la tarea, consulta los registros del contenedor awslogs en Amazon CloudWatch. O utiliza las opciones de configuración de registros de la definición de la tarea para enviar los registros a un controlador de registro compatible para el contenedor.
Tareas de ECS distintas de Fargate
Si utilizas el controlador de registro de archivos JSON predeterminado con el tipo de lanzamiento de Amazon Elastic Compute Cloud (Amazon EC2), ejecuta el siguiente comando docker logs:
docker logs dc7240fe892a
Nota: Sustituye dc7240fe892a por el ID de tu contenedor.
El comando anterior comprueba los registros de Docker del contenedor en tu instancia de contenedor de ECS. Para obtener más información sobre el controlador de registro de JSON, consulta JSON File logging driver (Controlador de registro de archivos JSON) en el sitio web de Docker.
Tareas de Fargate
El controlador de registro awslogs pasa los registros de Docker a Registros de CloudWatch. Los registros muestran las secuencias STDOUT y STDERR I/O de las salidas de los comandos.
Información relacionada
Flujos de trabajo de automatización de AWS Support (SAW)
Configuración de Automatización
Ejecución de una operación automatizada con la tecnología de automatización de Systems Manager
Contenido relevante
- OFICIAL DE AWSActualizada hace 3 años
- OFICIAL DE AWSActualizada hace 7 meses
- OFICIAL DE AWSActualizada hace 6 meses