Web Analytics Made Easy - Statcounter
BaseKV
Sign InSign Up
Back to Articles

DynamoDB On-Demand Pricing: Hidden Costs Explained

DynamoDB's free tier looks generous, until it isn't. We break down the read/write unit costs and show where the surprise bills come from.

BaseKV Team5 min read
dynamodbpricingaws

"Serverless means only paying for what you use." This is the slogan for Amazon DynamoDB. And for true "scale-to-zero" apps, it is true. But for steady production workloads, DynamoDB On-Demand pricing can hide some nasty surprises.

How the Pricing Works

  1. Reads (RRU): $0.25 per million.
  2. Writes (WRU): $1.25 per million.

This sounds cheap. 1 million writes is a lot, right?

The Hidden Multipliers

1. The 1KB Ceiling

DynamoDB rounds up every item to the nearest 4KB (for WCUs in provisioned) or 1KB (for On-Demand). If your user session object is 1.1KB, you pay for 2 KB. You just doubled your bill. If you have a 5KB JSON blob, you pay for 5 units.

2. Transactional Overhead

Using TransactWriteItems (for ACID compliance) costs 2x the write units. Using strongly consistent reads costs 2x the read units.

3. The "Scan" Disaster

A junior developer writes this code: await docClient.scan({ TableName: 'Users' }); This reads EVERY item in the table. If you have 1 million users, that one API call just cost you $0.25. If that API call is on your homepage... you are bankrupt by morning.

Comparing to Flat-Rate Key-Value

For many use cases (session store, cache, simple profiles), a predictable Key-Value store is safer. With BaseKV, you pay for storage + transfer tiers.

  • 1 Million Requests: Same price.
  • 10 Million Requests: Same price (within IOPS limits).
  • Scan Protection: You shouldn't be scanning a KV store anyway, but if you do, it hits your disk I/O, not your wallet directly.

Conclusion

DynamoDB is amazing technology. But its pricing model requires you to be a DynamoDB expert to avoid overspending. If you want predictable costs, simpler is often better.

See the difference. Check BaseKV pricing.