Aparece el error «dockertimeouterror unable transition start timeout after wait 3m0s» en mis tareas de Amazon Elastic Container Service (Amazon ECS) para AWS Fargate.
Breve descripción
Este error se produce cuando hay un problema de configuración de red con sus tareas de Fargate. Para Fargate, el valor predeterminado del tiempo de espera de inicio es de 3 minutos. Si una tarea no pasa del estado Pendiente al estado En ejecución en 3 minutos, se produce un error y pasa al estado Detenido.
Para las tareas de Fargate que se ejecutan en una subred privada sin ninguna instancia de NAT o puerta de enlace configurada, configure los puntos de enlace correctos de Amazon Virtual Private Cloud (Amazon VPC). Debe tener los siguientes puntos de enlace:
- Amazon Elastic Container Registry (Amazon ECR): este punto de enlace es obligatorio para extraer la imagen del repositorio de ECR.
- Amazon Simple Storage Service (Amazon S3): este punto de enlace es obligatorio porque Amazon ECR usa Amazon S3 para almacenar las capas de imágenes. Para descargar las imágenes de Amazon ECR, los contenedores deben acceder a Amazon ECR para obtener el manifiesto de la imagen y a Amazon S3 para descargar las capas de imágenes.
- AWS Secrets Manager o AWS Systems Manager: estos puntos de enlace son necesarios si hace referencia a los secretos de Secrets Manager o los parámetros del almacén de parámetros de Systems Manager en las definiciones de la tarea. Debe crear los puntos de enlace de VPC de la interfaz para Secrets Manager o Systems Manager para que esas tareas puedan llegar a los servicios. Debe crear los puntos de enlace únicamente desde el servicio específico (Secrets Manager o System Manager) en el que se alojan sus datos confidenciales.
- Amazon CloudWatch: este punto de enlace es obligatorio cuando las tareas de Fargate utilizan awslogs como controlador de registro. Las tareas que utilizan awslogs como controlador de registro exportan sus registros a CloudWatch. Si utiliza awslogs y el punto de enlace de VPC para CloudWatch se ha creado pero no configurado, sus tareas no podrán llegar al punto de enlace. Se muestra el siguiente error: «DockerTimeoutError: Could not transition to started; timed out after waiting 3m0s».
Resolución
Comprobación de que la definición de tarea utiliza el controlador de registro awslogs
Siga estos pasos:
- Abra la consola de Amazon ECS.
- En el panel de navegación, seleccione Definiciones de tareas.
- Elija la definición de tarea que utiliza la tarea o el servicio y, a continuación, elija el nombre de la definición de tarea.
- En la sección Definiciones de contenedores de la definición de la tarea, elija el icono de expansión del contenedor en la columna Nombre del contenedor.
- En la subsección Configuración de registros, compruebe si Controlador de registros está configurado en awslogs.
Importante: Debe usar puntos de enlace de VPC si sus tareas se ejecutan en una subred privada sin puerta de enlace de NAT ni instancia de NAT.
Confirmación de que dispone de un punto de enlace de VPC para sus tareas de Fargate
Siga estos pasos:
- Abra la consola de Amazon VPC.
- En el panel de navegación, seleccione Puntos de conexión.
- Compruebe si com.amazonaws.region.logs existe en el campo Nombre del servicio.
Si el punto de enlace no existe, cree un punto de enlace nuevo.
Si el punto de enlace existe, confirme si es la misma VPC en la que se ejecutan las tareas de Fargate. Para hacerlo en la consola de VPC, seleccione el punto de enlace y, a continuación, busque el ID de la VPC en la pestaña Detalles del punto de enlace.
Si el punto de enlace no se utiliza por parte de la misma VPC que las tareas de Fargate, cree un punto de enlace nuevo.
Si el punto de enlace se utiliza por parte de la misma VPC que las tareas de Fargate, compruebe lo siguiente en el grupo de seguridad asociado a la VPC:
- La regla de entrada del grupo de seguridad debe permitir el tráfico en el puerto 443 desde las tareas de Fargate.
- El grupo de seguridad asociado a la tarea de Fargate debe tener una regla de salida para enviar el tráfico del puerto 443 al punto de enlace de VPC.
Información relacionada
Puntos de conexión de VPC de la interfaz de Amazon ECR (AWS PrivateLink)