Use zone redundant Cosmos DB accounts
November 10, 2025 ยท View on GitHub
SYNOPSIS
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.