Como solucionar falhas na verificação de integridade de tarefas do Amazon ECS no Fargate?

7 minuto de leitura
0

Eu recebo falhas na verificação de integridade em tarefas do Amazon Elastic Container Service (Amazon ECS) no AWS Fargate.

Breve descrição

As falhas na verificação de integridade das tarefas do Amazon ECS no Fargate podem ocorrer pelos seguintes motivos:

  • Erros de verificação de integridade do contêiner
  • Um destino que está em uma zona de disponibilidade que está desativada para o balanceador de carga
  • Restrições de recursos para CPU ou memória
  • Configurações de verificação de integridade mal configuradas
  • Problemas de conectividade de rede

Quando uma tarefa falha na verificação de integridade do balanceador de carga, você recebe um dos seguintes erros na mensagem de evento de serviço do Amazon ECS:

  • “(serviço AWS-Service) (porta 8080) não está íntegro em (grupo de destino arn:aws:elasticloadbalancing:us-east-1:111111111111:targetgroup/aws-targetgroup/123456789) devido a (motivo de falha das verificações de integridade com estes códigos: [5xx]/[4xx]/[3xx]) ou (Tempo limite da solicitação esgotado).”
  • “(serviço AWS-Service) (tarefa eaa3ec9e9f104070b461490987654321) falhou nas verificações de integridade do contêiner.”
  • “(serviço AWS-Service) (instância 10.122.144.145) (porta 8080) não está íntegra em (target-group arn:aws:elasticloadbalancing:ap-south-1:120987654321:targetgroup/AWS-Service-TG/159c835dc9d8cf84) devido a (motivo pelo qual o Destino está em uma zona de disponibilidade que não está ativada para o balanceador de carga).”

No console de tarefas do Amazon ECS, você também pode receber o erro “A tarefa falhou nas verificações de integridade do ELB (target-group arn:aws:elasticloadbalancing:ap-south- 1:111111111111:targetgroup/aws-targetgroup/123456789)”.

Resolução

Observação: Se você receber erros ao executar comandos da AWS Command Line Interface (AWS CLI), consulte Solução de erros da AWS CLI. Além disso, verifique se você está usando a versão mais recente da AWS CLI.

Solucionar um erro HTTP [5xx]/[4xx]/[3xx] ou (tempo limite esgotado da solicitação)

Verifique a configuração de verificação de integridade do seu balanceador de carga

Você recebe esses erros quando o balanceador de carga do Elastic Load Balancing (ELB) espera um código HTTP 200, mas, em vez disso, recebe um código de erro 3xx, 4xx ou 5xx. Como resultado, o balanceador de carga interrompe a tarefa e a marca como Não íntegro. Para resolver esse problema, defina o caminho correto da verificação de integridade ou modifique as configurações da verificação de integridade.

Para obter informações sobre erros de HTTP no seu Application Load Balancer, consulte O balanceador de carga gera um erro HTTP.

Se a tarefa do Amazon ECS não responder à verificação de integridade do balanceador de carga dentro do tempo limite, você receberá o erro de tempo limite esgotado da solicitação.

Verifique se o balanceador de carga pode realizar verificações de integridade

Confirme as seguintes configurações:

  • O grupo de segurança associado ao seu balanceador de carga permite o tráfego de saída para suas interfaces de rede elástica de tarefas do Amazon ECS na porta de contêiner registrada.
  • O grupo de segurança do Amazon ECS permite todo o tráfego de entrada na porta de contêiner registrada do grupo de segurança associado ao seu balanceador de carga.

Configure seus parâmetros de tempo limite

Se suas tarefas do Amazon ECS demoram a responder às verificações de integridade, é uma prática recomendada aumentar o valor do parâmetro HealthCheckGracePeriod.

Se sua aplicação normalmente leva muito tempo para responder às verificações de integridade, você também pode aumentar o valor do tempo limite da verificação de integridade do grupo de destino. Esse parâmetro define quanto tempo as tarefas do Amazon ECS precisam responder às verificações de integridade.

Verifique o uso de seus recursos

Se sua aplicação exigir conectividade de back-end com um banco de dados, verifique se há alto uso de recursos no nível do banco de dados. O alto uso de recursos pode causar problemas durante o processo de inicialização da aplicação e causar erros durante a verificação de integridade do balanceador de carga.

