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:
DescribeExpressGatewayService Utilizzatelo per ottenere la revisione corrente del servizio, seguita da uno DescribeServiceRevisions per visualizzare lo ServiceRevision stato del provisioning o del deprovisioning
Controlla gli eventi del servizio nella console Amazon ECS per messaggi di errore dettagliati.
Verifica che la porta del container sia impostata correttamente
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:
-
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 Verificate che il percorso del controllo dello stato di salute restituisca lo stato HTTP 200.
Testa l'immagine del contenitore localmente per assicurarti che si avvii correttamente.
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
-
Verifica che le risorse abbiano terminato il provisioning
-
Verifica che le attività siano in esecuzione e funzionino correttamente:
aws ecs describe-services --cluster my-cluster --services my-express-service -
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 -
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:
-
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 Esamina i registri delle applicazioni per eventuali errori o avvisi sulle prestazioni.
Verifica se il ridimensionamento automatico risponde in modo appropriato al carico.
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
-
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 Rivedi le CloudWatch metriche per assicurarti che i trigger di scalabilità vengano soddisfatti.
Verifica che il servizio disponga dell'autorizzazione alla scalabilità (controlla i ruoli IAM).
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