Risoluzione dei problemi dei servizi in modalità Amazon ECS Express - Amazon Elastic Container Service

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Risoluzione dei problemi dei servizi in modalità Amazon ECS Express

Questa sezione consente di identificare e risolvere i problemi più comuni durante la distribuzione e la gestione dei servizi Express Mode.

Problemi relativi alla distribuzione

Servizio bloccato nello stato ATTIVO o DRAINING

Sintomi: DescribeServiceRevisions mostra che le risorse sono ancora in fase di approvvigionamento o esaurimento. DescribeServices mostra una distribuzione non stabilizzata

Possibili cause e soluzioni:

  • Autorizzazioni IAM insufficienti: verifica che il ruolo di esecuzione dell'attività e il ruolo di infrastruttura dispongano delle autorizzazioni necessarie, come indicato nelle rispettive politiche gestite.

    # Check if the role has the required managed policy aws iam list-attached-role-policies --role-name ecsTaskExecutionRole
  • Errori di estrazione dell'immagine: assicurati che l'immagine del contenitore esista e sia accessibile.

    # Test image pull manually docker pull 123456789012.dkr.ecr.us-west-2.amazonaws.com/my-app:latest
  • Problemi di connettività di rete: verifica che le sottoreti abbiano accesso a Internet o endpoint Amazon VPC per i servizi. AWS

  • Limiti delle risorse: verifica che il tuo account abbia una capacità Fargate sufficiente e che non abbia raggiunto le quote di servizio.

Fasi diagnostiche:

  1. DescribeExpressGatewayService Utilizzatelo per ottenere la revisione corrente del servizio, seguita da uno DescribeServiceRevisions per visualizzare lo ServiceRevision stato del provisioning o del deprovisioning

  2. Controlla gli eventi del servizio nella console Amazon ECS per messaggi di errore dettagliati.

  3. Verifica che la porta del container sia impostata correttamente

  4. Controlla le quote AWS di servizio per Amazon ECS e Fargate.

Errori di avvio delle attività

Sintomi: le attività non vengono avviate o si interrompono immediatamente dopo l'avvio.

Cause comuni:

  • Errori dell'applicazione: l'applicazione contenitore si chiude a causa di errori di configurazione o di runtime.

  • Errori del controllo dello stato di salute: l'applicazione non risponde ai controlli di integrità sulla porta o sul percorso previsti.

  • Limiti di risorse: allocazione insufficiente della CPU o della memoria per l'applicazione.

  • Variabili o segreti di ambiente mancanti: la configurazione richiesta non è disponibile per l'applicazione.

Fasi di risoluzione:

  1. Controlla i log delle applicazioni in CloudWatch Logs, ottieni il nome del gruppo di log da: 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
  2. Verificate che il percorso del controllo dello stato di salute restituisca lo stato HTTP 200.

  3. Testa l'immagine del contenitore localmente per assicurarti che si avvii correttamente.

  4. Esamina e modifica le allocazioni di CPU e memoria, se necessario.

Problemi di connettività

Applicazione irraggiungibile tramite il sistema di bilanciamento del carico

Sintomi: l'URL dell'applicazione restituisce timeout o errori di connessione.

Passaggi per la risoluzione dei problemi

  1. Verifica che le risorse abbiano terminato il provisioning

  2. Verifica che le attività siano in esecuzione e funzionino correttamente:

    aws ecs describe-services --cluster my-cluster --services my-express-service
  3. Verifica lo stato del gruppo target di Application Load Balancer:

    aws elbv2 describe-target-health --target-group-arn arn:aws:elasticloadbalancing:region:account:targetgroup/name/id
  4. Assicurati che l'applicazione sia in ascolto sulla porta corretta all'interno del contenitore.

Problemi di prestazioni

Tempi di risposta lenti

Sintomi: le risposte dell'applicazione sono più lente del previsto.

Approccio diagnostico:

  1. Monitora l'utilizzo della CPU e della memoria:

    # 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
  2. Esamina i registri delle applicazioni per eventuali errori o avvisi sulle prestazioni.

  3. Verifica se il ridimensionamento automatico risponde in modo appropriato al carico.

  4. Analizza le metriche del load balancer per la distribuzione delle richieste.

Strategie di ottimizzazione:

  • Aumenta l'allocazione della CPU o della memoria se le risorse sono limitate.

  • Modifica le soglie di scalabilità automatica per scalare prima.

  • Ottimizza le query sul codice dell'applicazione e sul database.

La scalabilità automatica non funziona come previsto

Sintomi: il servizio non aumenta in caso di carico elevato o non si riduce in caso di carico basso.

Passaggi per la risoluzione dei problemi

  1. Controlla le politiche di scalabilità automatica e la loro configurazione:

    aws application-autoscaling describe-scaling-policies \ --service-namespace ecs \ --resource-id service/my-cluster/my-express-service
  2. Rivedi le CloudWatch metriche per assicurarti che i trigger di scalabilità vengano soddisfatti.

  3. Verifica che il servizio disponga dell'autorizzazione alla scalabilità (controlla i ruoli IAM).

  4. Verifica eventuali attività di scalabilità e i relativi risultati.

Strumenti di monitoraggio e debug

Utilizzo di Container Insights CloudWatch

Abilita Container Insights per un monitoraggio completo:

aws ecs put-account-setting --name containerInsights --value enabled

Container Insights offre:

  • Metriche relative a CPU, memoria, disco e rete

  • Dashboard di monitoraggio delle prestazioni

  • Correlazione e analisi dei log

  • Rilevamento anomalie