Use zone redundant Cosmos DB accounts#
Reliability · Cosmos DB · Rule · 2025_12 · Important
Use zone redundant Cosmos DB accounts in supported regions to improve reliability.
Description#
Azure Cosmos DB accounts deployed with the request units (RU) deployment model support zone redundancy. When zone redundancy is enabled, your data is replicated across multiple zones within an Azure region.
Availability zones are unique physical locations within an Azure region. Each zone is made up of one or more datacenters equipped with independent power, cooling, and networking infrastructure. This physical separation ensures that if one zone experiences an outage, your Cosmos DB account continues to serve read and write requests from replicas in other zones without downtime.
With zone redundancy enabled, Azure Cosmos DB provides:
- Automatic failover between zones.
- Continuous availability during zonal failures.
- Enhanced durability by maintaining multiple copies across separate physical locations.
- Protection against datacenter-level disasters while maintaining low-latency access.
Zone redundancy must be configured when you create a Cosmos DB account by setting isZoneRedundant to true for each location.
This setting cannot be changed after the account is created.
Zone redundancy is only available in regions that support availability zones.
Recommendation#
Consider using locations configured with zone redundancy to improve workload resiliency of Cosmos DB accounts.
Examples#
Configure with Azure template#
To deploy database accounts that pass this rule:
- Set the
properties.locations[*].isZoneRedundantproperty totruefor each location.
For example:
{
"type": "Microsoft.DocumentDB/databaseAccounts",
"apiVersion": "2024-11-15",
"name": "[parameters('name')]",
"location": "[parameters('location')]",
"properties": {
"enableFreeTier": false,
"consistencyPolicy": {
"defaultConsistencyLevel": "Session"
},
"databaseAccountOfferType": "Standard",
"locations": [
{
"locationName": "[parameters('location')]",
"failoverPriority": 0,
"isZoneRedundant": true
}
],
"disableKeyBasedMetadataWriteAccess": true,
"minimalTlsVersion": "Tls12"
}
}
Configure with Bicep#
To deploy database accounts that pass this rule:
- Set the
properties.locations[*].isZoneRedundantproperty totruefor each location.
For example:
resource account 'Microsoft.DocumentDB/databaseAccounts@2024-11-15' = {
name: name
location: location
properties: {
enableFreeTier: false
consistencyPolicy: {
defaultConsistencyLevel: 'Session'
}
databaseAccountOfferType: 'Standard'
locations: [
{
locationName: location
failoverPriority: 0
isZoneRedundant: true
}
]
disableKeyBasedMetadataWriteAccess: true
minimalTlsVersion: 'Tls12'
}
}
Notes#
This rule applies to Cosmos DB accounts deployed with the request units (RU) deployment model.
Links#
- RE:05 Redundancy
- Reliability: Level 1
- Architecture strategies for using availability zones and regions
- Azure regions with availability zone support
- High availability with Azure Cosmos DB
- Azure deployment reference