View a markdown version of this page

Risoluzione dei problemi relativi ai servizi Amazon ECS Express Mode - 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 relativi ai servizi Amazon ECS Express Mode

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

Problemi relativi alla distribuzione

Servizio bloccato nello stato ATTIVO o DRAINING

Sintomi: DescribeServiceRevisions indica che le risorse sono ancora in fase di provisioning o deprovisioning. DescribeServices mostra che l'implementazione non è stabilizzata

Possibili cause e soluzioni:

  • Autorizzazioni IAM insufficienti: verifica che il ruolo di esecuzione delle attività e il ruolo dell'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
  • Errore 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 agli endpoint Amazon VPC per i servizi. AWS

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

Fasi diagnostiche:

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

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

  3. Verifica che la porta del container sia stata impostata correttamente

  4. Verifica 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 viene chiusa a causa di errori di configurazione o di runtime.

  • Errori nei controlli di integrità: l'applicazione non risponde ai controlli di integrità sulla porta o sul percorso previsti.

  • Vincoli relativi alle risorse: allocazione insufficiente di CPU o memoria per l'applicazione.

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

Fasi di risoluzione:

  1. Controllate i log delle applicazioni nei CloudWatch Logs, ottenete 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 di controllo dello stato restituisca lo stato HTTP 200.

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

  4. Rivedi e regola le allocazioni di CPU e memoria, se necessario.

Errori di definizione delle attività personalizzati

La creazione o l'aggiornamento del servizio non riesce e InvalidParameterException si verifica quando si utilizza il taskDefinitionArn parametro.

«l'attività DefinitionArn non può essere fornita con primaryContainer, executionRoleArn, taskRoleArn, cpu o memoria».

Il taskDefinitionArn parametro non può essere specificato conprimaryContainer,executionRoleArn, taskRoleArncpu, o memory nella stessa chiamata API. La modalità Express ricava questi valori dalla definizione dell'attività fornita.

«La definizione dell'attività deve contenere un contenitore denominato 'Main' con una singola mappatura di porta TCP».

La definizione dell'attività non soddisfa i requisiti della modalità Express. Assicurati che contenga:

  • Un contenitore denominato Main

  • Il Main contenitore ha esattamente una mappatura di porta TCP con una porta e un nome di porta definiti

  • La definizione dell'attività ha delle FARGATE compatibilità

Problemi di connettività

Applicazione irraggiungibile tramite load balancer

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

Procedure per la risoluzione dei problemi:

  1. Verifica che le tue risorse abbiano terminato il provisioning

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

    aws ecs describe-services --cluster my-cluster --services my-express-service
  3. Controlla 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 delle applicazioni 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 individuare eventuali errori o avvisi sulle prestazioni.

  3. Controlla 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.

  • Regola le soglie di ridimensionamento automatico per ridimensionare prima.

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

Il ridimensionamento automatico non funziona come previsto

Sintomi: il servizio non aumenta la scalabilità in caso di carico elevato o non diminuisce in caso di carico basso.

Procedure per la risoluzione dei problemi:

  1. Controlla le politiche di ridimensionamento automatico e la loro configurazione:

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

  3. Verifica che il servizio disponga dell'autorizzazione per la 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 fornisce:

  • Metriche relative a CPU, memoria, disco e rete

  • Dashboard per il monitoraggio delle prestazioni

  • Correlazione e analisi dei log

  • Rilevamento anomalie