Por que meu serviço Amazon ECS não está estável?
Meu serviço Amazon Elastic Container Service (Amazon ECS) se reinicia automaticamente periodicamente. Quero que meu serviço Amazon ECS seja estável ou constante.
Breve descrição
Seu serviço Amazon ECS pode deixar de ser estável por um dos seguintes motivos:
- Falha nas verificações de integridade do contêiner.
- Falha nas verificações de integridade do Elastic Load Balancing (ELB).
- Uma tarefa do Amazon ECS sai com códigos de saída diferentes de zero.
- Uma instância de contêiner não atende aos requisitos de tarefas do Amazon ECS.
- Uma instância de contêiner é encerrada inesperadamente.
- As tarefas do Amazon ECS no serviço falham ao serem iniciadas.
Resolução
Use os eventos do Amazon ECS no console do Amazon ECS para verificar por que o serviço não está estável.
Falha nas verificações de integridade do contêiner
Antes de implantar sua aplicação no Amazon ECS, use as verificações de integridade para garantir que seu contêiner funcione conforme o esperado. Se seu serviço Amazon ECS falhar repentinamente nas verificações de integridade do contêiner, verifique os logs da aplicação. Se sua aplicação usa o driver awslogs, verifique os logs no Amazon CloudWatch.
Observação: Os parâmetros de verificação de integridade especificados em uma definição de contêiner substituem as verificações de integridade do Docker que existem na imagem do contêiner.
Falha nas verificações de integridade ELB
Os balanceadores de carga executam periodicamente verificações de integridade do contêiner em cada servidor para determinar para quais servidores é seguro direcionar o tráfego. Quando um serviço do Amazon ECS falha devido às verificações de integridade ELB, pode haver um problema de comunicação entre o balanceador de carga e o serviço.
Para verificar se você configurou corretamente os balanceadores de carga e o serviço Amazon ECS, execute as seguintes ações:
-
Confirme se o grupo de segurança do contêiner permite o tráfego do balanceador de carga.
-
Execute o comando a seguir no contêiner para garantir que a aplicação escute a porta correta:
netstat -tulpn | grep LISTEN -
Verifique se o caminho da verificação de integridade está correto.
-
Verifique se há erros nos logs da aplicação.
-
Execute um comando curl para o caminho de verificação de integridade no Amazon Elastic Compute Cloud (Amazon EC2). Ou ative o ECS exec no AWS Fargate e execute um comando curl para a verificação de integridade dentro do contêiner para confirmar o código de resposta.
-
Monitore as métricas de CPU e memória do serviço, pois a alta utilização da CPU pode fazer com que a aplicação não responda e as verificações de integridade do ELB falhem.
-
Defina o período mínimo de carência da verificação de integridade para ser de 1,5 a 2,0 vezes maior do que o tempo necessário para a aplicação atingir o estado ATIVO.
Uma tarefa do Amazon ECS sai com um código de saída diferente de zero
Se houver um problema em um contêiner, as tarefas do Amazon ECS dentro do serviço sairão com um código de saída diferente de zero. Todas as tarefas devem ter pelo menos um contêiner essencial. Se o contêiner essencial sair por qualquer motivo, toda a tarefa falhará e o serviço Amazon ECS ficará instável.
Os códigos de saída a seguir são os motivos pelos quais sua tarefa do Amazon ECS pode falhar:
- Você recebe o código de saída 1 quando há um erro na aplicação. Para obter mais informações sobre o erro, revise os logs da aplicação.
- Você recebe o código de saída 137 quando a tarefa foi forçada a sair (SIGKILL) para o contêiner ou quando há um erro de falta de memória (OOM). Para verificar se você está enfrentando um problema de OOM, revise suas métricas do CloudWatch.
- Você obtém o código de saída 139 quando há uma falha de segmentação. Isso geralmente acontece quando a aplicação tenta acessar uma memória que não está disponível ou quando há uma variável de ambiente ou não definida que não é válida.
- Você obtém o código de saída 255 quando o comando ENTRYPOINT CMD em seu contêiner falha devido a um erro. Para confirmar que essa é a causa, revise suas métricas do CloudWatch.
Observação: é possível usar a API DescribeTasks para ver os detalhes de uma tarefa interrompida. No entanto, os detalhes da tarefa interrompida aparecem nos resultados por apenas um hora.
Uma instância de contêiner não atende aos requisitos de tarefas do Amazon ECS
Para obter mais informações sobre como alterar os requisitos de contêiner, consulte Como resolvo o erro “no container instance met all of its requirements” no Amazon ECS?
Uma instância de contêiner é encerrada inesperadamente
Se você usar um provedor de capacidade em seu cluster do Amazon ECS sem encerramento gerenciado, o provedor de capacidade poderá encerrar instâncias que tenham tarefas em execução. Isso acontece quando há uma ação de redução da escala horizontalmente e o serviço AWS ECS se torna instável. Ative a proteção gerenciada de encerramento para que o provedor de capacidade não encerre instâncias de contêiner que tenham tarefas em execução.
Para ativar a proteção gerenciada de encerramento, você deve ativar a proteção contra redução de instâncias para o grupo do Auto Scaling.
Para ativar a proteção contra redução da escala horizontalmente, conclua as seguintes etapas:
- Abra o console do Amazon EC2.
- No painel de navegação, escolha Grupos do Auto Scaling e selecione seu grupo do Auto Scaling.
- Na guia Detalhes, em Configurações avançadas, escolha Editar.
- Em Proteção contra redução de instâncias, selecione Ativar proteção contra redução de escala de instância.
- Escolha Atualizar.
Para ativar a proteção contra terminação gerenciada, conclua as etapas a seguir:
- Abra o console do Amazon ECS.
- No painel de navegação, escolha Clusters.
- Na página Clusters, selecione seu cluster.
- Na página Cluster : nome, escolha Infraestrutura e, em seguida, escolha Atualizar.
- Na página Criar provedores de capacidade, no grupo do Auto Scaling, em Políticas de escalabilidade, configure as seguintes opções:
Selecione Ativar escalabilidade gerenciada.
Selecione Ativar a proteção de escalabilidade. - Escolha Atualizar.
Observação: certifique-se de que outras ferramentas que você usa não removam a tag AmazonECSManaged do grupo do Auto Scaling. Quando uma ferramenta remove a tag, o Amazon ECS não consegue gerenciar a escalabilidade.
Falha ao iniciar as tarefas do Amazon ECS dentro do serviço
Quando você cria ou atualiza um serviço, o serviço pode não ser estável porque a tarefa do Amazon ECS não consegue extrair a imagem.
Para resolver esse problema, consulte os seguintes artigos do AWS Knowledge Service:
- Como resolvo um “ResourceInitializationError” quando tento extrair segredos ou recuperar a autenticação do Amazon ECR para tarefas do ECS?
- Como resolvo o erro “cannotpullcontainererror” para minhas tarefas do Amazon ECS no Fargate?
Informações relacionadas
Como solucionar problemas na verificação de integridade de contêiner em tarefas do Amazon ECS?
Por que minha tarefa do Amazon ECS foi interrompida?
- Tópicos
- Containers
- Idioma
- Português

Conteúdo relevante
AWS OFICIALAtualizada há 2 anos