AWS Solutions Architect · Les

Throttling, caching en usage plans

Bescherm backends met throttlinglimieten voor piek- en normaal verkeer, schakel response caching in en maak usage plans met API-keys voor partners.

Les 4 van 413 stappen

Throttling, caching en usage plans is een gratis AWS Solutions Architect-les op CoddyKit. Dit is les 4 van 4. Je kunt 3 lessen uit dit leerpad gratis volledig lezen — daarna ontgrendelt CoddyKit PRO alle lessen, plus praktische oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject AWS Solutions Architect. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus AWS Solutions Architect bevat in totaal 4 lessen.

Waarom beperking van aanvragen essentieel is

Zonder beperking van aanvragen zou één slecht functionerende client of een verkeerspiek je backendservices kunnen overbelasten, zoals de gelijktijdigheid van Lambda, RDS-verbindingen of downstream-API's. Beperking van aanvragen in API Gateway beperkt het aantal aanvragen per seconde en staat korte pieken boven de stabiele snelheid toe. Afgeremde aanvragen ontvangen onmiddellijk een antwoord 429 Too Many Requests, zonder dat de aanvraag je backend bereikt. Zo worden downstreambronnen beschermd tegen overbelasting.

Beperking op account- en stageniveau

Beperking van aanvragen werkt op meerdere niveaus. De accountlimiet is 10.000 aanvragen per seconde (RPS), met een piek van 5.000 aanvragen (een zachte limiet die kan worden verhoogd). Op stageniveau kun je een standaardsnelheid (RPS) en pieklimiet instellen die voor alle methoden in de stage gelden. Op methodeniveau kun je de standaardwaarden van de stage overschrijven voor specifieke eindpunten, bijvoorbeeld door een GET-eindpunt met veel leesbewerkingen een hogere limiet te geven dan een POST-eindpunt met veel schrijfbewerkingen.

aws apigateway update-stage \
  --rest-api-id 'abc123' \
  --stage-name 'prod' \
  --patch-operations \
    'op=replace,path=/*/*/throttling/rateLimit,value=1000' \
    'op=replace,path=/*/*/throttling/burstLimit,value=2000'

Algoritme met tokenbucket

API Gateway gebruikt voor het beperken van aanvragen een algoritme met een tokenbucket. Tokens worden verzameld in een bucket tot aan de pieklimiet (de maximale directe capaciteit). Elke aanvraag verbruikt één token. Tokens worden aangevuld met de snelheidslimiet (de stabiele RPS). Als de bucket leeg is, worden aanvragen afgeremd. Voorbeeld: burst=5000, rate=1000 RPS. Bij de start kun je 5000 gelijktijdige aanvragen verwerken; de bucket wordt aangevuld met 1000 tokens per seconde. Zo kun je korte verkeerspieken opvangen en tegelijkertijd langetermijnlimieten voor de snelheid afdwingen.

Caching van API Gateway-antwoorden

Antwoordcaching (beschikbaar voor REST API-stages) slaat backendantwoorden op in een door API Gateway beheerde cache, zodat identieke aanvragen vanuit de cache worden geleverd zonder de backend aan te roepen. Dit verlaagt de belasting van de backend en de latentie, en kan de kosten van Lambda-aanroepen voor API's met veel leesbewerkingen aanzienlijk verlagen. De cache gebruikt de aanvraag als sleutel (methode, pad, querystrings en headers volgens de configuratie). De TTL van de cache kan worden ingesteld van 0 tot 3600 seconden (standaard 300 seconden).

aws apigateway update-stage \
  --rest-api-id 'abc123' \
  --stage-name 'prod' \
  --patch-operations \
    'op=replace,path=/cacheClusterEnabled,value=true' \
    'op=replace,path=/cacheClusterSize,value=0.5' \
    'op=replace,path=/*/*/caching/ttlInSeconds,value=300'

Aanpassen van cachesleutels

Standaard bestaat de cachesleutel uit de volledige URL van het verzoek. Je kunt aanpassen welke elementen bijdragen aan de cachesleutel: neem specifieke queryparameters op (bijvoorbeeld pageSize en filter), maar sluit irrelevante parameters uit (bijvoorbeeld timestamp). Je kunt ook specifieke headers opnemen in de cachesleutel. Sluit gevoelige headers uit van de cachesleutel om te voorkomen dat privégegevens gedeelde cache-items vervuilen. Stem de cachesleutel af om het aantal cachetreffers te maximaliseren en er tegelijkertijd voor te zorgen dat verschillende logische verzoeken verschillende gecachte antwoorden krijgen.

Cache ongeldig maken

Clients kunnen de cache voor een specifiek verzoek ongeldig maken door de header Cache-Control: max-age=0 op te nemen. Je kunt de volledige cache van een fase ook leegmaken via de console of API. Configureer of clients de cache ongeldig mogen maken. Beperk dit in productie om te voorkomen dat clients caching opzettelijk omzeilen. Om selectief toestemming te geven voor het leegmaken, koppel je een resourcebeleid of gebruik je een Lambda-authoriser die controleert of de aanroeper toestemming heeft om de cache leeg te maken.

# Flush entire stage cache
aws apigateway flush-stage-cache \
  --rest-api-id 'abc123' \
  --stage-name 'prod'

Gebruiksplannen: snelheidslimieten per client

Een Usage Plan definieert vertragingslimieten en quotumlimieten voor een groep API-clients. Koppel een API-fase aan een gebruiksplan en koppel vervolgens API keys aan het plan. Elke API-sleutel dwingt de limieten van het plan onafhankelijk af. Met gebruiksplannen kun je gelaagde toegang aanbieden: een Free-plan met 100 RPM/10.000 verzoeken per dag en een Pro-plan met 1.000 RPM/100.000 verzoeken per dag. Dit model wordt gebruikt voor API's waarvoor betaling vereist is en voor integraties met partners waarbij verschillende clients verschillende snelheidslimieten nodig hebben.

