Probleme mit der Drosselung von Amazon ECS lösen - Amazon Elastic Container Service

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Probleme mit der Drosselung von Amazon ECS lösen

Drosselungsfehler lassen sich in zwei Hauptkategorien einteilen: synchrone Drosselung und asynchrone Drosselung.

Synchrone Drosselung

Wenn synchrone Drosselung auftritt, erhalten Sie sofort eine Fehlerantwort von Amazon ECS. Diese Kategorie tritt normalerweise auf, wenn Sie Amazon ECS aufrufen, APIs während Sie Aufgaben ausführen oder Dienste erstellen. Weitere Informationen über die damit verbundene Drosselung und die entsprechenden Drosselungsgrenzen finden Sie unter Drosselung von Anfragen für die Amazon ECS-API.

Wenn Ihre Anwendung API-Anfragen initiiert, beispielsweise mithilfe des AWS CLI oder eines AWS SDK, können Sie die API-Drosselung beheben. Sie können dies tun, indem Sie entweder Ihre Anwendung so gestalten, dass sie die Fehler behandelt, oder indem Sie eine exponentielle Backoff- und Jitter-Strategie mit Wiederholungslogik für die API-Aufrufe implementieren. Weitere Informationen finden Sie unter Timeouts, Wiederholungen und Backoff mit Jitter.

Wenn Sie ein AWS SDK verwenden, ist die automatische Wiederholungslogik integriert und konfigurierbar.

Asynchrone Drosselung

Asynchrone Drosselung ist auf asynchrone Workflows zurückzuführen, bei denen Amazon ECS oder Amazon AWS CloudFormation möglicherweise in APIs Ihrem Namen Ressourcen bereitstellt. Es ist wichtig zu wissen AWS APIs , was Amazon ECS in Ihrem Namen aufruft. Die CreateNetworkInterface API wird beispielsweise für Aufgaben aufgerufen, die den awsvpc Netzwerkmodus verwenden, und die DescribeTargetHealth API wird aufgerufen, wenn Zustandsprüfungen für Aufgaben durchgeführt werden, die für einen Load Balancer registriert sind.

Wenn Ihre Workloads ein beträchtliches Ausmaß erreichen, werden diese API-Operationen möglicherweise gedrosselt. Das heißt, sie werden möglicherweise so stark gedrosselt, dass sie die von Amazon ECS oder dem AWS-Service aufgerufenen System durchgesetzten Grenzwerte überschreiten. Wenn Sie beispielsweise Hunderte von Services bereitstellen, die jeweils Hunderte von Aufgaben gleichzeitig ausführen und den awsvpc Netzwerkmodus verwenden, ruft Amazon ECS EC2 Amazon-API-Operationen wie CreateNetworkInterface und Elastic Load Balancing Balancing-API-Operationen wie RegisterTarget oder auf, DescribeTargetHealth um die elastic network interface bzw. den Load Balancer zu registrieren. Diese API-Aufrufe können die API-Grenzwerte überschreiten, was zu Drosselungsfehlern führen kann. Im Folgenden finden Sie ein Beispiel für einen Elastic Load Balancing Balancing-Drosselungsfehler, der in der Service-Event-Meldung enthalten ist.

{ "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" } }

Wenn diese API-Aufrufe dieselben Grenzwerte wie anderer API-Traffic in Ihrem Konto haben, kann es schwierig sein, sie zu überwachen, obwohl sie als Service-Ereignisse ausgegeben werden.

Drosselung des Monitors

Es ist wichtig zu ermitteln, welche API-Anfragen gedrosselt werden und wer diese Anfragen stellt. Sie können festlegen AWS CloudTrail , welche Monitore die Drosselung und Integration mit CloudWatch Amazon Athena und Amazon überwachen. EventBridge Sie können so konfigurieren CloudTrail , dass bestimmte Ereignisse an Logs gesendet werden. CloudWatch CloudWatch Logs, Log Insights, analysiert und analysiert die Ereignisse. Dadurch werden Details bei Drosselungsereignissen identifiziert, z. B. der Benutzer oder die IAM-Rolle, die den Anruf getätigt hat, und die Anzahl der getätigten API-Aufrufe. Weitere Informationen finden Sie unter Überwachen von CloudTrail Protokolldateien mit Protokollen. CloudWatch

Weitere Informationen zu CloudWatch Logs Insights und Anweisungen zum Abfragen von Protokolldateien finden Sie unter Logdaten mit CloudWatch Logs Insights analysieren.

Mit Amazon Athena können Sie Abfragen erstellen und Daten mit Standard-SQL analysieren. Sie können beispielsweise eine Athena-Tabelle erstellen, um Ereignisse zu analysieren CloudTrail . Weitere Informationen finden Sie unter Verwenden der CloudTrail Konsole zum Erstellen einer Athena-Tabelle für CloudTrail Protokolle.

Nachdem Sie eine Athena-Tabelle erstellt haben, können Sie SQL-Abfragen wie die folgende verwenden, um ThrottlingException Fehler zu untersuchen.

Ersetzen Sie die user-input durch Ihre Werte.

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 sendet auch Ereignisbenachrichtigungen an Amazon EventBridge. Es gibt Ereignisse zur Änderung des Ressourcenstatus und Ereignisse bei Serviceaktionen. Dazu gehören API-Drosselungsereignisse wie undECS_OPERATION_THROTTLED. SERVICE_DISCOVERY_OPERATION_THROTTLED Weitere Informationen finden Sie unter Aktionsereignisse des Amazon ECS-Service.

Diese Ereignisse können von einem Dienst genutzt werden, um beispielsweise als AWS Lambda Reaktion darauf Aktionen auszuführen. Weitere Informationen finden Sie unter Umgang mit Amazon ECS-Ereignissen.

Wenn Sie eigenständige Aufgaben ausführen, RunTask sind einige API-Operationen, z. B. asynchron, und Wiederholungsvorgänge werden nicht automatisch ausgeführt. In solchen Fällen können Sie Dienste wie AWS Step Functions die EventBridge Integration verwenden, um gedrosselte oder fehlgeschlagene Operationen erneut zu versuchen. Weitere Informationen finden Sie unter Container-Aufgaben verwalten (Amazon ECS, Amazon SNS).

Wird zur Überwachung CloudWatch der Drosselung verwendet

CloudWatch bietet die Überwachung der API-Nutzung für den Usage Namespace unter Nach Ressource. AWS Diese Metriken werden mit dem Typ API und dem Metriknamen CallCountprotokolliert. Sie können Alarme erstellen, die immer dann ausgelöst werden, wenn diese Metriken einen bestimmten Schwellenwert erreichen. Weitere Informationen finden Sie unter Visualisieren Ihrer Servicequotas und Einstellen von Alarmen.

CloudWatch bietet auch eine Erkennung von Anomalien. Diese Funktion verwendet maschinelles Lernen, um Basiswerte zu analysieren und festzulegen, die auf dem spezifischen Verhalten der Metrik basieren, für die Sie sie aktiviert haben. Bei ungewöhnlichen API-Aktivitäten können Sie diese Funktion zusammen mit CloudWatch Alarmen verwenden. Weitere Informationen finden Sie unter Verwenden der CloudWatch Anomalieerkennung.

Durch die proaktive Überwachung von Drosselungsfehlern können Sie sich an uns wenden, Support um die entsprechenden Drosselungsgrenzwerte zu erhöhen und Unterstützung für Ihre individuellen Anwendungsanforderungen zu erhalten.