¿Cómo puedo solucionar el error «dockertimeouterror unable transition start timeout after wait 3m0s» en Amazon ECS para Fargate?

4 minutos de lectura
0

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.

Si sus tareas de Fargate se ejecutan en una subred privada sin ninguna instancia de NAT o puerta de enlace configurada, debe configurar los puntos de conexión de Amazon Virtual Private Cloud (Amazon VPC) adecuados. Esto implica puntos de conexión para lo siguiente:

  • Amazon Elastic Container Registry (Amazon ECR): es obligatorio para extraer la imagen del repositorio de ECR.
  • Amazon Simple Storage Service (Amazon S3): es obligatorio porque Amazon ECR usa Amazon S3 para almacenar las capas de imágenes. Cuando sus contenedores descargan imágenes de Amazon ECR, deben acceder a Amazon ECR para obtener el manifiesto de la imagen y a Amazon S3 para descargar las capas de imágenes reales.
  • AWS Secrets Manager o AWS Systems Manager**:** son obligatorios si hace referencia a los secretos de Secrets Manager o a los parámetros del Almacén de parámetros de Systems Manager en sus definiciones de tareas para introducir datos confidenciales en sus contenedores. Debe crear los puntos de conexión de VPC de la interfaz para Secrets Manager o Systems Manager para que esas tareas puedan llegar a esos servicios. Debe crear los puntos de conexión únicamente desde el servicio específico (Secrets Manager o System Manager) en el que se alojan sus datos confidenciales.
  • Amazon CloudWatch: es obligatorio cuando las tareas de Fargate utilizan awslogs como controlador de registro. Esto se debe a que las tareas que utilizan awslogs como controlador de registro exportan sus registros a CloudWatch. Si utiliza awslogs y el punto de conexión de VPC para CloudWatch se ha creado pero no configurado, sus tareas no podrán llegar al punto de conexión. Recibe 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

  1. Abra la consola de Amazon ECS.
  2. En el panel de navegación, seleccione Definiciones de tareas.
  3. 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.
  4. 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.
  5. En la subsección Configuración de registros, compruebe si Controlador de registros está configurado en awslogs.

Importante: Debe usar puntos de conexión 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 conexión de VPC para sus tareas de Fargate

  1. Abra la consola de Amazon VPC.
  2. En el panel de navegación, seleccione Puntos de conexión.
  3. Compruebe si com.amazonaws.region.logs existe en el campo Nombre del servicio.

Si el punto de conexión no existe, cree un punto de conexión nuevo.

Si el punto de conexión 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 conexión y, a continuación, busque el ID de la VPC en la pestaña Detalles del punto de conexión.

Si el punto de conexión no se utiliza por parte de la misma VPC que las tareas de Fargate, cree un punto de conexión nuevo.

Si el punto de conexión se utiliza por 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 conexión de VPC.

Ahora, sus tareas de Fargate pueden llegar a los puntos de conexión de CloudWatch que ha creado.


Información relacionada

Puntos de conexión de VPC de la interfaz de Amazon ECR (AWS PrivateLink)

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace 3 años