Blog Azure Cloud Costs

How Azure Cosmos DB Pricing Works (and 7 Ways to Save)

Nowadays, all applications need to be fast, always online, and able to handle spikes during peak hours while managing growing volumes of data.

Azure Cosmos DB is one of Microsoft’s most popular globally distributed NoSQL databases as of today. 

Out of many of Microsoft’s PaaS Services, Cosmos DB meets these growing demands and provides modern apps with scalability, low latency and availability. However, the flexibility and features often complicate Azure Cosmos DB pricing.

In this article, we’ll show you exactly how Azure Cosmos DB pricing works, with some easy tips you haven’t heard of so far…

Niels Kroeze

Author

Niels Kroeze IT Business Copywriter

Reading time 12 minutes Published: 08 May 2025

What is Azure Cosmos DB?

Azure Cosmos DB is Microsoft’s fully managed database that supports NoSQL, relational, and vector data.

Azure Cosmos DB logo, a stylized globe with a ring, signifying a globally distributed, multi-model database service.

Cosmos DB is part of a broader range of database solutions within Azure, including PostgreSQL and MySQL.

That being said, it’s a fully managed service. That means you don’t need to worry about maintenance. Cosmos DB takes care of patching, updates, etc – you name it.

Global world map with interconnected green markers, showcasing Azure Cosmos DB's distributed network.

Unlike relational databases, Cosmos DB stores data in JSON-like documents rather than tables, allowing for a flexible schema. This flexibility means documents within the same database can have different structures, which is particularly advantageous for developers working with dynamic data models.

Although it’s a NoSQL database, you can still run SQL-like queries, making it accessible if you come from a relational database background. 

 

Use case 

Azure Cosmos DB supports complex querying and transaction processing across globally distributed data, with built-in database sharding and replication support.

This makes it ideal for applications requiring high availability and real-time data access across various regions

It’s recommended for multiple use cases; think of: 

  • IoT platforms 
  • Mobile and web apps 
  • Gaming backends 
  • Financial services systems 
  • Retail

 

How does Azure Cosmos DB Pricing work?  

To fully understand Azure Cosmos DB pricing, we must understand its architecture.

A Cosmos DB account contains multiple databases and containers. Your bill is the sum of all costs associated with every database and container under that account.  

NoSQL pricing formula for Azure Cosmos DB, showing database operations, consumed storage and backups, regions, and total price calculation.

The bill for Azure Cosmos DB is primarily driven by: 

  • Database operations (provisioned throughput or consumption throughput) 
  • Consumed storage (transactional and analytical) and backup  
  • The region configurations (number of regions) 

 

1. Compute pricing 

Compute costs in Azure Cosmos DB are billed via either Requests Units (RU/s) or virtual cores (vCores). Unlike in other databases where you might hit bottlenecks in memory, CPU, or disk IOPS, Cosmos DB simplifies performance measurement by abstracting all those factors into a single unit: Request Units (RU/s). 

Request Units (RU/s) 

Every operation you run on your Azure Cosmos DB (whether read, write, query or delete) consumes Request Units (RUs).

Database operations infographic showing variable Request Unit (RU) consumption for read, insert, upsert, delete, and query operations.

Each action has a specific RU charge tied to the resources it uses. 

What are Request Units (RU/s)? 

Request Units (RU/s) are rate-based currency for Cosmos DB operations (reads, writes and queries). More Request Units are charged for more demanding activities.

The cost of an operation in Azure Cosmos DB is consistent and predictable. Inserting, updating, or deleting a document of a given size will always consume the same number of RU/s. Similarly, running the same query over the same data will always result in the same RU charge. 

vCore pricing

For PostgreSQL and MongoDB (vCore) APIs, Azure Cosmos DB bills based on compute and memory per node. You’re charged according to the number and size of vCore nodes you provision. This model suits apps that need SQL-like features or high performance via PostgreSQL or MongoDB vCore. 

 

2. Storage pricing 

With Azure Cosmos DB, you’re billed monthly for the total GB of data stored in both transactional and analytical storage. Though, most costs derive from consumed storage (pay-as-you-go).

Stacked bar chart showing transactional and analytical GBs over time.

The more you store, the more you pay.

To simplify, if your database has 0 GB stored, the storage costs are essentially $0.

For most regions, the transaction price is $0.25 per GB per month.

Azure Cosmos DB pricing West
Consumed Storage Total GB Price
Transactional storage (row-oriented) 1 GB x N regions $0.25/month
Analytical storage (column-oriented) 1 GB x N regions $0.02/month

These prices apply to NoSQL, MongoDB (RU), Cassandra, Gremlin, and Table APIs

 

3. Bandwidth pricing 

Cosmos DB bandwidth pricing follows a pay-as-you-go model and depends.

Data going into (Ingress) Azure is free (as you can see below). 

Data Transfer In (Ingress)
  Price
Data transfer into any region Free
Data transfer within any region Free
Data transfer within an availability zone or between availability zones within any region Free

The same is not true, however, when data leaves Azure or moves between Azure regions (across regions and availability zones within Azure’s WAN).  

Then, the following transfer costs are incurred: 