# Create a usage plan
aws apigateway create-usage-plan \
  --name 'ProTier' \
  --throttle 'rateLimit=1000,burstLimit=2000' \
  --quota 'limit=100000,period=DAY' \
  --api-stages 'apiId=abc123,stage=prod'

API-sleutels en clientidentificatie

API keys zijn ondoorzichtige tekenreekstokens die clients opnemen in de requestheader x-api-key. API Gateway valideert de sleutel en koppelt het verzoek aan het bijbehorende gebruiksplan. API-sleutels zijn GEEN beveiligingsmechanisme: ze identificeren clients alleen voor vertragings- en quotumdoeleinden. Combineer API-sleutels voor beveiliging altijd met de juiste autorisatie (IAM, Lambda-authoriser of Cognito). Op API-sleutels die niet aan een gebruiksplan zijn gekoppeld, worden geen vertragingslimieten toegepast.

# Create an API key and associate with usage plan
aws apigateway create-api-key \
  --name 'PartnerABC-Key' \
  --enabled

aws apigateway create-usage-plan-key \
  --usage-plan-id 'uvw321' \
  --key-id 'xyz789' \
  --key-type API_KEY

Quotumlimieten in gebruiksplannen

Naast vertragingssnelheden per seconde ondersteunen gebruiksplannen quotumlimieten: een maximumaantal verzoeken gedurende een bepaalde periode (DAY, WEEK of MONTH). Zodra een client het quotum heeft opgebruikt, retourneren volgende verzoeken 429 totdat het quotum wordt gereset. Quotumlimieten zijn nuttig om gratis gebruik af te dwingen, misbruik van de API te voorkomen en API-gebruik af te stemmen op facturering. Quotumtellers zijn uiteindelijk consistent, waardoor een client het quotum licht kan overschrijden voordat deze wordt geblokkeerd.

CloudWatch-metrieken voor vertraging en caching

Bewaak de status van API Gateway met deze CloudWatch-metrieken:

  • Count: totaal aantal API-aanroepen
  • 4XXError: clientfouten, waaronder vertragingen met statuscode 429
  • 5XXError: fouten in de backend
  • Latency: totale verwerkingstijd van het verzoek
  • IntegrationLatency: tijd die op de backend wordt gewacht
  • CacheHitCount / CacheMissCount: effectiviteit van de cache

Stel alarmen in voor pieken in 4XXError om vertragingsproblemen te detecteren voordat ze gebruikers raken, en voor CacheMissCount om problemen met de cacheconfiguratie te identificeren.

Wanneer caching of vertraging inschakelen

Gebruik caching voor API's met voornamelijk leesbewerkingen waarvan de antwoorden zelden veranderen, zoals zoekopdrachten voor productcatalogi, referentiegegevens en statische configuraties. Caching werkt averechts voor gebruikersspecifieke of zeer dynamische gegevens. Gebruik throttling altijd, ook voor interne API's, om backendservices tegen overbelasting te beschermen. Combineer beide: cache veelgebruikte gegevens om de belasting van de backend te verlagen en pas strenge vertraging toe om te voorkomen dat één client de API overheerst. Voor het SAA-C03-examen verlaagt caching de kosten en latentie; throttling waarborgt de beschikbaarheid.

Korte controle

Test je begrip van de concepten uit AWS Solutions Architect (SAA-C03) in deze les.

Samenvatting van de les

In deze les heb je geleerd dat throttling op account-, fase- en methodeniveau backends beschermt met behulp van een token-bucketalgoritme met instelbare snelheids- en burstlimieten, dat Response Caching backendantwoorden gedurende instelbare TTL's opslaat om de backendbelasting en latentie voor endpoints met veel leesbewerkingen te verlagen, en dat Usage Plans with API Keys snelheidslimieten en quota per client afdwingen, waardoor gelaagde toegangscontrole voor partner- en openbare API's mogelijk wordt. Hierna verkennen we ECS-clusters, taakdefinities en services voor workloads met containers.

Gratis beginnen

Leer AWS Solutions Architect met een AI-tutor — gratis

Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.

Cursussen
30
Lessen
120

Veelgestelde vragen

Is de les “Throttling, caching en usage plans” gratis?

Ja — je kunt hier op het web alle 3 lessen van het leerpad AWS Solutions Architect, waaronder “Throttling, caching en usage plans”, gratis volledig lezen. Daarna ontgrendelt CoddyKit PRO alle lessen, plus interactieve oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. De cursus AWS Solutions Architect bevat in totaal 4 lessen.

Wat leer ik in “Throttling, caching en usage plans”?

Bescherm backends met throttlinglimieten voor piek- en normaal verkeer, schakel response caching in en maak usage plans met API-keys voor partners. Je oefent met AWS Solutions Architect door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.

Heb ik ervaring nodig om met AWS Solutions Architect te beginnen?

Ervaring vooraf is niet nodig. AWS Solutions Architect op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 4 van 4.

Hoe lang duurt de les “Throttling, caching en usage plans”?

De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.

Kan ik code schrijven en uitvoeren in deze les over AWS Solutions Architect?

Ja. Elke les over AWS Solutions Architect bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.

Alle lessen in deze cursus

  1. REST API versus HTTP API versus WebSocket API
  2. Integraties: Lambda, HTTP en Mock
  3. Autorisatie: IAM, Lambda Authorizers en Cognito
  4. Throttling, caching en usage plans
← Terug naar AWS Solutions Architect