Probleme mit der Drosselung von Amazon ECS beheben - 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 beheben

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 zu der damit verbundenen Drosselung und den entsprechenden Drosselungslimits finden Sie unter Anforderung der Drosselung 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 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 bei einem Load Balancer registriert sind.

Wenn Ihre Workloads ein beträchtliches Ausmaß erreichen, werden diese API-Vorgänge 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, von denen jeder Hunderte von Aufgaben gleichzeitig ausführt und den awsvpc Netzwerkmodus verwendet, ruft Amazon ECS EC2 Amazon-API-Operationen wie CreateNetworkInterface und ELB-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-Limits überschreiten, was zu Drosselungsfehlern führen kann. Im Folgenden finden Sie ein Beispiel für einen ELB-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 Limits wie anderer API-Datenverkehr in Ihrem Konto haben, kann es schwierig sein, sie zu überwachen, obwohl sie als Service-Ereignisse ausgegeben werden.

Drosselung der Überwachung

Es ist wichtig zu ermitteln, welche API-Anfragen gedrosselt werden und von wo diese Anfragen ausgehen. Sie können verwenden 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 in 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 CloudWatch Protokollen.

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 ECS_OPERATION_THROTTLED und SERVICE_DISCOVERY_OPERATION_THROTTLED. Weitere Informationen finden Sie unter Amazon-ECS-Serviceaktionsereignisse.

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

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

Wird verwendet, um die Drosselung zu überwachen CloudWatch

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 Visualisierung Ihrer Service Quotas und Einstellung von Alarmen.

CloudWatch bietet auch die Erkennung von Anomalien. Dieses Feature verwendet Machine Learning, um Basiswerte zu analysieren und festzulegen, die auf dem spezifischen Verhalten der Metrik basieren, für die Sie es 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.