Enterprise Redis cache should use Availability zones in supported regions#
Reliability · Azure Cache for Redis Enterprise · Rule · 2021_12 · Important
Enterprise Redis cache should be zone-redundant for high availability.
Description#
Redis Cache using availability zones improve reliability and ensure availability during failure scenarios affecting a data center within a region. Nodes in one availability zone are physically separated from nodes defined in another availability zone. By spreading node pools across multiple zones, nodes in one node pool will continue running even if another zone has gone down.
Recommendation#
Consider using availability zones for Enterprise Redis Cache deployed in supported regions.
Examples#
Configure with Azure template#
To set availability zones for Enterprise SKU Redis Cache:
- Set
zonesto["1", "2", "3"]or zone-redundancy. - Set
Properties.sku.nameto one of:Enterprise_E10- 12 GBEnterprise_E20- 25 GBEnterprise_E50- 50 GBEnterprise_E100- 100 GBEnterpriseFlash_F300- 345 GBEnterpriseFlash_F700- 715 GBEnterpriseFlash_F1500- 1455 GB
- Set
Properties.sku.capacityto:- One of
[2, 4, 6, 8, 10]if usingEnterprise_E10,Enterprise_E20,Enterprise_E50orEnterprise_E100. - Either
3or9if usingEnterpriseFlash_F300,EnterpriseFlash_F700,EnterpriseFlash_F1500.
- One of
For example:
{
"name": "testrediscache",
"type": "Microsoft.Cache/redisEnterprise",
"apiVersion": "2021-02-01-preview",
"properties": {},
"location": "australiaeast",
"dependsOn": [],
"sku": {
"name": "EnterpriseFlash_F700",
"capacity": 3
},
"zones": [
"1",
"2",
"3"
],
"tags": {},
"resources": [
{
"name": "testrediscache/default",
"type": "Microsoft.Cache/redisEnterprise/databases",
"apiVersion": "2021-02-01-preview",
"properties": {
"clientProtocol": "Encrypted",
"evictionPolicy": "NoEviction",
"clusteringPolicy": "OSSCluster",
"persistence": {
"aofEnabled": false,
"rdbEnabled": false
}
},
"dependsOn": [
"Microsoft.Cache/redisEnterprise/testrediscache"
],
"tags": {}
}
]
}
Configure with Bicep#
To set availability zones for Enterprise SKU Redis Cache:
- Set
zonesto["1", "2", "3"]or zone-redundancy. - Set
Properties.sku.nameto one of:Enterprise_E10- 12 GBEnterprise_E20- 25 GBEnterprise_E50- 50 GBEnterprise_E100- 100 GBEnterpriseFlash_F300- 345 GBEnterpriseFlash_F700- 715 GBEnterpriseFlash_F1500- 1455 GB
- Set
Properties.sku.capacityto:- One of
[2, 4, 6, 8, 10]if usingEnterprise_E10,Enterprise_E20,Enterprise_E50orEnterprise_E100. - Either
3or9if usingEnterpriseFlash_F300,EnterpriseFlash_F700,EnterpriseFlash_F1500.
- One of
For example:
resource testrediscache 'Microsoft.Cache/redisEnterprise@2021-02-01-preview' = {
name: 'testrediscache'
properties: {}
location: 'australiaeast'
sku: {
name: 'EnterpriseFlash_F700'
capacity: 3
}
zones: [
'1'
'2'
'3'
]
tags: {}
dependsOn: []
}
resource testrediscache_default 'Microsoft.Cache/redisEnterprise/databases@2021-02-01-preview' = {
parent: testrediscache
name: 'default'
properties: {
clientProtocol: 'Encrypted'
evictionPolicy: 'NoEviction'
clusteringPolicy: 'OSSCluster'
persistence: {
aofEnabled: false
rdbEnabled: false
}
}
tags: {}
}
Configure with Azure Verified Modules
A pre-validated module supported by Microsoft is available from the Azure Bicep public registry. To reference the module, please use the following syntax:
To use the latest version:
Notes#
This rule fails when cache is not zone redundant(1, 2 and 3) when there are availability zones for the given region.
Configure AZURE_REDISENTERPRISECACHE_ADDITIONAL_REGION_AVAILABILITY_ZONE_LIST to set additional availability zones that need to be supported which are not in the existing providers for namespace Microsoft.Cache and resource type redisEnterprise.
# YAML: The default AZURE_REDISENTERPRISECACHE_ADDITIONAL_REGION_AVAILABILITY_ZONE_LIST configuration option
configuration:
AZURE_REDISENTERPRISECACHE_ADDITIONAL_REGION_AVAILABILITY_ZONE_LIST: []
Links#
- RE:05 Regions and availability zones
- Enable zone redundancy for Azure Cache for Redis
- High availability for Azure Cache for Redis
- Azure deployment reference