Solucionar problemas dos serviços do Amazon ECS Express Mode
Esta seção ajuda você a identificar e resolver problemas comuns ao implantar e gerenciar serviços Express Mode.
Problemas de implantação
Serviço preso no status ACTIVE ou DRAINING
Sintomas: DescribeServiceRevisions mostra que os recursos ainda estão sendo provisionados ou desprovisionados. DescribeServices mostra que a implantação não está estabilizada
Possíveis causas e soluções:
-
Permissões do IAM insuficientes: verifique se o perfil de execução de tarefa e o perfil de infraestrutura têm as permissões necessárias, conforme mostrado em suas respectivas políticas gerenciadas.
# Check if the role has the required managed policy aws iam list-attached-role-policies --role-name ecsTaskExecutionRole -
Falhas de extração de imagem: certifique-se de que a imagem do contêiner exista e esteja acessível.
# Test image pull manually docker pull 123456789012.dkr.ecr.us-west-2.amazonaws.com/my-app:latest -
Problemas de conectividade de rede: verifique se as sub-redes têm acesso à Internet ou os endpoints da Amazon VPC para serviços da AWS.
-
Limites de recursos: verifique se sua conta tem capacidade suficiente do Fargate e não atingiu as cotas de serviço.
Etapas de diagnóstico:
Use DescribeExpressGatewayService para obter sua revisão de serviço atual, seguido por DescribeServiceRevisions para ServiceRevision a fim de obter o status do provisionamento ou desprovisionamento
Verifique os eventos de serviço no console do Amazon ECS para obter mensagens de erro detalhadas.
Verifique se a porta do contêiner foi definida corretamente
Verifique as cotas de serviço da AWS para o Amazon ECS e Fargate.
Falhas de inicialização de tarefa
Sintomas: as tarefas não são iniciadas ou param imediatamente após o início.
Causas comuns:
-
Erros da aplicação: a aplicação de contêiner é encerrada por causa de erros de configuração ou de runtime.
-
Falhas de verificação de integridade: a aplicação não responde às verificações de integridade na porta ou no caminho esperado.
-
Restrições de recursos: alocação insuficiente de CPU ou memória para a aplicação.
-
Variáveis de ambiente ou segredos ausentes: a configuração necessária não está disponível para a aplicação.
Etapas de resolução:
-
Verifique os logs da aplicação no CloudWatch Logs e obtenha o nome do grupo de logs em DescribeServiceRevisions:
aws logs describe-log-streams --log-group-name /ecs/express-service-my-app aws logs get-log-events --log-group-name /ecs/express-service-my-app --log-stream-name stream-name Verifique se o caminho da verificação de integridade retorna o status HTTP 200.
Teste a imagem do contêiner localmente para garantir que ela seja iniciada corretamente.
Revise e ajuste as alocações de CPU e memória, se necessário.
Problemas de conectividade
Aplicação inacessível via balanceador de carga
Sintomas: o URL da aplicação retorna tempos limite ou erros de conexão.
Etapas de solução de problemas:
-
Confirme se seus recursos concluíram o provisionamento
-
Verifique se as tarefas estão em execução e se estão íntegras:
aws ecs describe-services --cluster my-cluster --services my-express-service -
Verifique a integridade do grupo de destino do Application Load Balancer:
aws elbv2 describe-target-health --target-group-arn arn:aws:elasticloadbalancing:region:account:targetgroup/name/id -
Verifique se a aplicação está atendendo na porta correta dentro do contêiner.
Problemas de performance
Mostrar tempos de resposta
Sintomas: as respostas da aplicação são mais lentas do que o esperado.
Abordagem diagnóstica:
-
Monitorar utilização de CPU e memória:
# Check CloudWatch metrics for the service aws cloudwatch get-metric-statistics \ --namespace AWS/ECS \ --metric-name CPUUtilization \ --dimensions Name=ServiceName,Value=my-express-service Name=ClusterName,Value=my-cluster \ --start-time 2024-01-01T00:00:00Z \ --end-time 2024-01-01T01:00:00Z \ --period 300 \ --statistics Average Analise os logs da aplicação em busca de erros ou avisos de performance.
Verifique se o ajuste de escala automático está respondendo corretamente à carga.
Analise as métricas do balanceador de carga para distribuição de solicitações.
Estratégias de otimização:
Aumente a alocação de CPU ou memória se os recursos estiverem limitados.
Ajuste os limites de escala automática para aumentar a escala horizontalmente mais cedo.
Otimize o código da aplicação e as consultas ao banco de dados.
O ajuste de escala automático não está funcionando conforme o esperado
Sintomas: o serviço não aumenta a escala verticalmente durante carga alta ou não a reduz durante carga baixa.
Etapas de solução de problemas:
-
Verifique as políticas de ajuste de escala automático e suas configurações:
aws application-autoscaling describe-scaling-policies \ --service-namespace ecs \ --resource-id service/my-cluster/my-express-service Analise as métricas do CloudWatch para garantir que os acionadores de ajuste de escala sejam atendidos.
Verifique se o serviço tem permissão para escalar (verifique os perfis do IAM).
Verifique todas as atividades de ajuste de escala e seus resultados.
Ferramentas de monitoramento e depuração
Usar o CloudWatch Container Insights
Habilitar o Container Insights para monitoramento abrangente:
aws ecs put-account-setting --name containerInsights --value enabled
O Container Insights fornece:
Métricas de CPU, memória, disco e rede
Painéis de monitoramento de performance
Correlação e análise de log
Detecção de anomalias