CloudCostCompare
EN

Guides

NoSQL pricing: DynamoDB vs Cosmos DB vs Firestore

By Rohit Athaide · Published 4 Nov 2026

Short answer: managed NoSQL databases bill by the work they do, not by a server size. That makes them cheap to start and hard to predict until you know your access pattern. Count reads, writes, item size and stored data, then price them in the mode that fits your traffic.

Key points

  • Billing is per read and write, with item size and consistency affecting the count.
  • Two modes: on-demand per operation, and provisioned capacity per hour.
  • Storage includes indexes.
  • Replication to other regions multiplies write cost.
  • A relational database may be easier to predict if your data fits.

Which services are equivalent?

Cloud Service Vendor page
AWS DynamoDB DynamoDB pricing
Azure Cosmos DB Cosmos DB pricing
Google Cloud Firestore Firestore pricing
Oracle Oracle NoSQL Database Cloud Service NoSQL pricing

They are equivalent as managed document or key-value databases. Query features differ, so check yours against each before comparing price.

What are you billed for?

  1. Reads and writes. Counted in operations or in capacity units. Read size, consistency level and item size change how many units one call uses.
  2. Throughput. In provisioned mode you reserve a rate and pay for it all hour. In on-demand mode you pay per operation.
  3. Storage. Gigabytes held per month, including indexes.
  4. Extras. Backups, replication to other regions, and data out.

What does a worked example look like?

Made-up round numbers to show the method, not real prices or real unit sizes. An app does 50 reads and 10 writes per second on average on items of 4 KB. One read unit covers a 4 KB read and one write unit covers a 1 KB write.

  1. Writes per second in units: 10 writes x 4 KB / 1 KB = 40 write units per second.
  2. Reads per second in units: 50 x 1 = 50 read units per second.
  3. Per month (2,592,000 s): writes = 103,680,000 units, reads = 129,600,000 units.
Mode Calculation (made up) Monthly cost
On-demand 103.68 million writes x 1.25 per million + 129.6 million reads x 0.25 per million 129.60 + 32.40 = 162.00
Provisioned 40 write units x 730 h x 0.00065 + 50 read units x 730 h x 0.00013 18.98 + 4.75 = 23.73

Provisioned looks seven times cheaper, but only if traffic really is flat. Real traffic peaks, so you provision for the peak: at 4 times the average, provisioned is 94.92, still below on-demand. If the peak is 10 times the average, provisioned reaches 237.30 and on-demand wins. The break-even is set by how peaky your traffic is.

What makes the bill grow?

  • Large items. A bigger item uses more units per read or write.
  • Strong consistency, which can double the read cost on some services.
  • Full scans. Reading everything to find a few items.
  • Many secondary indexes. Each one is written to on every change.
  • Replication to several regions, which multiplies write cost.

Which mistakes are common?

  • Choosing provisioned capacity before knowing the traffic shape.
  • Storing large blobs in the database instead of object storage.
  • Using scans where a key lookup would do.
  • Adding indexes “just in case”.

Decision checklist

  • What are reads and writes per second at average and peak?
  • How large is a typical item?
  • Is traffic flat or spiky?
  • Would a relational database fit?

Next steps

Count reads and writes per second at average and peak, item size and total stored data, then price each service from its vendor page. See serverless or servers for thinking about pay-per-use. If a relational database fits your data, compare with managed PostgreSQL and managed vs self-hosted.

Frequently asked questions

How is DynamoDB priced?

By reads and writes, either on demand per request or provisioned as capacity per hour, plus storage and optional features such as backups and replication. Item size changes how many units a request uses.

What is a request unit in Cosmos DB?

A normalized measure of the work a request needs. Reads, writes and queries each consume units based on item size, indexing and query complexity, and you pay for units provisioned or consumed.

Is on-demand or provisioned cheaper?

On-demand costs more per operation with no idle charge and suits new, spiky or unknown traffic. Provisioned costs less per operation when well used and wastes money when set too high.

What makes NoSQL bills grow?

Large items, strong consistency, full scans, many secondary indexes and replication to several regions.

Should I use NoSQL or a relational database?

Use the one that fits your data and queries. If a relational database fits, compare with managed PostgreSQL, since its cost is more predictable.