Azure Cosmos DB pricing
Globally distributed, multi-model database service
Start your Azure free account and get a $200 credit for 30 days, plus get 12 months of free access to Azure Cosmos DB.
Azure Cosmos DB is Microsoft’s globally distributed, multi-model database. Azure Cosmos DB was built from the ground up with global distribution and horizontal scale at its core. It offers turnkey global distribution across any number of Azure regions by transparently scaling and replicating your data wherever your users are. You can elastically scale throughput and storage worldwide, and only pay for the throughput and storage you need. Azure Cosmos DB guarantees single-digit-millisecond latencies in the 99th percentile anywhere in the world, offers multiple well-defined consistency models to fine-tune performance and guarantees high availability with multi-homing capabilities – all backed by industry-leading, comprehensive service-level agreements (SLAs).
Azure Cosmos DB is truly schema-agnostic – it automatically indexes all the data without requiring you to deal with schema and index management. It is also multi-model, natively supporting document, key-value, graph and column-family data models. With Azure Cosmos DB, you can access your data using APIs of your choice, as SQL (document), MongoDB (document), Azure Table Storage (key-value), Gremlin (graph) and Cassandra (column-family) are all natively supported.
US government entities are eligible to purchase Azure Government services from a licensing solution provider with no upfront financial commitment or directly through a pay-as-you-go online subscription.
Important: The price in R$ is merely a reference; this is an international transaction and the final price is subject to exchange rates and the inclusion of IOF taxes. An eNF will not be issued.
Azure Germany is available to customers and partners doing business in the European Union (EU), the European Free Trade Association (EFTA) and in the United Kingdom (UK). It provides data residency in Germany with additional levels of control and data protection. You can also sign up for a free Azure Germany trial.
Unlimited flexibility, elasticity and scalability
Azure Cosmos DB is a multi-model database. Depending on your choice of data model and API, as you create an Azure Cosmos DB collection, table or a graph, they all map internally to an Azure Cosmos DB container. Azure Cosmos DB will scale throughput and storage of its containers transparently, automatically and elastically as you programmatically provision more (or less) throughput or as the storage of the container grows (or shrinks). Azure Cosmos DB allows you to provision throughput for an individual container as well as for a set of containers, which allows those containers to share the provisioned throughput. Within an Azure Cosmos DB database, at any time, programmatically or through the portal, you can:
- Provision throughput for a container.
- Provision throughput for a set of containers collectively, all of which will share the throughput.
Provisioning throughput for individual containers will guarantee the reservation of throughput for that specific container, backed by the throughput SLA. On the other hand, provisioning throughput for a set of containers allows you to share the throughput among all the containers. It is worth noting that, within your Azure Cosmos DB database account, you can mix and match containers which share the throughput among themselves as well as containers which have dedicated throughput provisioned for them. You can increase (scale-up) or decrease (scale-down) your provisioned throughput for either individual container(s) or a set of containers programmatically and at any time, to elastically scale as your workload changes and only pay for the throughput you have configured.
|SSD Storage (per GB)||$- GB/month|
|Reserved RUs/second (per 100 RUs, 400 RUs minimum)||$-|
Provisioned throughput is billed as Request Units (RU) per second or (RU/s). Request Units (RUs) is a well-defined currency for charging throughput for various read, write and query operations on an Azure Cosmos DB container. With Azure Cosmos DB, you only pay for throughput (RUs) you have provisioned and the data (GB) stored on the SSDs.
Provisioned throughput for a container: Each container with provisioned throughput is billed on an hourly basis for the throughput provisioned in increments of 100 RU/second, with a minimum of 400 RU/second, and data stored (in GB), backed by industry-leading comprehensive service level agreements (SLAs).
|API||Minimum throughput||Scale increments||Scope of provisioned throughput|
|SQL||400 RUs per collection||100 RU increments||The collection for which the throughput is provisioned|
|MongoDB||400 RUs per collection||100 RU increments||The collection for which the throughput is provisioned|
|Cassandra||400 RUs per table||100 RU increments||The table for which the throughput is provisioned|
|Table||400 RUs per table||100 RU increments||The table for which the throughput is provisioned|
|Gremlin||400 RUs per graph||100 RU increments||The graph for which the throughput is provisioned|
Provisioned throughput for a set of containers: In addition to provisioning throughput for a specific container, depending on the data model or API, you can also share provisioned throughput across a set of containers by configuring throughput at the level of the database (e.g. SQL, MongoDB), database account (e.g. Gremlin, Table) and key space (e.g. Cassandra). A database (or a database account or key-space) can contain a set of containers, all sharing the throughput provisioned with the parent as well as a set of containers each with its own dedicated provisioned throughput. Unlike a container which is assigned dedicated throughput, containers which share the throughput among themselves do not have a requirement of a minimum RU/s individually. Each database (or database account or key-space) with provisioned throughput is billed on an hourly basis for the throughput provisioned in increments of 10K RU/second, with a minimum of 50K RU/second, and data stored (in GB), backed by industry-leading comprehensive service level agreements (SLAs).
|API||Minimum throughput||Scale increments||Scope of provisioned throughput|
|SQL||50K RUs per database||10K RU increments||Database. All the throughput is shared among all the collections within the database (excluding the collections, which have the throughput explicitly provisioned for them)|
|MongoDB||50K RUs per database||10K RU increments||Database. All the throughput is shared among all the collections within the database (excluding the collections, which have the throughput explicitly provisioned for them)|
|Cassandra||50K RUs per key-space||10K RU increments||Key-space. All the throughput is shared among all the tables within the key-space (excluding the tables, which have the throughput explicitly provisioned for them)|
|Tables||50K RUs per database account||10K RU increments||Database account. All the throughput is shared among all the tables within the database account (excluding the tables, which have the throughput explicitly provisioned for them)|
|Gremlin||50K RUs per database account||10K RU increments||Database account. All the throughput is shared among all the graphs within the database account (excluding the graphs, which have the throughput explicitly provisioned for them)|
Elastically scaling throughput all around the world
Azure Cosmos DB database can be globally distributed to help you easily build apps with planet scale, which means all your data is automatically replicated to the regions you specify. Your app continues to work with a logical endpoint, while your data is automatically served from the region closest to your users with an intuitive programming model for data consistency and high availability. Globally distributed containers are billed based on the storage consumed in each region and throughput provisioned for each Azure Cosmos DB container times the number of regions associated with an Azure Cosmos DB database account. Standard data transfer rates apply for replication data transfer between regions.
You can try Azure Cosmos DB for free
- Azure Cosmos DB Emulator (free): Download the free Azure Cosmos DB Emulator to develop and test applications using Azure Cosmos DB from your local machine. Once you’re satisfied with how your app works, you can deploy it by just changing your configuration to point to an Azure Cosmos DB instance in the cloud.
- Azure Free Account: Try Azure Cosmos DB as a part of Azure Free Account.
- Try Azure Cosmos DB for Free: Enjoy a time-limited, globally distributed Azure Cosmos DB experience without a subscription, free of charge and commitment via Try Azure Cosmos DB for Free.
Where can I learn about the regional presence of Azure Cosmos DB?
Azure Cosmos DB is everywhere Azure is, including public, government, sovereign and DoD clouds. To learn more, please visit the Azure services availability by region page.
Support and SLA
- We provide technical support for all Azure services released to General Availability, including Azure Cosmos DB, through Azure Support, starting at $29/month. Billing and subscription management support is provided at no cost.
- SLA – We guarantee at least 99.99% availability for single-region databases and 99.999% availability for multi-region databases to successfully process requests and perform operations in Azure Cosmos DB. To learn more about our SLA, please visit the SLA page.
In Azure Cosmos DB, provisioned throughput is specified in terms of request units per second. You can think of request units as throughput currency, whereby you reserve an amount of guaranteed resources (memory, CPU, IOPS) available to your application on per-second basis. Each operation in Azure Cosmos DB – write, read, update, query - consumes CPU, memory and IOPS. That is, each operation consumes resources, which is expressed in request units. Please visit the Request Units in Azure Cosmos DB page.
You’re billed based on the provisioned throughput (RU/s) that has been provisioned for your Azure Cosmos DB container or a set of containers (e.g. database) based on an hourly rate for the time it was provisioned.
Provisioned throughput for an individual container:
If you create an Azure Cosmos DB database account in East US 2 with two containers with provisioned throughput of 500 RU/s and 700 RU/s, respectively, you would have a total provisioned throughput of 1,200 RU/s. You would thus be charged 12 x $- = $-/hour.
If your throughput needs have changed, and you’ve increased each container’s capacity by 500 RU/s while also creating a new unlimited container using 20,000 RU/s, your overall provisioned capacity would be 22,200 RU/s (1,000 RU/s + 1,200 RU/s + 20,000RU/s). Your bill would then change to: $- x 222 = $-/hour.
In a month of 720 hours, if for 500 hours, provisioned throughput was 1,200 RU/s and for the remaining 220 hours, provisioned throughput was 22,200 RU/s, your monthly bill will show: 500 x $-/hour + 220 x $-/hour = $-/month.
Provisioned throughput for a set of containers:
If you create an account in East US 2 with two Cosmos DB databases (with a set of collections under each) with provisioned throughput of 50K RU/s and 70K RU/s, respectively, you would have a total provisioned throughput of 120K RU/s. You would thus be charged 1200 x $- = $-/hour.
If your throughput needs changed and you increased each database’s provisioned throughput by 10K RU/s, your overall provisioned capacity would be 140K RU/s (60K RU/s + 80K RU/s). Your bill would then change to: 1400 * $- = $-/hour.
In a month of 720 hours, if for 500 hours, provisioned throughput was 120K RU/s, and for the remaining 220 hours, provisioned throughput was 140K RU/s, your monthly bill will show: 500 x $-/hour + 220 x $-/hour = $- + $- = $-/month.
When you choose to make containers span different geographical regions, you are billed for the throughput and storage for each container in every region and the data transfer between regions. As an example, let’s assume you have a container in West US provisioned with throughput of 10K RU/s and you store 1 TB of data this month. Let’s assume you add 3 regions – East US, North Europe and East Asia, each with the same storage and throughput. Your total monthly bill will be (assuming 31 days in a month):
Item Usage (Month) Rate Monthly cost Throughput bill for container in West US 10K RU/s * 24 * 31 $- per 100 RU/s per hour $- Throughput bill for 3 additional regions – East US, North Europe and East Asia 3 * 10K RU/s * 24 * 31 $- per 100 RU/s per hour $- Storage bill for container in West US 1 TB $-/GB $- Storage bill for 3 additional regions – East US, North Europe and East Asia 3 * 1TB $-/GB $- Total $-
Let’s also assume that you egress 100 GB of data every month from the container in West US to replicate data into East US, North Europe and East Asia. You are billed for egress as per data transfer rates.
Storage capacity is billed in units of the maximum hourly amount of data stored, in GB, over a monthly period. For example, if you utilised 100 GB of storage for half of the month and 50 GB for the second half of the month, you would be billed for an equivalent of 75 GB of storage during that month.
You're billed the flat rate for each hour that the container or database exists for, regardless of usage or if the container or database is active for less than an hour. For example, if you create a container or database and delete it five minutes later, your bill will reflect one hour.
If you increase provisioned throughput at 9:30 am from 400 RU/s to 1,000 RU/s and then lower provisioned throughput at 10:45 am back to 400 RU/s, you will be charged for two hours of 1,000 RU/s.
If you increase provisioned throughput for a container or a set of containers at 9:30 AM from 100K RU/s to 200K RU/s and then lower the provisioned throughput back to 100K RU/s at 10:45 AM, you will be charged for two hours of 200K RU/s.
You can scale up or scale down the number of Request Units for each container within your Azure Cosmos DB account by using the Azure Portal, one of the supported SDKs or the REST API.
- We always recommend using “Unlimited” containers to achieve unlimited scale and flexibility. Unlimited containers are horizontally partitioned, and Azure Cosmos DB allows you to scale throughput and storage for unlimited containers elastically, transparently and automatically. “Fixed” containers can only scale up to 10K RUs and offer a maximum of 10 GB of SSD storage. Finally, you cannot share throughput among a set of “Fixed” containers.
- For best performance and optimised storage, follow the guidelines described here.
Estimate your monthly costs for Azure services
Review Azure pricing frequently asked questions
Learn more about Azure Cosmos DB
Review technical tutorials, videos and more resources