Cheaper option for this workload
$0
Pick a mode below
| Component | Provisioned | On-demand |
| Read capacity | $0 | $0 |
| Write capacity | $0 | $0 |
| GSI multiplier | $0 | $0 |
| Storage | $0 | $0 |
| PITR | $0 | $0 |
| Streams | $0 | $0 |
| Monthly total | $0 | $0 |
Provisioned: 0 RCU + 0 WCU at 60% util. On-demand: 0M reads + 0M writes/mo.
On-demand is cheaper below 14
percent sustained utilization. You modeled
60 percent.
If your DynamoDB bill looks high, check these first: on-demand
tables with predictable sustained traffic, GSIs nobody queries
anymore, strongly-consistent reads where eventual consistency
would do, PITR enabled on session or cache tables, cold history
tables still on Standard storage, and items larger than 1 KB on
write-heavy tables.
The math nobody publishes clearly
On-demand DynamoDB is $0.125 per million read request units and
$0.625 per million write request units. Provisioned is $0.00013
per RCU-hour and $0.00065 per WCU-hour. Across 730 hours,
on-demand is roughly 7x the per-request cost at full utilization.
Autoscaling changes the operational tradeoff by targeting 60 to
75 percent utilization and adjusting capacity every minute. The
full pattern is in
the on-demand vs provisioned tipping point.