Throttling, caching og brugsplaner
Beskyt backend-systemer med throttling-grænser for burst og stabil tilstand, aktivér caching af svar, og opret brugsplaner med API-nøgler til partnere.
Throttling, caching og brugsplaner er en gratis Cloud & IT Cert Prep-lektion på CoddyKit. Dette er lektion 4 af 4. Du kan læse hele lektionen gratis nedenfor — og derefter øve dig praktisk i browseren med en indbygget kodeeditor og en AI-vejleder, der er tilgængelig døgnet rundt. Den er en del af læringsforløbet i Cloud & IT Cert Prep, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Cloud & IT Cert Prep-kurset indeholder 4 lektioner i alt.
Hvorfor begrænsning af kald er afgørende
Uden begrænsning af kald kunne en enkelt fejlbehæftet klient eller en trafikstigning overbelaste dine backend-tjenester – Lambda-samtidighed, RDS-forbindelser eller downstream-API'er. Begrænsning af kald i API Gateway begrænser antallet af anmodninger pr. sekund og tillader korte bursts over den stabile hastighed. Begrænsede anmodninger modtager straks et 429 Too Many Requests-svar, uden at anmodningen når din backend, så downstream-ressourcer beskyttes mod overbelastning.
Begrænsning af kald på konto- og stage-niveau
Begrænsning af kald fungerer på flere niveauer. Grænsen på kontoniveau er 10.000 anmodninger pr. sekund (RPS) med et burst på 5.000 anmodninger (en blød grænse, der kan forhøjes). På stage-niveau kan du angive en standardhastighed for begrænsning af kald (RPS) og en burst-grænse, der gælder for alle metoder i staget. På metodeniveau kan du tilsidesætte stage-standarderne for bestemte endpoints – du kan f.eks. give et læsetungt GET-endpoint en højere hastighedsgrænse end et skrivetungt POST-endpoint.
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'Token bucket-algoritmen
API Gateway bruger en token bucket-algoritme til at begrænse kald. Tokens samles i en bucket op til burst-grænsen (den maksimale kapacitet her og nu). Hver anmodning bruger ét token. Tokens fyldes op med hastighedsgrænsen (den stabile RPS). Hvis bucket'en er tom, begrænses anmodningerne. Eksempel: burst=5000, rate=1000 RPS. I starten kan du håndtere 5000 samtidige anmodninger; bucket'en fyldes op med 1000 tokens pr. sekund. Det gør det muligt at absorbere korte trafikstigninger, samtidig med at de langsigtede hastighedsgrænser overholdes.
Caching af API Gateway-svar
Caching af svar (tilgængelig for REST API-stages) gemmer backend-svar i en cache, der administreres af API Gateway, så identiske anmodninger besvares fra cachen uden at ramme backenden. Det reducerer belastningen på backenden, sænker latenstiden og kan reducere omkostningerne til Lambda-kald betydeligt for læsetunge API'er. Cachen indekseres efter anmodningen (metode, sti, querystringer og headere afhængigt af konfigurationen). Cache-TTL'en kan konfigureres fra 0 til 3600 sekunder (standard: 300 sekunder).
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'Tilpasning af cache-nøgler
Som standard er cache-nøglen hele URL'en til anmodningen. Du kan tilpasse, hvilke elementer der bidrager til cache-nøglen: medtag bestemte parametre i forespørgselsstrengen (f.eks. pageSize, filter), men udelad irrelevante parametre (f.eks. tidsstempel). Du kan også medtage bestemte headere i cache-nøglen. Udelad følsomme headere fra cache-nøglen for at forhindre, at private data forurener delte cacheposter. Brug justering af cache-nøglen til at maksimere cache-træffere, samtidig med at forskellige logiske anmodninger får forskellige cachelagrede svar.
Ugyldiggørelse af cache
Klienter kan ugyldiggøre cachen for en bestemt anmodning ved at medtage headeren Cache-Control: max-age=0. Du kan også rydde hele stage-cachen fra konsollen eller API'et. Konfigurer, om klienter må ugyldiggøre cachen – begræns dette i produktion for at forhindre, at klienter med vilje omgår caching. Hvis du vil give udvalgte klienter tilladelse til at rydde cachen, skal du tilknytte en ressourcepolitik eller bruge en Lambda-authorizer, der kontrollerer, om den kaldende har tilladelse til at rydde cachen.
# Flush entire stage cache
aws apigateway flush-stage-cache \
--rest-api-id 'abc123' \
--stage-name 'prod'Brugsplaner: hastighedsgrænser pr. klient
En brugsplan definerer begrænsninger for hastighed og kvoter for en gruppe API-klienter. Knyt en API-stage til en brugsplan, og knyt derefter API-nøgler til planen. Hver API-nøgle håndhæver planens begrænsninger uafhængigt. Med brugsplaner kan du tilbyde adgang i niveauer: en Gratis-plan med 100 RPM/10.000 anmodninger pr. dag og en Pro-plan med 1.000 RPM/100.000 anmodninger pr. dag. Dette er modellen for API'er, der tjener penge, og partnerintegrationer, hvor forskellige klienter har brug for forskellige hastighedsgrænser.
# 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-nøgler og klientidentifikation
API-nøgler er uigennemsigtige teksttokens, som klienter medtager i anmodningsheaderen x-api-key. API Gateway validerer nøglen og knytter anmodningen til den tilsvarende brugsplan. API-nøgler er IKKE en sikkerhedsmekanisme – de identificerer kun klienter med henblik på hastighedsbegrænsning og kvoter. Af sikkerhedshensyn skal du altid kombinere API-nøgler med korrekt godkendelse (IAM, Lambda-authorizer eller Cognito). API-nøgler, der ikke er knyttet til en brugsplan, får ikke anvendt hastighedsbegrænsninger.
# 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_KEYKvotegrænser i brugsplaner
Ud over hastighedsbegrænsninger pr. sekund understøtter brugsplaner kvotegrænser: et maksimalt antal anmodninger over en tidsperiode (DAY, WEEK eller MONTH). Når en klient har opbrugt sin kvote, returnerer efterfølgende anmodninger 429, indtil kvoten nulstilles. Kvotegrænser er nyttige til håndhævelse af gratisniveauer, forebyggelse af misbrug af API'er og tilpasning af API-forbrug til fakturering. Kvtotællere er eventual consistent, så en klient kan overskride sin kvote en smule, før den bliver blokeret.
CloudWatch-målinger til hastighedsbegrænsning og caching
Overvåg API Gateway's tilstand med disse CloudWatch-målinger:
- Count: samlet antal API-kald
- 4XXError: klientfejl, herunder 429-fejl på grund af hastighedsbegrænsning
- 5XXError: backend-fejl
- Latency: samlet tid for anmodningen
- IntegrationLatency: ventetid på backend
- CacheHitCount / CacheMissCount: cacheeffektivitet
Indstil alarmer på stigninger i 4XXError for at registrere problemer med hastighedsbegrænsning, før de påvirker brugerne, og på CacheMissCount for at identificere problemer med cachekonfigurationen.
Hvornår skal caching aktiveres i stedet for hastighedsbegrænsning?
Brug caching til API'er med mange læseoperationer, hvor svarene sjældent ændres – opslag i produktkataloger, referencedata og statiske konfigurationer. Caching er uhensigtsmæssigt for brugerspecifikke eller meget dynamiske data. Brug altid hastighedsbegrænsning – også for interne API'er – for at beskytte backend-tjenester mod overbelastning. Kombiner begge dele: cachelagr almindelige data for at reducere belastningen på backend, og brug stramme hastighedsbegrænsninger for at forhindre, at en enkelt klient dominerer API'et. Til SAA-C03-eksamen reducerer caching omkostninger og svartid, mens hastighedsbegrænsning sikrer tilgængelighed.
Hurtigt tjek
Test din forståelse af AWS Solutions Architect-koncepterne (SAA-C03) fra denne lektion.
Opsummering af lektionen
I denne lektion har du lært, at hastighedsbegrænsning på konto-, stage- og metodeniveau beskytter backends ved hjælp af en token bucket-algoritme med konfigurerbare hastigheder og burst-grænser, at svarcaching gemmer backend-svar i konfigurerbare TTL-perioder for at reducere backend-belastning og svartid for endpoints med mange læseoperationer, og at brugsplaner med API-nøgler håndhæver hastigheder og kvoter pr. klient, så der kan tilbydes adgang i niveauer til partner- og offentlige API'er. Næste emne er ECS-klynger, opgavedefinitioner og tjenester til containeriserede arbejdsbelastninger.
Lær Cloud & IT Cert Prep med en AI-underviser — gratis
Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.
- Kurser
- 150
- Lektioner
- 600
Ofte stillede spørgsmål
Er lektionen “Throttling, caching og brugsplaner” gratis?
Ja — hele teksten til “Throttling, caching og brugsplaner” kan læses gratis her på nettet. Hvis du vil øve dig interaktivt med en indbygget kodeeditor og en AI-vejleder døgnet rundt og få adgang til resten af Cloud & IT Cert Prep-kurset, skal du opgradere til CoddyKit PRO. Cloud & IT Cert Prep-kurset indeholder 4 lektioner i alt.
Hvad lærer jeg i “Throttling, caching og brugsplaner”?
Beskyt backend-systemer med throttling-grænser for burst og stabil tilstand, aktivér caching af svar, og opret brugsplaner med API-nøgler til partnere. Du øver dig i Cloud & IT Cert Prep med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.
Skal jeg have erfaring for at begynde på Cloud & IT Cert Prep?
Der kræves ingen tidligere erfaring. Cloud & IT Cert Prep på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 4 af 4.
Hvor lang tid tager lektionen “Throttling, caching og brugsplaner”?
De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.
Kan jeg skrive og køre kode i denne Cloud & IT Cert Prep-lektion?
Ja. Alle Cloud & IT Cert Prep-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.
Alle lektioner i dette kursus
- REST API vs HTTP API vs WebSocket API
- Integrationer: Lambda, HTTP og Mock
- Autorisation: IAM, Lambda Authorizers og Cognito
- Throttling, caching og brugsplaner