Skip to main content

Multi-Region Design

How to design global Azure deployments with multiple regions.

Multi-Region Architecture

Region Selection

Decision Factors

FactorConsideration
LatencyUser proximity
ComplianceData residency requirements
Service AvailabilityNot all services in all regions
CostPricing varies by region
Paired RegionsDR failover targets
Availability ZonesHA within region

Azure Paired Regions

PrimarySecondaryNotes
East USWest USUS customers
North EuropeWest EuropeEU customers
Southeast AsiaEast AsiaAPAC customers
Australia EastAustralia SoutheastANZ customers
UK SouthUK WestUK 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

ComponentMulti-Region Pattern
NetworkHub per region + Global peering
Load BalancingAzure Front Door / Traffic Manager
SQLFailover Groups
Cosmos DBMulti-region writes
StorageGRS/GZRS
IP Planning/10 per region

Next Steps

Continue to Hybrid Connectivity to learn about ExpressRoute, VPN, and Azure Arc.