

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
<a name="express-service-troubleshooting"></a>

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
<a name="express-service-deployment-issues"></a>

### Servizio bloccato nello stato ATTIVO o DRAINING
<a name="express-service-service-stuck-provisioning"></a>

**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

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

1. Verifica che la porta del container sia impostata correttamente

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

### Errori di avvio delle attività
<a name="express-service-task-startup-failures"></a>

**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
   ```

1. Verificate che il percorso del controllo dello stato di salute restituisca lo stato HTTP 200.

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

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

## Problemi di connettività
<a name="express-service-connectivity-issues"></a>

### Applicazione irraggiungibile tramite il sistema di bilanciamento del carico
<a name="express-service-application-unreachable"></a>

**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

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

   ```
   aws ecs describe-services --cluster my-cluster --services my-express-service
   ```

1. 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
   ```

1. Assicurati che l'applicazione sia in ascolto sulla porta corretta all'interno del contenitore.

## Problemi di prestazioni
<a name="express-service-performance-issues"></a>

### Tempi di risposta lenti
<a name="express-service-slow-response-times"></a>

**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
   ```

1. Esamina i registri delle applicazioni per eventuali errori o avvisi sulle prestazioni.

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

1. 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
<a name="express-service-scaling-issues"></a>

**Sintomi:** il servizio non aumenta durante un carico elevato o non si riduce durante un 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
   ```

1. Rivedi le CloudWatch metriche per assicurarti che i trigger di scalabilità vengano soddisfatti.

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

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

## Strumenti di monitoraggio e debug
<a name="express-service-monitoring-debugging"></a>

### Utilizzo di Container Insights CloudWatch
<a name="express-service-cloudwatch-insights"></a>

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