Data Transfer Out (Egress)
  First 5 GB/Month Price
Data transfer from any region in Europe or North America to any other regions or any destination on the internet Free $0.05 per GB
Data transfer from any region in Asia or Oceania or Middle East and Africa to any other region or any destination on the internet (excluding China) Free $0.08 per GB
Data transfer from any region in South America to any other region within the same continent or across continents or any destination on the internet Free $0.16 per GB

 

Azure Cost Management Whitepaper

Want to save on your monthly Azure cost?

Get our Azure Cost Management Whitepaper! With the best tips, tricks, and background knowledge to optimise your cloud costs.

Download for free!

Azure Cosmos DB pricing tiers

For database operations, you can select between one of the two models for managing throughput: 

  • Provisioned Throughput 
  • Serverless (consumption-based)

Comparison of provisioned throughput and serverless throughput, shown as line graphs in separate windows.

 

Provisioned Throughput 

Provisioned throughput is the RU/s capacity you assign for database operations. Azure Cosmos DB’s provisioned throughput model gives you a set number of Request Units per second (RU/s), reserved in advance and charged by the hour. 

Example: if you provision 100 RU/s, you can consume up to 100 RUs every second. If your operations exceed this limit, they’re throttled and must retry in the next second once the RU bucket refills. 

Three icons representing 1 RU of provisioned throughput, measured per second.

Billing is based on the maximum RU/s you’ve provisioned during any given hour, regardless of actual usage. So, even if you don’t use the full capacity, you’re billed for the highest throughput allocated in that hour. 

 

Standard (Manual) Provisioned Throughput 

You can directly manage capacity with standard or so-called “manual” provisioned throughput. This can be manually configured on your container or database using the Azure portal

Use case: It’s often best for workloads with a consistent baseline traffic and require high-performance SLAs

The table below breaks down the prices of standard provisioned throughput: 

Standard Provisioned Throughput Total RU/s per hour  Price per 100 RU/s
Single-region write account without either multi-region data distribution or availability zones (AZ) 100 RU/s x 1 region $5.84/month
Single-region write account distributed across N selected Azure regions without AZ 100 RU/s x N regions $5.84/month
Single-region write account, distributed across N selected Azure regions without AZ and with Y regions with AZ (100 RU/s x N regions without AZ) + (100 RU/s x 1.25 x Y regions with AZ) $5.84/month
Multi-region write (formerly "multi-master") account with N regions* (with or without availability zones)* 100 RU/s x N regions $5.84/month

*Prices are for the region of West Europe

 

Autoscale Provisioned Throughput 

Autoscale adjusts RU/s automatically based on workload demand. You define a max limit (starting at 1,000 RU/s), and billing reflects the highest usage per hour between 10–100% of that limit.  

Line graph showing fluctuating performance data of Autoscale Provisioned Throughput, ranging from 450 to 4500 RU/S, with highlighted sections.

This removes the need for manual scaling and helps manage costs for unpredictable workloads.  

Look at the table below for the prices:

Autoscale provisioned throughput Total RU/s per hour Price per 100 RU/s Final Price
Single-region write account 100 RU/s x 1.5 x 1 region $5.84/month $8.76/month
Single-region write account with data distributed across multiple regions (with or without availability zones*) 100 RU/s x 1.5 x N regions $5.84/month $8.76/month/region
Multi-region write (formerly called multi-master) account distributed across multiple regions* 100 RU/s x N regions $11.68/month $11.68/month/region

*Prices are for the region of West Europe 

 

Note

Cosmos DB autoscale provisioned throughput rates are 50% more expensive than provision standard throughput. 

Formula for calculating database operations billing, showing standard and autoscale provisioned throughput, request units per second, number of Azure regions, total RU/s, billing rate, and total price.

Besides, Provisioned throughput often doesn’t suit:

  • Workloads with only occasional database operations
  • Lower performance requirements

 Let us introduce you to Serverless.

 

Serverless Consumed Throughput 

Applications with low-traffic workloads that see occasional bursts benefit from the serverless model. Serverless is ideal for less demanding workloads that see occasional bursts. 

You don’t need to plan capacity or manage resources; it automatically scales and charges only for what you use (pay-as-you-go) per operation and storage consumed. 

Timeline graph showing resource utilization (RU) for query, read, and write operations.

Again, with no minimum usage, it suits small apps that run irregularly and don’t need constant throughput. 

And even though the unit cost is higher, you only pay for the RUs consumed per operation. That makes it a cost-effective choice for infrequent or unpredictable workloads.

 

Azure Free Tier 

Is Azure Cosmos DB free forever? The short answer = YES

The Azure Free Tier lets you build, test or run small applications on Azure Cosmos DB at no cost for as long as you need. It applies to NoSQL, MongoDB, Cassandra, Gremlin and Table APIs and supports provisioned and autoscale throughput in single or multi-region setups. 

Mind you, the free tier has its limitations. You get 1000 RU/s and 25 GB of storage free per account. Anything beyond that is charged at standard rates. 

Moreover, it comes with the same features as a regular Cosmos DB account (SLAs, global distribution, high availability, etc). You can enable one free tier account per Azure subscription, but you must opt in when creating it.

 

