Blog

AWS API Gateway Drosselung erklärt

Aktualisiert Oktober 16, 2025
8 Minuten

Kürzlich hat mich ein Kunde gefragt, wie er seine REST-APIs auf AWS API Gateway richtig drosseln kann, da er es nicht ganz verstanden hat. Wenn Sie derzeit REST-APIs auf AWS verwenden und mit der begrenzten Dokumentation zur Drosselung zu kämpfen haben, sind Sie hier genau richtig! In diesem Beitrag erkläre ich Ihnen, was es mit der API-Gateway-Drosselung auf sich hat.

Wie funktioniert die Drosselung von AWS API Gateway?

Bevor wir uns die verschiedenen Möglichkeiten zur Ratenbegrenzung von Anfragen ansehen, müssen wir verstehen, wie die Drosselung in der Theorie funktioniert. AWS drosselt Anfragen mit dem sogenannten Token-Bucket-Algorithmus. Bei diesem Algorithmus haben wir einen Bucket, der mit Token gefüllt ist. Jedes Token steht für 1 Anfrage des API-Gateways. Die Menge der Token, die unser Bucket enthalten kann, nennen wir das Burst-Limit. Die Rate, mit der unser Bucket mit Token aufgefüllt wird, nennen wir das Ratenlimit.

Eine visuelle Erläuterung des Token Bucket Algorithmus Nehmen wir an, wir setzen das Ratenlimit auf 3 Anfragen pro Sekunde und das Burst-Limit auf 9 Anfragen. Das bedeutet, dass jede Sekunde 3 neue Token zum Bucket hinzugefügt werden, bis zum maximalen Burst-Limit von 9. Solange unsere Anfragerate nicht unsere Token-Nachfüllrate überschreitet, ist alles in Ordnung. Was aber, wenn wir 4 Anfragen pro Sekunde senden? In diesem Fall wird unser Eimer um 1 Token pro Sekunde leerer. Nach 6 Sekunden sind alle Token im Bucket aufgebraucht und wir erhalten die Fehlermeldung 429: Too Many Requests. Der Token-Bucket-Algorithmus wird zur Verwaltung der Drosselung in vielen anderen AWS-Services verwendet, z. B. in ECSKinesis

Gateway-Drosselung

Nachdem wir uns nun das zugrunde liegende Drosselungssystem angesehen haben, können wir uns die verschiedenen Stufen ansehen, auf denen wir drosseln können. AWS unterscheidet zwischen etwa 4 verschiedenen Ratengrenzen:

  1. Regional.
  2. Konto-Ebene.
  3. Stufenebene (auch bekannt als die Gesamtrate pro Methode).
  4. Nutzungsplan-Ebene (auch bekannt als der Gesamtpreis pro Kunde).

AWS prüft jede Ratenbegrenzung und blockiert eine Anfrage, wenn eine davon überschritten wird. Das bedeutet, dass AWS die Drosselung auf der Grundlage der engsten Drosselungsdefinition vornimmt. Mit anderen Worten: Die Drosselung auf Nutzungsplanebene hat Vorrang vor der Drosselung auf Stufenebene, die Drosselung auf Stufenebene hat Vorrang vor der Drosselung auf Kontoebene und so weiter.

Regionale Drosselung

Die höchste Tarifgrenze ist die regionale Tarifgrenze. AWS stellt nicht viele Informationen zu diesem Thema zur Verfügung, nicht einmal in ihrem Sicherheits-Whitepaper zu API Gateway. Das Einzige, was wir wissen, ist, dass regionale Drosselungsgrenzen für alle Konten und Clients in einer Region festgelegt werden. Da wir dieses Limit nicht ändern können, gehen wir eine Ebene tiefer zum Kontolimit.

Drosselung auf Kontoebene

Auf Kontoebene wird 1 Token-Bucket für alle APIs, die Sie pro Region aktivieren, freigegeben. Das Standard-Ratenlimit liegt bei 10.000 Anfragen pro Sekunde und das Standard-Burst-Limit bei 5000 Anfragen. Es ist möglich, dieses Limit zu erhöhen, sofern es die theoretischen regionalen Grenzen von AWS nicht überschreitet. Die Drosselung auf Kontoebene ist standardmäßig aktiviert. Beachten Sie, dass ein einzelner Benutzer unser API-Gateway-Kontingent ausschöpfen kann, wenn wir keine anderen Drosselungseinstellungen konfigurieren! Ein Angreifer könnte beispielsweise die gesamte API-Gateway-Umgebung Ihres Kontos durch DDoS-Angriffe auf einen Endpunkt für den Gesundheitscheck lahmlegen.

