Multi-Region Design
How to design global Azure deployments with multiple regions.
Multi-Region Architecture
Region Selection
Decision Factors
| Factor | Consideration |
|---|---|
| Latency | User proximity |
| Compliance | Data residency requirements |
| Service Availability | Not all services in all regions |
| Cost | Pricing varies by region |
| Paired Regions | DR failover targets |
| Availability Zones | HA within region |
Azure Paired Regions
| Primary | Secondary | Notes |
|---|---|---|
| East US | West US | US customers |
| North Europe | West Europe | EU customers |
| Southeast Asia | East Asia | APAC customers |
| Australia East | Australia Southeast | ANZ customers |
| UK South | UK West | UK customers |
Multi-Region Hub-Spoke
Architecture
IP Address Planning
Global Address Space: 10.0.0.0/8
├── East US (Primary): 10.0.0.0/10 (10.0.x.x - 10.63.x.x)
│ ├── Hub: 10.0.0.0/16
│ ├── Corp Spokes: 10.1.0.0/14 (10.1-4.x.x)
│ ├── Online Spokes: 10.16.0.0/14
│ └── Reserved: 10.32.0.0/11
│
├── West Europe (Secondary): 10.64.0.0/10 (10.64.x.x - 10.127.x.x)
│ ├── Hub: 10.100.0.0/16
│ ├── Corp Spokes: 10.101.0.0/14
│ ├── Online Spokes: 10.116.0.0/14
│ └── Reserved: 10.132.0.0/11
│
├── Southeast Asia: 10.128.0.0/10
└── Australia East: 10.192.0.0/10
Multi-Region Virtual WAN
Architecture
Bicep: Multi-Region Virtual WAN
resource virtualWan 'Microsoft.Network/virtualWans@2023-05-01' = {
name: 'vwan-global-001'
location: 'eastus'
properties: {
type: 'Standard'
allowBranchToBranchTraffic: true
allowVnetToVnetTraffic: true
}
}
// East US Hub
resource hubEastUS 'Microsoft.Network/virtualHubs@2023-05-01' = {
name: 'vhub-eastus-001'
location: 'eastus'
properties: {
virtualWan: {
id: virtualWan.id
}
addressPrefix: '10.0.0.0/23'
sku: 'Standard'
}
}
// West Europe Hub
resource hubWestEurope 'Microsoft.Network/virtualHubs@2023-05-01' = {
name: 'vhub-westeurope-001'
location: 'westeurope'
properties: {
virtualWan: {
id: virtualWan.id
}
addressPrefix: '10.100.0.0/23'
sku: 'Standard'
}
}
// Hub routing intent for secure hub
resource routingIntentEUS 'Microsoft.Network/virtualHubs/routingIntent@2023-05-01' = {
parent: hubEastUS
name: 'routing-intent'
properties: {
routingPolicies: [
{
name: 'InternetTraffic'
destinations: ['Internet']
nextHop: firewallEastUS.id
}
{
name: 'PrivateTraffic'
destinations: ['PrivateTraffic']
nextHop: firewallEastUS.id
}
]
}
}
Global Load Balancing
Azure Front Door
Bicep: Azure Front Door
resource frontDoor 'Microsoft.Cdn/profiles@2023-05-01' = {
name: 'afd-global-001'
location: 'global'
sku: {
name: 'Premium_AzureFrontDoor'
}
}
resource endpoint 'Microsoft.Cdn/profiles/afdEndpoints@2023-05-01' = {
parent: frontDoor
name: 'app-endpoint'
location: 'global'
properties: {
enabledState: 'Enabled'
}
}
resource originGroupPrimary 'Microsoft.Cdn/profiles/originGroups@2023-05-01' = {
parent: frontDoor
name: 'primary-origins'
properties: {
loadBalancingSettings: {
sampleSize: 4
successfulSamplesRequired: 3
}
healthProbeSettings: {
probePath: '/health'
probeRequestType: 'HEAD'
probeProtocol: 'Https'
probeIntervalInSeconds: 30
}
}
}
resource originEastUS 'Microsoft.Cdn/profiles/originGroups/origins@2023-05-01' = {
parent: originGroupPrimary
name: 'eastus-origin'
properties: {
hostName: 'app-eastus.contoso.com'
httpPort: 80
httpsPort: 443
priority: 1
weight: 1000
}
}
resource originWestEurope 'Microsoft.Cdn/profiles/originGroups/origins@2023-05-01' = {
parent: originGroupPrimary
name: 'westeurope-origin'
properties: {
hostName: 'app-westeurope.contoso.com'
httpPort: 80
httpsPort: 443
priority: 2
weight: 1000
}
}
Data Replication
SQL Geo-Replication
Cosmos DB Multi-Region
resource cosmosAccount 'Microsoft.DocumentDB/databaseAccounts@2023-04-15' = {
name: 'cosmos-global-001'
location: 'eastus'
kind: 'GlobalDocumentDB'
properties: {
databaseAccountOfferType: 'Standard'
locations: [
{
locationName: 'eastus'
failoverPriority: 0
isZoneRedundant: true
}
{
locationName: 'westeurope'
failoverPriority: 1
isZoneRedundant: true
}
{
locationName: 'southeastasia'
failoverPriority: 2
isZoneRedundant: true
}
]
enableAutomaticFailover: true
enableMultipleWriteLocations: true // Multi-master
consistencyPolicy: {
defaultConsistencyLevel: 'Session'
}
}
}
Deployment Patterns
Active-Passive
Active-Active
Quick Reference Card
| Component | Multi-Region Pattern |
|---|---|
| Network | Hub per region + Global peering |
| Load Balancing | Azure Front Door / Traffic Manager |
| SQL | Failover Groups |
| Cosmos DB | Multi-region writes |
| Storage | GRS/GZRS |
| IP Planning | /10 per region |
Next Steps
Continue to Hybrid Connectivity to learn about ExpressRoute, VPN, and Azure Arc.