Azure Cosmos DB free tier for 30 days 

You can try a free 30-day trial for Azure Cosmos DB without an Azure subscription. Use it to explore or run non-production databases (testing or dev environments). 

By now, you know there are various ways to try Azure Cosmos DB. But when do you choose which one?  

The image below shows you exactly when to use each of Azure Cosmos DB’s free offers:  

Decision tree illustrating Azure Cosmos DB free tier options, including existing account, production environment needs, and cloud-based choices.

 

Multi-region writes (Geo-Replication) 

You have the option to enable availability zones in your Cosmos DB account. This replicates data across multiple zones within a single region. So, if one region fails, you can fall back on another. 

If your application requires global write capabilities, you can enable multi-region writes. This promotes high availability and low latency by turning every region into a writable primary. Do not forget that this comes at a cost (doubling your total Cosmos DB expense).

Rekenmachine

Azure Cost Scan

We'd like to help you make sense of your costs. Our in-house experts provide a professional savings recommendation, based on your current Azure cloud usage. 

Yes, I want it!

7 Azure Cosmos DB cost-saving tips 

Remove unused databases or containers 

One of the simplest ways to save in Cosmos DB is by getting rid of unused databases or containers. These often accumulate over time without notice.

 

Check utilisation regularly (if Provisioned Throughput is manual) 

If you’re using standard provisioned throughput, which is manually, monitor your actual usage regularly. Before scaling throughput up or down, check metrics like request volume and RU/s consumption per collection. 

If a collection shows consistently low utilisation – it’s a strong signal that you can safely reduce throughput and cut costs. Always validate usage patterns before making changes.

 

Use Azure Reserved Capacity 

With reserved capacity, you can save 20–65% by committing to 1 or 3 years of provisioned throughput (RU/s) in Azure Cosmos DB. This discount applies across all APIs (MongoDB, Cassandra, SQL, Gremlin, and Table) and is available worldwide. Learn more about Azure Reservations.

 

Reduce storage costs by trimming backups and cleaning up unused data 

In Azure Cosmos DB, storage and backup costs can quickly add up to your bill. For storage, identify high-usage collections that might need clean-up or optimisation. 

Also, check your Backup and Restore settings. In Cosmos DB, you receive two free snapshots. However, if you set up frequent backups (e.g. hourly) with a long retention period (e.g. 7 days), you could easily end up with 168 snapshots, becoming expensive. 

Only increase backup frequency or retention if it’s needed for business or compliance reasons. Otherwise, stick with defaults or reduce retention to avoid paying for excess snapshot storage.

 

Review regional usage 

If multi-region writes are enabled, it can make each region a primary region, doubling the cost of your Cosmos DB account. Adding new regions increases costs, so think twice before doing so.  

Also, review regional usage regularly. If a region shows low or no activity, consider removing it to avoid unnecessary replication costs. But before you do so, weigh your uptime needs. It may be there as a standby for high availability. 

 

Estimate costs with calculators 

RU consumption directly affects Cosmos DB cost. Use these calculator tools to model your workload: 

Try to run sample workloads to estimate RU/s for reads, writes, and queries.

 

Optimise Bandwidth usage 

Cross-region data transfers increase costs. You can reduce this by: 

  • Minimising the number of replication regions 
  • Avoiding unnecessary inter-region writes or reads 
  • Using multi-region replication only when latency or redundancy justifies it 

Keep your traffic local unless you have a clear reason not to. 

Provisioned Throughput vs Autoscale: Which one should you use? 

If your application has consistent, predictable throughput needs, you should provision slightly above that level to avoid throttling.  

But if your workload varies – say, it's active only during office hours or weekends – then having high provisioned throughput all the time leads to waste (as visualised below). 

Graph showing unused capacity of 4,000 RU/S.

Obviously, you’d want to avoid that…

Cosmos DB lets you adjust provisioned throughput manually at any time using the Azure portal, CLI, or automation.

That means you can scale it up or down to match usage and avoid paying for unused capacity. 

Graph showing fluctuating data points with labeled values of 4,000 RU/S, 2,500 RU/S, and 4,000 RU/S.

Most workloads of modern apps, however, don't look like this. Instead, they have much more fluctuating usage flows, with greater drops and spikes. 

Therefore, choose Cosmos DB autoscale provisioned throughput for your workloads with fluctuating demand. 

Here, you set a maximum RU/s limit, while Cosmos DB automatically adjusts your throughput based on actual usage. You’re still billed hourly, but only for the throughput used within that range. This gives you flexibility without having to overprovision. 

Graph showing fluctuating data points with a maximum value of 4,000 RU/S.

Despite the slightly higher billing rate (50% as mentioned), autoscale should usually be your default choice (unless you have a highly consistent or predictable workload ofcourse). 

It is just more cost-effective than standard when traffic is unpredictable and not close to maximum capacity most of the time. 

Also, it is good to know that you can switch between manual and autoscale at any time. 

Working Jack

Get in Touch!

Are you looking for ways to save on your Azure costs? Contact us and we will happily help you out.