Stufe der Drosselung

Auf Stufenebene wird für jede Methode in einer API-Stufe 1 Bucket erstellt. Außerdem ist die Methoden-Drosselung standardmäßig aktiviert, wenn Sie eine API in API Gateway bereitstellen. Das hört sich zwar theoretisch gut an, aber das Standardlimit entspricht den Limits Ihrer Kontoebene. Wenn Sie also diese Standardeinstellungen nicht ändern, kann eine einzige Methode immer noch Ihr gesamtes Kontolimit ausschöpfen, wie oben beschrieben. Da diese methodenspezifischen Buckets von verschiedenen Benutzern gemeinsam genutzt werden, kann ein Benutzer andere Benutzer daran hindern, auf bestimmte Endpunkte zuzugreifen, wenn deren dauerhafte Nutzung höher ist als die Token-Aktualisierungsrate des Buckets. Wenn Sie sich also für eine stufenweise Drosselung entscheiden, sollten Sie sich dieser beiden Vorbehalte bewusst sein!

Drosselung der Nutzung auf Tarifebene

Eine Lösung, die verhindert, dass bestimmte Benutzer Ihre APIs überfordern, ist der Nutzungsplan. Nutzungspläne ermöglichen eine genauere Kontrolle der Anfragen, indem sie eine Gesamtrate und ein Burst-Limit pro Client festlegen. In einem Nutzungsplan wird ein Kunde durch seinen API-Schlüssel identifiziert. Jeder Kunde hat seinen eigenen Token-Bucket, den er nutzen kann. Wenn er seinen persönlichen Bucket erschöpft, blockiert AWS weitere Anfragen. Bei richtiger Konfiguration kann ein einzelner Client daher eine API für andere Benutzer nicht mehr drosseln, wenn Nutzungspläne aktiviert sind. Für noch mehr Kontrolle können Sie einzelne Methoden pro Client drosseln, mit einem Maximum von 100 Methoden pro Nutzungsplan. Dieses Limit ist eigentlich undokumentiert! Laut dem AWS-Support gibt es derzeit keine Möglichkeit, sie zu erhöhen.

Fazit

Zusammenfassend lässt sich sagen, dass die Drosselung des API-Gateways ziemlich verwirrend sein kann! In der offiziellen Dokumentation ist nicht immer klar, wie die Drosselungsgrenzen angewendet werden. Außerdem sind die Standardeinstellungen ziemlich gefährlich, wenn wir sie so belassen, wie sie sind, und könnten Ihre API Gateway-Umgebung in Ihren Konten gefährden. Wenn Sie Ihre REST-API über AWS API Gateway bereitstellen, sollten Sie diese Eigenheiten berücksichtigen.

 

FAQs

1. Was ist der Unterschied zwischen einem Ratenlimit und einem Burst-Limit?

Das Ratenlimit ist wie eine Geschwindigkeitsbegrenzung für Ihre API. Es legt die maximale Anzahl von Anfragen fest, die Ihre API pro Sekunde verarbeiten kann. Wenn Ihr Ratenlimit also bei 3 Anfragen pro Sekunde liegt, kann Ihre API bis zu 3 Anfragen pro Sekunde verarbeiten.

Das Burst-Limit dient als Puffer für plötzliche Verkehrsspitzen. Betrachten Sie es als einen Geschwindigkeitsschub, wenn Sie ihn brauchen. Wenn Ihr Burst-Limit auf 9 eingestellt ist, sind bis zu 9 Anfragen in einem kurzen Burst möglich, bevor das Ratenlimit angewendet wird. Auf diese Weise lassen sich vorübergehende Spitzen im Datenverkehr reibungslos bewältigen.

2. Wie kann ich die Drosselung in AWS API Gateway überwachen?

