Guide
DynamoDB cost calculator: on-demand vs provisioned
By Aman Singh · Published · 9 min read
This DynamoDB cost calculator estimates your monthly bill for the Standard table class in both capacity modes, on-demand and provisioned, from reads, writes, item size and stored data. Prices are the current US East (N. Virginia) rates from the AWS price list published on 2026-09-11, and the on-demand maths reproduces AWS's own pricing example to the cent.
Running it behind Lambda? AWS Lambda cost calculator →
Calculator
The defaults are AWS's own example (3.55 million 1 KB writes and strongly consistent reads, 27 GB stored), which costs $3.16 a month on-demand. For provisioned mode, set how much higher your peak traffic is than your average, because capacity has to cover the peak. The default of 21 matches the example's busiest day.
Provisioned mode is sized for the peak
On-demand per month
Provisioned per month
Provisioned is cheaper by $0.38 a month for this traffic. Standard table class, US East (N. Virginia) prices from the AWS price list of 2026-09-11. Excludes backups, streams, global tables and data transfer.
How DynamoDB counts reads and writes
Every read or write is converted into request units before it is priced. Two things change the count: the size of the item, and the kind of read or write. A 3 KB item and a 4 KB item cost the same to read; a 4 KB item and a 5 KB item do not. Keeping items small, or reading only the attributes you need through a projection, is the cheapest optimisation there is.
Current prices (US East)
| Item | Price |
|---|---|
| On-demand write request units | $0.625 per million |
| On-demand read request units | $0.125 per million |
| Provisioned write capacity unit (WCU) | $0.00065 per hour |
| Provisioned read capacity unit (RCU) | $0.00013 per hour |
| Storage | $0.25 per GB-month after the first 25 GB |
| Free tier | 25 GB storage, plus 25 WCU and 25 RCU in provisioned mode |
Source: AWS Price List for Amazon DynamoDB, US East (N. Virginia), published 2026-09-11. The provisioned free tier covers 25 WCU and 25 RCU for a whole month; on-demand request units are not part of it.
On-demand vs provisioned
| On-demand | Provisioned | |
|---|---|---|
| You pay for | Each read and write | Capacity per hour, used or not |
| Best for | New, spiky or unpredictable traffic | Steady traffic you can forecast |
| Scaling | Automatic | Auto scaling within limits you set |
| Throttling risk | Low | When traffic outruns capacity |
| Free tier | Storage only | 25 WCU + 25 RCU + storage |
A useful way to think about it: provisioned capacity bills every hour of the month, so it only pays off when you actually use most of what you provision. Traffic that is high during working hours and near zero at night usually favours on-demand, even at large volumes. Try both in the calculator with your real peak-to-average ratio.
Worked example
AWS's example application writes and reads 1 KB items with strong consistency: 10,000 of each per day for ten days, 2.5 million on one busy day, then 50,000 a day for the rest of the month. That totals 3.55 million writes and 3.55 million reads, with 27 GB stored.
| Line | Calculation | Cost |
|---|---|---|
| Writes | 3.55M WRU x $0.625 per million | $2.22 |
| Reads | 3.55M RRU x $0.125 per million | $0.44 |
| Storage | (27 GB - 25 GB free) x $0.25 | $0.50 |
| Total | $3.16 |
Now compare provisioned capacity sized for the busy day (about 21 times the average rate, so 29 write and 29 read units):
| Free tier | Provisioned | On-demand |
|---|---|---|
| This table gets the account's 25 free WCU and RCU | $2.78 | $3.16 |
| Other tables already use the free tier | $23.26 | $9.41 |
The free capacity is shared across the account, so the second row is the realistic one once you have a few tables. Paying all month for capacity that one day needs is what makes spiky traffic expensive in provisioned mode.
Costs the calculator leaves out
- Global secondary indexes. Every write to a table also writes to each index that includes the item, and those writes are billed too.
- Backups and restores. On-demand backups and point-in-time recovery are billed per GB.
- Streams and global tables. Reading change streams and replicating to other regions add their own charges.
- Data transfer. Data leaving the region is billed per GB.
How to reduce DynamoDB costs
- 1Use eventually consistent reads wherever a few hundred milliseconds of staleness is fine. They cost half.
- 2Keep items small. Move large blobs to S3 and store the key. Writes are billed per KB, so a 6 KB item costs six times a 1 KB one.
- 3Project only what you need into secondary indexes, and drop indexes nobody queries.
- 4Switch steady tables to provisioned with auto scaling once traffic is predictable, and keep spiky ones on-demand.
- 5Expire old data with TTL. Deletes by time-to-live are free and shrink storage.
- 6Cache hot reads in the application or a cache layer when the same items are read thousands of times.
Common questions
How much does DynamoDB cost per month?+
Is DynamoDB on-demand more expensive than provisioned?+
What is a read request unit?+
Is there a DynamoDB free tier?+
Need help with DynamoDB or the code around it?
Table design, access patterns and the serverless functions that use them are a big part of AWS serverless development. To estimate the compute side, use the AWS Lambda cost calculator.
Next steps
Keep reading
Need a hand with this?
Tell me what you are working on. Free scoping call, fixed quote within 48 hours.
Book a call