Gestisci i problemi di limitazione di Amazon ECS - 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à.

Gestisci i problemi di limitazione di Amazon ECS

Gli errori di limitazione si dividono in due categorie principali: limitazione sincrona e limitazione asincrona.

Limitazione sincrona

Quando si verifica una limitazione sincrona ricevi immediatamente una risposta di errore da Amazon ECS. Questa categoria si verifica in genere quando chiami Amazon ECS APIs durante l'esecuzione di attività o la creazione di servizi. Per ulteriori informazioni sulla limitazione in questione e sui relativi limiti di limitazione, consulta la sezione Richiesta di limitazione per l'API Amazon ECS.

Quando l'applicazione avvia richieste API, ad esempio utilizzando l'SDK AWS CLI o un AWS SDK, puoi porre rimedio alla limitazione delle API. Puoi farlo progettando l'applicazione in modo da gestire gli errori o implementando una strategia di backoff esponenziale e jitter con logica di ripetizione per le chiamate API. Per maggiori informazioni, consulta Timeout, nuovi tentativi e backoff con jitter.

Se utilizzi un AWS SDK, la logica di ripetizione automatica dei tentativi è integrata e configurabile.

Limitazione asincrona

La limitazione asincrona si verifica a causa di flussi di lavoro asincroni in cui Amazon ECS o CloudFormation potrebbe chiamare per tuo conto per fornire risorse. APIs È importante sapere cosa Amazon ECS richiama per tuo conto. AWS APIs Ad esempio, l'API CreateNetworkInterface viene invocata per attività che utilizzano la modalità di rete awsvpc e l'API DescribeTargetHealth viene invocata quando si eseguono controlli dell'integrità per attività registrate su un bilanciatore del carico.

Quando i carichi di lavoro raggiungono una dimensione considerevole, queste operazioni API potrebbero essere limitate. Cioè, potrebbero essere sufficientemente limitati da violare i limiti imposti da Amazon ECS o da Servizio AWS quello che viene chiamato. Ad esempio, se distribuisci centinaia di servizi, ciascuno con centinaia di attività contemporaneamente che utilizzano la modalità di awsvpc rete, Amazon ECS richiama le operazioni delle API di Amazon come le operazioni dell' EC2 API ELB come RegisterTarget o per registrare rispettivamente l'DescribeTargetHealthelastic network interface CreateNetworkInterface e il load balancer. Queste chiamate API possono superare i limiti dell'API, con conseguenti errori di limitazione. Di seguito è riportato un esempio di errore di limitazione ELB incluso nel messaggio di evento del servizio.

{ "userIdentity":{ "arn":"arn:aws:sts::111122223333:assumed-role/AWSServiceRoleForECS/ecs-service-scheduler", "eventTime":"2022-03-21T08:11:24Z", "eventSource":"elasticloadbalancing.amazonaws.com", "eventName":" DescribeTargetHealth ", "awsRegion":"us-east-1", "sourceIPAddress":"ecs.amazonaws.com", "userAgent":"ecs.amazonaws.com", "errorCode":"ThrottlingException", "errorMessage":"Rate exceeded", "eventID":"0aeb38fc-229b-4912-8b0d-2e8315193e9c" } }

Quando queste chiamate API condividono i limiti con altro traffico API nel tuo account, potrebbero essere difficili da monitorare anche se vengono emesse come eventi di servizio.

Monitoraggio della limitazione

È importante identificare quali richieste API sono limitate e chi le emette. Puoi utilizzare AWS CloudTrail Which per monitorare la limitazione e integrarsi con Amazon CloudWatch Athena e Amazon. EventBridge Puoi configurare l'invio di eventi specifici CloudTrail ai registri. CloudWatch CloudWatch Logs, log insights, analizza e analizza gli eventi. Ciò identifica i dettagli degli eventi di limitazione, come l'utente o il ruolo IAM che ha effettuato la chiamata e il numero di chiamate API effettuate. Per ulteriori informazioni, consulta Monitoraggio dei file di CloudTrail registro con Logs. CloudWatch

Per ulteriori informazioni su CloudWatch Logs Insights e istruzioni su come interrogare i file di registro, vedi Analisi dei dati di log con CloudWatch Logs Insights.

Con Amazon Athena puoi creare query e analizzare dati utilizzando SQL standard. Ad esempio, puoi creare una tabella Athena per analizzare CloudTrail gli eventi. Per ulteriori informazioni, vedere Utilizzo della CloudTrail console per creare una tabella Athena per i CloudTrail log.

Dopo aver creato una tabella Athena puoi utilizzare query SQL come la seguente per analizzare gli errori ThrottlingException.

Sostituiscili user-input con i tuoi valori.

select eventname, errorcode,eventsource,awsregion, useragent,COUNT(*) count FROM cloudtrail_table-name where errorcode = 'ThrottlingException' AND eventtime between '2024-09-24T00:00:08Z' and '2024-09-23T23:15:08Z' group by errorcode, awsregion, eventsource, useragent, eventname order by count desc;

Amazon ECS invia anche notifiche di eventi ad Amazon. EventBridge Esistono eventi di modifica dello stato delle risorse ed eventi di azione del servizio. Questi includono eventi di limitazione delle API come ECS_OPERATION_THROTTLED e SERVICE_DISCOVERY_OPERATION_THROTTLED. Per ulteriori informazioni, consulta Eventi di operazioni di servizi Amazon ECS.

Questi eventi possono essere utilizzati da un servizio, ad esempio AWS Lambda per eseguire azioni in risposta. Per ulteriori informazioni, consulta Gestione degli eventi Amazon ECS.

Se esegui attività autonome, alcune operazioni API come RunTask sono asincrone e le operazioni di nuovo tentativo non vengono eseguite automaticamente. In questi casi, è possibile utilizzare servizi come AWS Step Functions with EventBridge integration per riprovare operazioni limitate o non riuscite. Per ulteriori informazioni, consulta Gestione di un'attività del container (Amazon ECS, Amazon SNS).

Da utilizzare per monitorare la limitazione CloudWatch

CloudWatch offre il monitoraggio dell'utilizzo delle API Usage nello spazio dei nomi in By Resource. AWS Queste metriche vengono registrate con il tipo di API e il nome della metrica. CallCount Puoi creare avvisi che si attivano ogni volta che queste metriche raggiungono una determinata soglia. Per ulteriori informazioni, consulta Visualizzazione delle quote di servizio e impostazione degli avvisi.

CloudWatch offre anche il rilevamento delle anomalie. Questa funzionalità utilizza il machine learning per analizzare e stabilire linee di base a seconda del comportamento particolare della metrica su cui l'hai abilitato. In caso di attività insolite dell'API, puoi utilizzare questa funzione insieme agli CloudWatch allarmi. Per ulteriori informazioni, consulta Utilizzo del rilevamento CloudWatch delle anomalie.

Monitorando in modo proattivo gli errori di limitazione, potete contattarci Supporto per aumentare i limiti di limitazione pertinenti e ricevere anche indicazioni per le vostre esigenze applicative specifiche.