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
zones
to["1", "2", "3"]
or zone-redundancy. - Set
Properties.sku.name
to 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.capacity
to:- One of
[2, 4, 6, 8, 10]
if usingEnterprise_E10
,Enterprise_E20
,Enterprise_E50
orEnterprise_E100
. - Either
3
or9
if 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
zones
to["1", "2", "3"]
or zone-redundancy. - Set
Properties.sku.name
to 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.capacity
to:- One of
[2, 4, 6, 8, 10]
if usingEnterprise_E10
,Enterprise_E20
,Enterprise_E50
orEnterprise_E100
. - Either
3
or9
if 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: {}
}
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