Como posso resolver o erro “dockertimeouterror unable transition start timeout after wait 3m0s” no Amazon ECS para o Fargate?

4 minuto de leitura
0

Eu recebo o erro “dockertimeouterror unable transition start timeout after wait 3m0s” nas tarefas do Amazon Elastic Container Service (Amazon ECS) para o AWS Fargate.

Descrição breve

Este erro ocorre quando há um problema de configuração de rede com suas tarefas do Fargate. Para o Fargate, o valor padrão do tempo limite de início é de 3 minutos. Se, em 3 minutos, uma tarefa não passar do estado pendente para o estado em execução, essa tarefa falhará e será movida para o estado interrompido.

Se as suas tarefas do Fargate estiverem sendo executadas em uma sub-rede privada sem um gateway ou uma instância NAT configurada, você deverá definir os endpoints da Amazon Virtual Private Cloud (Amazon VPC) corretos. Isso envolve endpoints para:

  • Amazon Elastic Container Registry (Amazon ECR): é necessário para extrair a imagem do repositório do ECR.
  • Amazon Simple Storage Service (Amazon S3): é necessário porque o Amazon ECR usa o Amazon S3 para armazenar as camadas da imagem. Ao baixar imagens do Amazon ECR, seus contêineres devem acessar o Amazon ECR para obter o manifesto da imagem e o Amazon S3 para baixar as camadas reais da imagem.
  • AWS Secrets Manager e/ou AWS Systems Manager**:** são necessários se você estiver fazendo referência a segredos do Secrets Manager ou a parâmetros do Systems Manager Parameter Store em suas definições de tarefas para injetar dados confidenciais em seus contêineres. Você deve criar os endpoints da VPC da interface para o Secrets Manager ou o Systems Manager para que essas tarefas possam alcançar esses serviços. Você deve criar os endpoints somente a partir do serviço específico (Secrets Manager ou System Manager) no qual seus dados confidenciais estão hospedados.
  • Amazon CloudWatch: é necessário quando as tarefas do Fargate usam awslogs como driver de registro. Isso ocorre porque as tarefas que usam awslogs como driver de registro exportam seus logs para o CloudWatch. Se estiver usando awslogs e o endpoint da VPC do CloudWatch for criado, mas não configurado, suas tarefas não conseguirão alcançar o endpoint. Você receberá o seguinte erro: “DockerTimeoutError: Could not transition to started; timed out after waiting 3m0s”.

Resolução

Verifique se a definição da sua tarefa usa o driver de registro awslogs

  1. Abra o console do Amazon ECS.
  2. No painel de navegação, selecione Definições de tarefa.
  3. Escolha a definição da tarefa usada por sua tarefa ou serviço e escolha o nome da definição da tarefa.
  4. Na seção Definições de contêiner da definição da tarefa, escolha o ícone expansor de seu contêiner na coluna Nome do contêiner.
  5. Na subseção Configuração de log, verifique se Driver de log está definido como awslogs.

Importante: se as suas tarefas estiverem sendo executadas em uma sub-rede privada sem um gateway NAT ou uma instância NAT, você deverá usar endpoints da VPC.

Confirme se você tem um endpoint da VPC para suas tarefas do Fargate

  1. Abra o console da Amazon VPC.
  2. No painel de navegação, escolha Endpoints.
  3. Verifique se com.amazonaws.region.logs existe no campo Nome do serviço.

Se o endpoint não existir, crie um novo endpoint.

Caso o endpoint exista, confirme se o endpoint é a mesmo VPC em que as tarefas do Fargate estão em execução. Para fazer isso no console da VPC, escolha o endpoint e procure a ID da VPC na guia Detalhes do endpoint.

Se o endpoint não for usado pela mesma VPC que as tarefas do Fargate, crie um novo endpoint.

Se o endpoint for usado pela mesma VPC que as tarefas do Fargate, verifique o seguinte no grupo de segurança associado à VPC:

  • A regra de entrada do grupo de segurança deve permitir o tráfego na porta 443 a partir das tarefas do Fargate.
  • O grupo de segurança associado à tarefa do Fargate deve ter uma regra de saída para enviar tráfego na porta 443 para o endpoint da VPC.

Agora, suas tarefas do Fargate podem alcançar os endpoints do CloudWatch que você criou.


Informações relacionadas

Endpoints da VPC da interface do Amazon ECR (AWS PrivateLink)

AWS OFICIAL
AWS OFICIALAtualizada há 3 anos