Lógica de controle de utilização do serviço do Amazon ECS - Amazon Elastic Container Service

Lógica de controle de utilização do serviço do Amazon ECS

O agendador de serviços do Amazon ECS inclui uma lógica protetiva que controla a utilização das inicializações de tarefas quando elas apresentam falhas repetidas na inicialização. Isso ajuda a evitar o consumo desnecessário de recursos e reduz os custos.

Quando as tarefas em um serviço não conseguem passar do estado PENDING para o estado RUNNING e, em vez disso, passam diretamente para STOPPED, o agendador:

  • Aumenta incrementalmente o tempo entre as tentativas de reinicialização

  • Continua aumentando os atrasos até um máximo de 27 minutos entre as tentativas

  • Gera uma mensagem de evento de serviço para notificar você sobre o problema

nota

O período máximo de atraso de 27 minutos poderá mudar em futuras atualizações.

Quando controle de utilização é habilitado, você recebe esta mensagem de evento de serviço:

(service service-name) is unable to consistently start tasks successfully.

Características importantes da lógica de controle de utilização:

  • Os serviços continuam tentando novamente indefinidamente

  • A única modificação é o aumento do tempo entre as reinicializações

  • Não há parâmetros configuráveis pelo usuário

Resolução de problemas de controle de utilização

Para resolver o controle de utilização, você pode:

  • Atualizar o serviço para usar uma nova definição de tarefa, o que retornará o serviço imediatamente à operação normal e sem controle de utilização. Para obter mais informações, consulte Atualizar um serviço do Amazon ECS.

  • Resolva a causa subjacente das falhas da tarefa.

As causas comuns de falhas de tarefas que acionam o controle de utilização incluem:

Importante

Os seguintes cenários NÃO acionam a lógica de controle de utilização:

  • Tarefas que são interrompidas após atingirem o estado RUNNING

  • Tarefas interrompidas devido a falhas nas verificações de integridade do Elastic Load Balancing

  • Tarefas em que o comando do contêiner sai com um código diferente de zero após atingir o estado RUNNING