Come posso risolvere i problemi relativi ai controlli dell'integrità delle attività di Amazon ECS su Fargate?
Ricevo errori di controllo dell'integrità delle mie attività di Amazon Elastic Container Service (Amazon ECS) su AWS Fargate.
Breve descrizione
Gli errori di controllo dell'integrità delle attività di Amazon ECS su Fargate possono verificarsi per i seguenti motivi:
- Errori di controllo dell'integrità del container
- Target in una zona di disponibilità disattivata per il bilanciatore del carico
- Vincoli di risorse per CPU o memoria
- Impostazioni del controllo dell'integrità non configurate correttamente
- Problemi di connettività di rete
Quando un'attività non supera il controllo dell'integrità del bilanciatore del carico, ricevi uno dei seguenti errori nel messaggio di evento del servizio di Amazon ECS:
- "(service AWS-service) (porta 8080) non è integro in (target-group arn:aws:elasticloadbalancing:us-east-1:111111111111:targetgroup/aws-targetgroup/123456789) a causa di (motivo Controlli dell’integrità non riusciti con questi codici: [5xx]/[4xx]/[3xx]) o (Timeout della richiesta)."
- "(service AWS-service) (attività eaa3ec9e9f104070b461490987654321) controlli dell'integrità del container non riusciti."
- "(service AWS-Service) (istanza 10.122.144.145) (porta 8080) non è integro in (target-group arn:aws:elasticloadbalancing:ap-south-1:120987654321:targetgroup/AWS-Service-TG/159c835dc9d8cf84) a causa di (motivo Target in una zona di disponibilità disattivata per il bilanciatore del carico)."
Sulla console delle attività di Amazon ECS, potresti anche ricevere l'errore "L'attività non ha superato i controlli dell'integrità ELB in (target-group arn:aws:elasticloadbalancing:ap-south-1:111111111111:targetgroup/aws-targetgroup/123456789)".
Risoluzione
Nota: se ricevi messaggi di errore durante l'esecuzione dei comandi dell'interfaccia della linea di comando AWS (AWS CLI), consulta Risoluzione degli errori per AWS CLI. Inoltre, assicurati di utilizzare la versione più recente di AWS CLI.
Risolvi un errore HTTP [5xx]/[4xx]/[3xx] o (Timeout della richiesta)
Controlla la configurazione del controllo dell'integrità del tuo bilanciatore del carico
Ricevi questi errori quando il bilanciatore del carico Elastic Load Balancing (ELB) si aspetta un codice HTTP 200 ma riceve un codice di errore 3xx, 4xx o 5xx. Di conseguenza, il bilanciatore del carico interrompe l'attività e la contrassegna come Non integra. Per risolvere questo problema, configura il percorso corretto per il controllo dell'integrità o modifica le impostazioni del controllo dell'integrità.
Per informazioni sugli errori HTTP nell'Application Load Balancer, consulta Il bilanciatore del carico genera un errore HTTP.
Se l'attività di Amazon ECS non risponde al controllo dell'integrità del bilanciatore del carico entro il periodo di timeout, viene visualizzato l'errore Timeout della richiesta.
Verifica che il bilanciatore del carico sia in grado di eseguire controlli dell'integrità
Controlla le seguenti configurazioni:
- Il gruppo di sicurezza associato al bilanciatore del carico consente il traffico in uscita verso le interfacce di rete elastiche delle attività di Amazon ECS sulla porta del container registrata.
- Il gruppo di sicurezza Amazon ECS consente tutto il traffico in entrata sulla porta container registrata dal gruppo di sicurezza associato al bilanciatore del carico.
Configura i tuoi parametri di timeout
Se le tue attività di Amazon ECS rispondono lentamente ai controlli dell'integrità, è consigliabile aumentare il valore del parametro HealthCheckGracePeriod.
Se la tua applicazione impiega in genere molto tempo per rispondere ai controlli dell'integrità, puoi anche aumentare il valore di timeout del controllo dell'integrità del gruppo target. Questo parametro definisce il tempo a disposizione delle attività di Amazon ECS per rispondere ai controlli dell'integrità.
Verifica l'utilizzo delle risorse
Se la tua applicazione richiede una connettività backend a un database, verifica l'utilizzo elevato delle risorse a livello di database. L'uso elevato delle risorse può causare problemi durante il processo di inizializzazione dell'applicazione e provocare errori durante il controllo dell'integrità del bilanciatore del carico.
**Risolvi i problemi relativi alla risposta lenta **
Utilizza ECS Exec per verificare come risponde l'applicazione sul percorso e sulla porta del controllo dell'integrità. Per verificare che la risposta da parte del backend avvenga senza ritardi, esegui il seguente comando:
curl -iv localhost:container-port/path
Nota: sostituisci a container-port la porta utilizzata dal tuo container e a path il percorso del controllo dell'integrità.
Controlla la tua configurazione del controllo dell'integrità
Innanzitutto, assicurati che il file si trovi nel percorso che hai configurato nel controllo dell'integrità del gruppo target.
Se il tuo file si trova nella posizione corretta ma i controlli dell'integrità continuano a fallire, completa i seguenti passaggi:
- Apri la console Amazon Elastic Compute Cloud (Amazon EC2).
- Nel pannello di navigazione, in Bilanciamento del carico, scegli Gruppi target.
- Seleziona il gruppo target.
- Scegli la scheda Controlli dell'integrità, quindi scegli Modifica.
- Nella pagina Modifica gruppo target, per Codice di esito positivo, inserisci il codice HTTP contenuto nel messaggio di errore. Ad esempio, inserisci 404.
- Scegli Salva.
Importante: assicurati che il protocollo del gruppo target sia impostato sul protocollo HTTP supportato dalla tua applicazione.
Verifica i vincoli relativi alle risorse in Amazon ECS
Controlla le metriche del servizio Amazon ECS per l'utilizzo della CPU e della memoria. Se il valore CpuUtilization o MemoryUtilization è costantemente elevato, si verificano problemi di prestazioni che possono causare il fallimento dei controlli dell'integrità.
Per ridurre l'utilizzo delle risorse, intraprendi le seguenti azioni:
- Alloca più risorse in termini di CPU e memoria nella definizione dell'attività.
- Per scalare orizzontalmente la configurazione, aumenta il numero di attività in esecuzione in modo da distribuire uniformemente il carico di lavoro su più istanze e ottenere prestazioni migliori in caso di picchi improvvisi.
- Valuta regolarmente le prestazioni del sistema in varie condizioni di carico per identificare potenziali strozzature e una migliore allocazione delle risorse.
- Monitora l'utilizzo della rete, i modelli di connessione e i tempi di risposta dell'applicazione per identificare potenziali strozzamenti e ottimizzare i modelli di utilizzo della rete inefficienti.
È consigliabile monitorare frequentemente il comportamento del sistema e modificare la configurazione in base alle esigenze.
Risolvi un errore di controllo dell'integrità del container non riuscito
Se le istanze del container ECS presenti nell'attività utilizzano controlli dell'integrità che il servizio non riesce a superare, viene visualizzato l'errore controlli dell'integrità del container non riusciti. Per risolvere questo problema, consulta Come posso risolvere gli errori relativi al controllo dell'integrità del container per le attività di Amazon ECS?
Risolvi i problemi relativi alla zona di disponibilità con le attività target di Amazon ECS
Se registri i target in una zona di disponibilità che non attivi, i target registrati non ricevono traffico. Per ulteriori informazioni, consulta Zone di disponibilità e nodi di bilanciamento del carico.
Ad esempio, le tue sottoreti Amazon ECS appartengono alle zone di disponibilità us-east-1x e us-east-1y. Se il bilanciatore del carico ha le zone di disponibilità us-east-1p e us-east-1q attivate, viene visualizzato un errore.
Per aggiornare Amazon ECS in modo da utilizzare le sottoreti per la zona di disponibilità del bilanciatore del carico, esegui il comando di AWS CLI update-service:
aws ecs update-service --cluster cluster-name --service service-name --region region-code --network-configuration '{"awsvpcConfiguration": {"subnets": ["subnet-1","subnet-2"],"securityGroups": ["sg-abcdxyz"]}}'
Nota: sostituisci a cluster-name il nome del cluster, a service-name il nome del servizio e a region-code la tua regione AWS. Inoltre, sostituisci a subnet-1 e subnet-2 le tue sottoreti e a sg-abcdxyz il tuo gruppo di sicurezza.
Informazioni correlate
- Argomenti
- Containers
- Lingua
- Italiano
Video correlati