Solucionar problemas de resposta lenta

Use o ECS Exec para verificar como a aplicação responde no caminho e na porta da verificação de integridade. Para verificar se há uma resposta bem-sucedida do back-end sem demora, execute o seguinte comando:

curl -iv localhost:container-port/path

Observação: Substitua container-port pela porta que seu contêiner usa e path pelo caminho de verificação de integridade.

Verifique sua configuração de verificação de integridade

Primeiro, verifique se o arquivo está no caminho que você configurou na verificação de integridade do grupo de destino.

Se o arquivo estiver no local correto, mas as verificações de integridade ainda falharem, conclua as seguintes etapas:

  1. Abra o console do Amazon Elastic Compute Cloud (Amazon EC2).
  2. No painel de navegação, em Balanceamento de carga, escolha Grupos de destino.
  3. Selecione o grupo de destino.
  4. Escolha a guia Verificações de integridade e, em seguida, escolha Editar.
  5. Na página Editar grupo de destino, em Código de sucesso, insira o código HTTP da sua mensagem de erro. Por exemplo, insira 404.
  6. Escolha Salvar.

Importante: Certifique-se de que o protocolo do grupo de destino esteja definido como o protocolo HTTP compatível com sua aplicação.

Verifique as restrições de recursos no Amazon ECS

Verifique as métricas do serviço Amazon ECS quanto à utilização da CPU e da memória. Se a utilização da CPU ou da memória for consistentemente alta, você terá problemas de desempenho que podem causar falhas nas verificações de integridade.

Para reduzir o uso de recursos, execute as seguintes ações:

  • Aloque mais recursos de CPU e memória na definição da tarefa.
  • Para escalar horizontalmente sua configuração, aumente o número de tarefas em execução para distribuir uniformemente o workload em várias instâncias e oferecer melhor desempenho durante picos repentinos.
  • Avalie periodicamente o desempenho do sistema sob várias condições de carga para identificar possíveis gargalos e melhor alocação de recursos.
  • Monitore o uso da rede, os padrões de conexão e os tempos de resposta de sua aplicação para identificar possíveis gargalos e otimizar padrões ineficientes de uso da rede.

É uma prática recomendada monitorar frequentemente o comportamento do seu sistema e ajustar sua configuração conforme necessário.

Solucionar um erro de falha na verificação de integridade do contêiner

Se as instâncias do contêiner do ECS em sua tarefa usarem verificações de integridade que seu serviço não consegue passar, você receberá o erro de falha nas verificações de integridade do contêiner. Para solucionar esse problema, consulte Como soluciono as falhas de verificação de integridade do contêiner para tarefas do Amazon ECS?

Solucione problemas de zona de disponibilidade com as tarefas de destino do Amazon ECS

Se você registrar destinos em uma zona de disponibilidade que não foi ativada, os destinos registrados não receberão tráfego. Para mais informações, consulte Zonas de disponibilidade e nós do balanceador de carga.

Por exemplo, suas sub-redes do Amazon ECS pertencem às zonas de disponibilidade us-east-1x e us-east-1y. Se o balanceador de carga tiver as zonas de disponibilidade us-east-1p e us-east-1q ativadas, você receberá um erro.

Para atualizar o Amazon ECS para usar as sub-redes da zona de disponibilidade do balanceador de carga, execute o comando update-service da AWS CLI:

aws ecs update-service --cluster cluster-name --service service-name --region region-code --network-configuration '{"awsvpcConfiguration": {"subnets": ["subnet-1","subnet-2"],"securityGroups": ["sg-abcdxyz"]}}'

Observação: Substitua o cluster-name pelo nome do cluster, service-name pelo nome do serviço e region-code pela região AWS. Além disso, substitua subnet-1 e subnet-2 por suas sub-redes e sg-abcdxyz por seu grupo de segurança.

Informações relacionadas

Definições de contêiner

Escale automaticamente seu serviço do Amazon ECS

Práticas recomendadas do Amazon ECS

Monitoramento do Amazon ECS

AWS OFICIAL
AWS OFICIALAtualizada há 3 meses