Es gibt ein paar Tools, die AWS zur Verfügung stellt, um die Drosselung und die Leistung Ihrer API im Auge zu behalten:

  • Amazon CloudWatch: Mit diesem Tool können Sie Metriken wie ThrottledRequests, 4xxError und 5xxError verfolgen. Es hilft Ihnen zu sehen, wie oft Anfragen gedrosselt werden, und eventuelle Probleme zu erkennen.
  • API-Gateway-Protokolle: Wenn Sie die Protokollierung in der API Gateway-Konsole unter dem Abschnitt "Stages" aktivieren, können Sie detaillierte Protokolle der Anfragen und Antworten erhalten.
  • AWS X-Ray: Mit diesem Service erhalten Sie eine End-to-End-Ansicht Ihrer Anfragen. Er ist ideal, um Engpässe zu erkennen und zu verstehen, wie sich die Drosselung auf Ihr System auswirkt.
  • Nutzungspläne und API-Schlüssel: Damit können Sie die Nutzung einzelner Clients überwachen und kontrollieren und sicherstellen, dass kein einzelner Benutzer Ihre API überlasten kann.

3. Was sind die standardmäßigen Drosselungsgrenzen in AWS API Gateway?

Hier sind die Standardgrenzen:

  • Drosselung auf Kontoebene: Jedes Konto kann bis zu 10.000 Anfragen pro Sekunde verarbeiten, mit einem Burst-Limit von 5.000 Anfragen pro Sekunde.
  • Drosselung auf Stufen-Ebene: Diese Limits sind dieselben wie die Limits auf Kontoebene, es sei denn, Sie ändern sie.
  • Drosselung der Nutzung auf Plan-Ebene: Diese werden von Ihnen festgelegt, wenn Sie einen Nutzungsplan erstellen. Es gibt also keine Vorgabe - Sie entscheiden selbst.

Sie können diese Grenzen an Ihre Bedürfnisse anpassen, aber sie unterliegen regionalen Grenzen, die AWS nicht öffentlich bekannt gibt.

4. Kann ich die Drosselungsgrenzen für bestimmte Benutzer oder Endpunkte anpassen?

Ja, absolut! Mit Hilfe von Nutzungsplänen und API-Schlüsseln können Sie Drosselungsgrenzen für verschiedene Benutzer oder Endpunkte festlegen:

  • Nutzungspläne: Mit diesen Plänen können Sie für jeden Kunden, der durch seinen eindeutigen API-Schlüssel identifiziert wird, bestimmte Raten- und Burst-Limits festlegen. Auf diese Weise können Sie verhindern, dass ein einzelner Benutzer Ihre API in Beschlag nimmt.
  • Drosselung auf Methodenebene: Sie können auch unterschiedliche Grenzen für bestimmte Endpunkte innerhalb Ihrer API festlegen. Dies ist praktisch, wenn einige Endpunkte aufgrund höherer Nachfrage oder aus Sicherheitsgründen strengere Grenzen benötigen.

Diese Flexibilität ermöglicht es Ihnen, eine Drosselungsstrategie zu erstellen, die perfekt zu Ihrer Anwendung und den Bedürfnissen der Benutzer passt.

5. Was passiert, wenn die Drosselungsgrenzen überschritten werden?

Wenn die Drosselungsgrenzen erreicht sind, sendet AWS API Gateway einen 429 Too Many Requests Fehler zurück. Hier ist, was Sie dagegen tun können:

  • Mechanismus zur Wiederholung: Bauen Sie einen Wiederholungsmechanismus in Ihre Client-Anwendung ein, um diese Fehler elegant zu behandeln. Verwenden Sie eine Strategie wie exponentielles Backoff, um den Server nicht mit Wiederholungsversuchen zu überlasten.
  • Limits anpassen: Überprüfen Sie Ihre Drosselungslimits und passen Sie sie ggf. an, um sie besser an Ihr Verkehrsverhalten anzupassen.
  • Optimieren Sie die API-Nutzung: Sehen Sie sich an, wie Ihre API genutzt wird und finden Sie Wege, um unnötige Anfragen zu reduzieren. Dies kann die Zwischenspeicherung von Antworten, die Verbesserung des Client-Verhaltens oder die Optimierung Ihres Backends beinhalten.

Das Verständnis und die Verwaltung von Drosselungen ist der Schlüssel für die Zuverlässigkeit und Effizienz Ihrer API. Überprüfen Sie Ihre Einstellungen regelmäßig, um sicherzustellen, dass sie Ihren Bedürfnissen und Ihrem Datenverkehr entsprechen.

Contact

Let’s discuss how we can support your journey.