Provisioneret kapacitet vs On-Demand-kapacitet
Vælg mellem provisioneret gennemløb med automatisk skalering og On-Demand-tilstand ud fra trafikforudsigelighed og omkostninger.
Provisioneret kapacitet vs On-Demand-kapacitet er en gratis AWS Solutions Architect-lektion på CoddyKit. Dette er lektion 2 af 4. Du kan læse alle 3 lektioner i dette læringsspor gratis i deres fulde længde — derefter låser CoddyKit PRO alle lektioner op samt praktiske øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Den er en del af læringsforløbet i AWS Solutions Architect, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. AWS Solutions Architect-kurset indeholder 4 lektioner i alt.
DynamoDB-kapacitetsenheder forklaret
DynamoDB måler gennemstrømning i Read Capacity Units (RCU'er) og Write Capacity Units (WCU'er). Én RCU giver mulighed for én stærkt konsistent læsning pr. sekund (eller to eventualt konsistente læsninger) for elementer på op til 4 KB. Én WCU giver mulighed for én skrivning pr. sekund for elementer på op til 1 KB.
For større elementer skaleres prisen proportionalt: En skrivning på 10 KB koster 10 WCU'er, og en stærkt konsistent læsning på 10 KB koster 3 RCU'er (ceil(10/4) = 3). Det er afgørende at forstå kapacitetsenheder for at kunne anslå omkostninger og diagnosticere throttlingsfejl i ProvisionedThroughputExceededException.
Kapacitetstilstand: klargjort
I tilstanden Provisioned Capacity angiver du det nøjagtige antal RCU'er og WCU'er, som din tabel skal understøtte. DynamoDB reserverer denne gennemstrømning og opkræver betaling for den, uanset om du bruger den eller ej. Hvis din applikation overskrider den klargjorte kapacitet, bliver anmodninger begrænset og returnerer en ProvisionedThroughputExceededException.
Tilstanden klargjort er ideel til arbejdsbelastninger med forudsigelig og stabil trafik. Prisen pr. enhed er lavere end i tilstanden On-Demand, og du kan reducere omkostningerne yderligere ved at købe DynamoDB Reserved Capacity (1- eller 3-årige bindinger med op til 76 % rabat).
# Create a table with provisioned capacity
aws dynamodb create-table \
--table-name Products \
--attribute-definitions AttributeName=ProductId,AttributeType=S \
--key-schema AttributeName=ProductId,KeyType=HASH \
--provisioned-throughput ReadCapacityUnits=100,WriteCapacityUnits=50Kapacitetstilstand: efter behov
I tilstanden On-Demand skalerer DynamoDB automatisk for at håndtere ethvert trafikniveau uden kapacitetsplanlægning. Du betaler pr. anmodning: for hver RRU (læseanmodningsenhed) og WRU (skriveanmodningsenhed), der faktisk forbruges. Der er ingen klargjort kapacitet, der skal administreres, og ingen begrænsning på grund af klargjorte grænser.
Tilstanden On-Demand er ideel til: uforudsigelige arbejdsbelastninger eller arbejdsbelastninger med pludselige trafikstigninger, nye tabeller med ukendt trafik samt udviklings- og testmiljøer med sjælden adgang. Prisen pr. anmodning er højere end i tilstanden klargjort, så til stabile arbejdsbelastninger med høj gennemstrømning er tilstanden klargjort mere økonomisk.
# Create a table in on-demand mode
aws dynamodb create-table \
--table-name Events \
--attribute-definitions AttributeName=EventId,AttributeType=S \
--key-schema AttributeName=EventId,KeyType=HASH \
--billing-mode PAY_PER_REQUESTSkift mellem kapacitetstilstande
Du kan når som helst skifte en tabel mellem tilstandene Provisioned og On-Demand ved hjælp af konsollen eller CLI. Du kan dog kun skifte tilstand én gang hver 24. time. Efter skift til On-Demand beholder tabellen den tidligere maksimale klargjorte kapacitet som sit indledende gennemstrømningsniveau. Det beskytter mod øjeblikkelig begrænsning, hvis trafikken allerede er høj.
En almindelig strategi er at bruge On-Demand under den første lancering, når trafikmønstrene er ukendte, og derefter skifte til Provisioned med Auto Scaling, når trafikken bliver forudsigelig, så omkostningerne reduceres.
# Switch a table to on-demand billing mode
aws dynamodb update-table \
--table-name Products \
--billing-mode PAY_PER_REQUESTAutomatisk skalering af DynamoDB i tilstanden klargjort
DynamoDB's Auto Scaling justerer automatisk dine klargjorte RCU'er og WCU'er som reaktion på den faktiske trafik. Du angiver en målprocent for udnyttelse (f.eks. 70 %) samt et interval for minimums- og maksimumskapacitet. En politik for Application Auto Scaling overvåger tabellens forbrugte kapacitet og justerer den klargjorte kapacitet for at fastholde måludnyttelsen.
Auto Scaling reagerer på vedvarende ændringer i trafikken og kan bruge nogle minutter på at skalere op. Den håndterer ikke pludselige trafikstigninger godt – i sådanne tilfælde skal du enten forvarme kapaciteten manuelt eller bruge tilstanden On-Demand i stedet.
# Register table as an auto scaling target
aws application-autoscaling register-scalable-target \
--service-namespace dynamodb \
--resource-id 'table/Products' \
--scalable-dimension dynamodb:table:ReadCapacityUnits \
--min-capacity 10 \
--max-capacity 1000Burstkapacitet
DynamoDB gemmer op til 5 minutters ubrugt klargjort kapacitet som burstkapacitet. Når trafikken i din tabel kortvarigt overstiger det klargjorte niveau, trækker DynamoDB på burstpuljen for at håndtere de ekstra anmodninger uden begrænsning. Når burstpuljen er opbrugt, bliver efterfølgende overskydende anmodninger begrænset.
Burstkapacitet er en kortvarig buffer og ikke en erstatning for korrekt kapacitetsplanlægning. Overvåg CloudWatch-metrikkerne ConsumedReadCapacityUnits og ConsumedWriteCapacityUnits for at opdage, hvornår din arbejdsbelastning konsekvent bruger burstkapacitet, og justér den klargjorte gennemstrømning derefter.
Begrænsning og fejlhåndtering
Når den klargjorte kapacitet er overskredet (og burstkapaciteten er opbrugt), returnerer DynamoDB ProvisionedThroughputExceededException. AWS SDK'erne indeholder indbygget genforsøgslogik med eksponentiel backoff og jitter, som automatisk forsøger begrænsede anmodninger igen.
Hvis du vil diagnosticere begrænsning, skal du kontrollere CloudWatch-metrikkerne SystemErrors og ThrottledRequests. Hvis bestemte partitionsnøgler begrænses, mens den samlede udnyttelse af tabellen er lav, har du et problem med en varm partition – omdesign partitionsnøglen, tilføj en sorteringsnøgle, eller brug skriveopdeling.
Estimering af kapacitetskrav
Sådan estimerer du kapaciteten til tilstanden Provisioned:
- Beregn maksimalt antal skrivninger pr. sekund × gennemsnitlig elementstørrelse / 1 KB (rundet op) = nødvendige WCU'er
- Beregn maksimalt antal læsninger pr. sekund × gennemsnitlig elementstørrelse / 4 KB (rundet op) = nødvendige RCU'er (stærkt konsistente); halver resultatet for eventualt konsistente læsninger
- Tilføj 20-30 % margen over maksimum for at absorbere stigninger, før burstkapaciteten er opbrugt
Eksempel: 1.000 skrivninger/sek. af elementer på 2 KB = 2.000 WCU'er. 5.000 læsninger/sek. af elementer på 8 KB (eventualt konsistente) = ceil(8/4) × 5.000 / 2 = 5.000 RCU'er.
Reserveret kapacitet til reduktion af omkostninger
DynamoDB Reserved Capacity giver dig mulighed for at købe et fast antal RCU'er og WCU'er for en periode på 1 eller 3 år og betale på forhånd for at få en betydelig rabat (op til 76 %) i forhold til On-Demand-priser. Reserveret kapacitet gælder for alle klargjorte tabeller i en Region og anvendes automatisk på dine timebaserede gebyrer.
Reserveret kapacitet gælder kun for tilstanden Provisioned – du kan ikke bruge den sammen med tilstanden On-Demand. Det er den bedste mulighed for omkostningsbesparelser ved stabile, forudsigelige arbejdsbelastninger, som du med sikkerhed kan forudsige over 1-3 år.
Sammenligning af tilstande: vejledning til eksamensvalg
Brug denne vejledning, når du skal vælge kapacitetstilstand i spørgsmål til SAA-C03:
- On-Demand: uforudsigelig trafik, ny applikation, sjælden adgang, trafik med pludselige stigninger eller når du ønsker ingen kapacitetsadministration
- Provisioned: ensartet og forudsigelig trafik, fokus på omkostninger, villighed til at administrere kapacitet og mulighed for rabatter på Reserved Capacity
- Provisioned + Auto Scaling: forudsigeligt grundniveau med en vis variation, hvor du ønsker automatisk justering uden manuelle ændringer
På eksamen peger nøgleord som 'spiky', 'unpredictable' eller 'minimal operational overhead' på On-Demand, mens 'steady traffic' eller 'cost optimisation' peger på Provisioned.
Adaptiv kapacitet
DynamoDB's Adaptive Capacity omfordeler automatisk gennemstrømning fra kolde partitioner til varme partitioner i realtid. Hvis én partitionsnøgle modtager mere trafik end dens tildelte andel, låner den adaptive kapacitet gennemstrømning fra underudnyttede partitioner for at håndtere den varme partition – så længe den samlede tabelkapacitet ikke overskrides.
Adaptiv kapacitet er altid aktiveret og kræver ingen konfiguration. Den reducerer begrænsning af varme partitioner ved moderat ujævne adgangsmønstre. Ved stærkt skæve arbejdsbelastninger (f.eks. når én partitionsnøgle modtager 90 % af trafikken) er adaptiv kapacitet ikke tilstrækkelig – du skal omdesigne partitionsnøglen eller bruge skriveopdeling.
Hurtig kontrol
Afprøv din forståelse af AWS Solutions Architect (SAA-C03)-begreberne fra denne lektion.
Opsummering af lektionen
I denne lektion lærte du, at tilstanden Provisioned angiver faste RCU'er/WCU'er til forudsigelige arbejdsbelastninger til en lavere pris, at tilstanden On-Demand skalerer automatisk ved uforudsigelig trafik til en højere pris pr. anmodning, og at Auto Scaling justerer den klargjorte kapacitet baseret på målprocenter for udnyttelse. Næste emne er Global Secondary Indexes og Local Secondary Indexes til alternative forespørgselsmønstre.
Lær AWS Solutions Architect 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
- 30
- Lektioner
- 120
Ofte stillede spørgsmål
Er lektionen “Provisioneret kapacitet vs On-Demand-kapacitet” gratis?
Ja — alle 3 lektioner i læringssporet AWS Solutions Architect, inklusive “Provisioneret kapacitet vs On-Demand-kapacitet”, kan læses gratis i deres fulde længde her på webstedet. Derefter låser CoddyKit PRO alle lektioner op samt interaktive øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. AWS Solutions Architect-kurset indeholder 4 lektioner i alt.
Hvad lærer jeg i “Provisioneret kapacitet vs On-Demand-kapacitet”?
Vælg mellem provisioneret gennemløb med automatisk skalering og On-Demand-tilstand ud fra trafikforudsigelighed og omkostninger. Du øver dig i AWS Solutions Architect 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å AWS Solutions Architect?
Der kræves ingen tidligere erfaring. AWS Solutions Architect 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 2 af 4.
Hvor lang tid tager lektionen “Provisioneret kapacitet vs On-Demand-kapacitet”?
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 AWS Solutions Architect-lektion?
Ja. Alle AWS Solutions Architect-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
- Tabeller, elementer og primærnøgler
- Provisioneret kapacitet vs On-Demand-kapacitet
- Globale og lokale sekundære indekser
- DynamoDB Streams og globale tabeller