Minhas instâncias de contêiner do Amazon Elastic Container Service (Amazon ECS) que são executadas no Amazon Elastic Cloud Compute (Amazon EC2) estão sendo encerradas inesperadamente.
Resolução
Para identificar a causa do encerramento da instância, revise seus eventos do AWS CloudTrail para ver a chamada de API TerminateInstances. Nos detalhes do evento, observe o valor de userAgent para o usuário ou perfil do AWS Identity and Access Management (AWS IAM) que invocou a API. Observe também os valores de SourceIPAddress, eventTime, errorCode e ErrorMessage.
Com base na causa dos problemas de encerramento da instância, execute as seguintes ações de solução de problemas.
Analise as métricas para problemas de verificação de integridade
Verifique a CPUUtilization e StatusCheckFailed_Instance de suas métricas do Amazon CloudWatch para a instância encerrada. As anomalias podem mostrar problemas de desempenho ou falhas de hardware. Para obter mais informações, consulte Verificações de status para instâncias do Amazon EC2. Se você ativou o CloudWatch Container Insights, verifique também as métricas do Container Insights.
Verifique os logs da instância para saber se sua instância tem conexão de rede, falta de memória ou outros problemas subjacentes. O alto uso de recursos pode causar problemas de encerramento de instâncias. Redimensione seu tipo de instância de contêiner com base nos requisitos do seu workload.
Verifique se há problemas no histórico do ajuste de escala automático
Verifique o histórico de atividades do grupo do Amazon EC2 Auto Scaling para verificar se um evento agendado do EC2 Auto Scaling encerrou a instância. Se você teve uma ação inesperada de ajuste de escala automático, verifique a configuração, as políticas de escalabilidade e os limites do ajuste de escala automático.
Para evitar o encerramento inesperado da instância, use a proteção gerenciada de encerramento para reter instâncias de contêiner do Amazon ECS que contêm tarefas em execução.
Também é possível ativar a proteção de encerramento para suas instâncias para evitar o encerramento acidental. Se você ativou a proteção contra encerramento e ainda encontra problemas, consulte Como resolvo a configuração de proteção de encerramento gerenciado para o erro do provedor de capacidade no Amazon ECS?
Verifique se há interrupções na instância spot
Se você usa instâncias spot para seu cluster, verifique por que sua instância spot foi encerrada ou interrompida. Determine se o Amazon EC2 encerrou a instância spot. Se o Amazon EC2 interromper sua instância spot, você receberá um aviso 2 minutos antes da interrupção.
É uma prática recomendada usar instâncias sob demanda para aplicações com workloads críticos que não podem ser interrompidos.
Configure monitores para sua instância
Crie alarmes do CloudWatch para monitorar quando suas instâncias param, encerram, reinicializam ou se recuperam automaticamente para identificar problemas de forma proativa. Além disso, crie um alarme do CloudWatch para métricas importantes, como CPUUtilization, DiskReadOps, DiskWriteOps, NetworkIn ou NetworkOut.
Use o Amazon Simple Notification Service (Amazon SNS) e o Amazon EventBridge para receber alertas sobre alterações de estado de instâncias, como paradas, encerramentos e falhas na verificação de integridade. Também é possível criar um alarme que envia um e-mail quando uma instância muda de estado.
Para coletar métricas no nível de cluster, instância, serviço e tarefa, configure o Container Insights.
Configure a alta disponibilidade
Use estratégias de posicionamento de tarefas, como spread e binpack, para evitar a concentração de muitas tarefas em uma única instância.
Além disso, distribua suas instâncias de contêiner em várias zonas de disponibilidade para reduzir o impacto de uma terminação acidental de instância. Para obter mais informações, consulte as Práticas recomendadas de disponibilidade do Amazon ECS.