Azure Services
Azure Services
Azure Services
Azure Resiliency
Azure Resiliency feature page
Design resilient applications for Azure
High Availability
High availability for Azure applications
Regions and Availability Zones
Availability Zones Documentation
Azure Services that support Availability Zones
Virtual machines
Create a Linux VM in an Availability Zone with CLI
Create a Windows VM in an Availability Zone with PowerShell
Create a Windows VM in an Availability Zone with Azure portal
Managed disks
Add a managed disk in Availability Zones with CLI
Add a managed disk in Availability Zones with PowerShell
Virtual machine scale sets
Create a scale set in an Availability Zone
Load Balancer
What is Load Balancer?
Load Balancer Standard and Availability Zones
Create a zone redundant public Standard Load Balancer
Create a zone redundant public Standard Load Balancer (PowerShell)
Create a zone redundant public Standard Load Balancer (CLI)
Create a zonal public Standard Load Balancer
Create a zonal public Standard Load Balancer (PowerShell)
Create a zonal redundant public Standard Load Balancer (CLI)
Load balance VMs across availability zones
Load balance VMs across availability zones with Azure (CLI)
Public IP address
SQL Database
Availability zones with SQL Database general purpose tier
Availability zones with SQL Database premium & business critical tiers
Storage
Zone-redundant storage
Event Hubs
Event Hubs geo-disaster recovery
Service Bus
Service Bus geo-disaster recovery
VPN Gateway
Create a zone-redundant virtual network gateway
ExpressRoute
Create a zone-redundant virtual network gateway
Application Gateway v2
Autoscaling and Zone-redundant Application Gateway v2
Identity
Create an Azure Active Directory Domain Services instance
Edge Zones Documentation
What are Edge Zones?
Azure Orbital Documentation
What is Azure Orbital?
Disaster Recovery
Use Azure Site Recovery
Azure Backup
Use Azure Backup
Resources
Azure Roadmap
Azure Regions
Regions and Availability Zones in Azure
4/9/2021 • 8 minutes to read • Edit Online
Microsoft Azure services are available globally to drive your cloud operations at an optimal level. You can
choose the best region for your needs based on technical and regulatory considerations: service capabilities,
data residency, compliance requirements, and latency.
Terminology
To better understand regions and Availability Zones in Azure, it helps to understand key terms or concepts.
Availability Zone Unique physical locations within a region. Each zone is made
up of one or more datacenters equipped with independent
power, cooling, and networking.
alternate (other) region A region that extends Azure's footprint within a data
residency boundary where a recommended region also
exists. Alternate regions help to optimize latency and provide
a second region for disaster recovery needs. They are not
designed to support Availability Zones (although Azure
conducts regular assessment of these regions to determine if
they should become recommended regions). These are
designated in the Azure portal as Other .
foundational service A core Azure service that is available in all regions when the
region is generally available.
regional service An Azure service that is deployed regionally and enables the
customer to specify the region into which the service will be
deployed. For a complete list, see Products available by
region.
Regions
A region is a set of datacenters deployed within a latency-defined perimeter and connected through a dedicated
regional low-latency network. Azure gives you the flexibility to deploy applications where you need to, including
across multiple regions to deliver cross-region resiliency. For more information, see Overview of the resiliency
pillar.
Availability Zones
An Availability Zone is a high-availability offering that protects your applications and data from datacenter
failures. 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. To ensure resiliency, there's a
minimum of three separate zones in all enabled regions. The physical separation of Availability Zones within a
region protects applications and data from datacenter failures. Zone-redundant services replicate your
applications and data across Availability Zones to protect from single-points-of-failure. With Availability Zones,
Azure offers industry best 99.99% VM uptime SLA. The full Azure SLA explains the guaranteed availability of
Azure as a whole.
An Availability Zone in an Azure region is a combination of a fault domain and an update domain. For example,
if you create three or more VMs across three zones in an Azure region, your VMs are effectively distributed
across three fault domains and three update domains. The Azure platform recognizes this distribution across
update domains to make sure that VMs in different zones are not scheduled to be updated at the same time.
Build high-availability into your application architecture by co-locating your compute, storage, networking, and
data resources within a zone and replicating in other zones. Azure services that support Availability Zones fall
into two categories:
Zonal ser vices – where a resource is pinned to a specific zone (for example, virtual machines, managed
disks, Standard IP addresses), or
Zone-redundant ser vices – when the Azure platform replicates automatically across zones (for example,
zone-redundant storage, SQL Database).
To achieve comprehensive business continuity on Azure, build your application architecture using the
combination of Availability Zones with Azure region pairs. You can synchronously replicate your applications
and data using Availability Zones within an Azure region for high-availability and asynchronously replicate
across Azure regions for disaster recovery protection.
IMPORTANT
The Availability Zone identifiers (the numbers 1, 2 and 3 in the picture above) are logically mapped to the actual physical
zones for each subscription independently. That means that Availability Zone 1 in a given subscription might refer to a
different physical zone than Availability Zone 1 in a different subscription. As a consequence, it's recommended to not rely
on Availability Zone IDs across different subscriptions for virtual machine placement.
Recommende ️
✔ ️
✔ ️
✔ Demand- ️
✔ ️
✔
d driven
Alternate ️
✔ ️
✔ Demand- Demand- N/A ️
✔
driven driven
Services by category
As mentioned previously, Azure classifies services into three categories: foundational, mainstream, and
specialized. Service categories are assigned at general availability. Often, services start their lifecycle as a
specialized service and as demand and utilization increases may be promoted to mainstream or foundational.
The following table lists the category for services as foundational, mainstream. You should note the following
about the table:
Some services are non-regional. For information and a list of non-regional services, see Products available
by region.
Older generation of services or virtual machines are not listed. For more information, see documentation at
Previous generations of virtual machine sizes.
Services are not assigned a category until General Availability (GA). For information, and a list of preview
services, see Products available by region.
F O UN DAT IO N A L M A IN ST REA M
Azure Data Lake Storage Gen2 Azure Active Directory Domain Services
Data Factory
Event Grid
HDInsight
Logic Apps
Media Services
Network Watcher
F O UN DAT IO N A L M A IN ST REA M
Virtual WAN
Specialized Services
As mentioned previously, Azure classifies services into three categories: foundational, mainstream, and
specialized. Service categories are assigned at general availability. Often, services start their lifecycle as a
specialized service and as demand and utilization increases may be promoted to mainstream or foundational.
The following table lists specialized services.
SP EC IA L IZ ED
Azure Databricks
Spatial Anchors
Video Indexer
Next steps
Regions that support Availability Zones in Azure
Quickstart templates
Azure Services that support Availability Zones
4/6/2021 • 6 minutes to read • Edit Online
Microsoft Azure global infrastructure is designed and constructed at every layer to deliver the highest levels of
redundancy and resiliency to its customers. Azure infrastructure is composed of geographies, regions, and
Availability Zones, which limit the blast radius of a failure and therefore limit potential impact to customer
applications and data. The Azure Availability Zones construct was developed to provide a software and
networking solution to protect against datacenter failures and to provide increased high availability (HA) to our
customers.
Availability Zones are unique physical locations within an Azure region. Each zone is made up of one or more
datacenters with independent power, cooling, and networking. The physical separation of Availability Zones
within a region limits the impact to applications and data from zone failures, such as large-scale flooding, major
storms and superstorms, and other events that could disrupt site access, safe passage, extended utilities uptime,
and the availability of resources. Availability Zones and their associated datacenters are designed such that if
one zone is compromised, the services, capacity, and availability are supported by the other Availability Zones in
the region.
All Azure management services are architected to be resilient from region-level failures. In the spectrum of
failures, one or more Availability Zone failures within a region have a smaller failure radius compared to an
entire region failure. Azure can recover from a zone-level failure of management services within a region. Azure
performs critical maintenance one zone at a time within a region, to prevent any failures impacting customer
resources deployed across Availability Zones within a region.
Azure services supporting Availability Zones fall into three categories: zonal , zone-redundant , and non-
regional services. Customer workloads can be categorized to utilize any of these architecture scenarios to meet
application performance and durability.
Zonal ser vices – A resource can be deployed to a specific, self-selected Availability Zone to achieve
more stringent latency or performance requirements. Resiliency is self-architected by replicating
applications and data to one or more zones within the region. Resources can be pinned to a specific zone.
For example, virtual machines, managed disks, or standard IP addresses can be pinned to a specific zone,
which allows for increased resilience by having one or more instances of resources spread across zones.
Zone-redundant ser vices – Azure platform replicates the resource and data across zones. Microsoft
manages the delivery of high availability since Azure automatically replicates and distributes instances
within the region. ZRS, for example, replicates the data across three zones so that a zone failure does not
impact the HA of the data.
Non-regional ser vices – Services are always available from Azure geographies and are resilient to
zone-wide outages as well as region-wide outages.
To achieve comprehensive business continuity on Azure, build your application architecture using the
combination of Availability Zones with Azure region pairs. You can synchronously replicate your applications
and data using Availability Zones within an Azure region for high-availability and asynchronously replicate
across Azure regions for disaster recovery protection. To learn more, read building solutions for high availability
using Availability Zones.
South Central US
US Gov Virginia
West US 2
West US 3*
* To learn more about Availability Zones and available services support in these regions, contact your Microsoft
sales or customer representative. For the upcoming regions that will support Availability Zones, see Azure
geographies.
Storage Account
Azure Backup
Azure Cosmos DB
Azure Public IP
Disk Storage
Event Hubs
Key Vault
Load Balancer
Service Bus
Service Fabric
Virtual Machines
P RO DUC T S RESIL IEN C Y
Virtual Network
VPN Gateway
Azure Bastion
Azure Firewall
Container Registry
Event Grid
Network Watcher
Power BI Embedded
Virtual WAN
Non-regional
Azure DNS
Azure Advisor
Azure Blueprints
Azure Lighthouse
Azure Maps
P RO DUC T S RESIL IEN C Y
Azure Policy
Azure Sentinel
Azure Stack
Cloud Shell
Cost Management
Intune
Microsoft Graph
Security Center
Traffic Manager
Next steps
Regions and Availability Zones in Azure
Create a virtual machine in an availability zone
using Azure CLI
3/10/2021 • 4 minutes to read • Edit Online
This article steps through using the Azure CLI to create a Linux VM in an Azure availability zone. An availability
zone is a physically separate zone in an Azure region. Use availability zones to protect your apps and data from
an unlikely failure or loss of an entire datacenter.
To use an availability zone, create your virtual machine in a supported Azure region.
Make sure that you have installed the latest Azure CLI and logged in to an Azure account with az login.
The output is similar to the following condensed example, which shows the Availability Zones in which each VM
size is available:
The resource group is specified when creating or modifying a VM, which can be seen throughout this article.
az vm create --resource-group myResourceGroupVM --name myVM --location eastus2 --image UbuntuLTS --generate-
ssh-keys --zone 1
It may take a few minutes to create the VM. Once the VM has been created, the Azure CLI outputs information
about the VM. Take note of the zones value, which indicates the availability zone in which the VM is running.
{
"fqdns": "",
"id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-
xxxxxxxxxxxx/resourceGroups/myResourceGroupVM/providers/Microsoft.Compute/virtualMachines/myVM",
"location": "eastus2",
"macAddress": "00-0D-3A-23-9A-49",
"powerState": "VM running",
"privateIpAddress": "10.0.0.4",
"publicIpAddress": "52.174.34.95",
"resourceGroup": "myResourceGroupVM",
"zones": "1"
}
The output shows that the managed disk is in the same availability zone as the VM:
{
"creationData": {
"createOption": "FromImage",
"imageReference": {
"id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-
xxxxxxxxxxxx/Providers/Microsoft.Compute/Locations/westeurope/Publishers/Canonical/ArtifactTypes/VMImage/Off
ers/UbuntuServer/Skus/16.04-LTS/Versions/latest",
"lun": null
},
"sourceResourceId": null,
"sourceUri": null,
"storageAccountId": null
},
"diskSizeGb": 30,
"encryptionSettings": null,
"id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-
xxxxxxxxxxxx/resourceGroups/myResourceGroupVM/providers/Microsoft.Compute/disks/osdisk_761c570dab",
"location": "eastus2",
"managedBy": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-
xxxxxxxxxxxx/resourceGroups/myResourceGroupVM/providers/Microsoft.Compute/virtualMachines/myVM",
"name": "myVM_osdisk_761c570dab",
"osType": "Linux",
"provisioningState": "Succeeded",
"resourceGroup": "myResourceGroupVM",
"sku": {
"name": "Premium_LRS",
"tier": "Premium"
},
"tags": {},
"timeCreated": "2018-03-05T22:16:06.892752+00:00",
"type": "Microsoft.Compute/disks",
"zones": [
"1"
]
}
Use the az vm list-ip-addresses command to return the name of public IP address resource in myVM. In this
example, the name is stored in a variable that is used in a later step.
The output shows that the IP address is in the same availability zone as the VM:
{
"dnsSettings": null,
"etag": "W/\"b7ad25eb-3191-4c8f-9cec-c5e4a3a37d35\"",
"id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-
xxxxxxxxxxxx/resourceGroups/myResourceGroupVM/providers/Microsoft.Network/publicIPAddresses/myVMPublicIP",
"idleTimeoutInMinutes": 4,
"ipAddress": "52.174.34.95",
"ipConfiguration": {
"etag": null,
"id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-
xxxxxxxxxxxx/resourceGroups/myResourceGroupVM/providers/Microsoft.Network/networkInterfaces/myVMVMNic/ipConf
igurations/ipconfigmyVM",
"name": null,
"privateIpAddress": null,
"privateIpAllocationMethod": null,
"provisioningState": null,
"publicIpAddress": null,
"resourceGroup": "myResourceGroupVM",
"subnet": null
},
"location": "eastUS2",
"name": "myVMPublicIP",
"provisioningState": "Succeeded",
"publicIpAddressVersion": "IPv4",
"publicIpAllocationMethod": "Dynamic",
"resourceGroup": "myResourceGroupVM",
"resourceGuid": "8c70a073-09be-4504-0000-000000000000",
"tags": {},
"type": "Microsoft.Network/publicIPAddresses",
"zones": [
"1"
]
}
Next steps
In this article, you learned how to create a VM in an availability zone. Learn more about availability for Azure
VMs.
Create a virtual machine in an availability zone
using Azure PowerShell
3/10/2021 • 4 minutes to read • Edit Online
This article details using Azure PowerShell to create an Azure virtual machine running Windows Server 2016 in
an Azure availability zone. An availability zone is a physically separate zone in an Azure region. Use availability
zones to protect your apps and data from an unlikely failure or loss of an entire datacenter.
To use an availability zone, create your virtual machine in a supported Azure region.
Sign in to Azure
Sign in to your Azure subscription with the Connect-AzAccount command and follow the on-screen directions.
Connect-AzAccount
The output is similar to the following condensed example, which shows the Availability Zones in which each VM
size is available:
# Create a virtual network card and associate with public IP address and NSG
$nic = New-AzNetworkInterface -Name myNic -ResourceGroupName myResourceGroup -Location eastus2 `
-SubnetId $vnet.Subnets[0].Id -PublicIpAddressId $pip.Id -NetworkSecurityGroupId $nsg.Id
The output shows that the managed disk is in the same availability zone as the VM:
ResourceGroupName : myResourceGroup
AccountType : PremiumLRS
OwnerId : /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-
xxxxxxxxxxxx/resourceGroups/myResourceGroup/providers/Microsoft.
Compute/virtualMachines/myVM
ManagedBy : /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-
xxxxxxxxxxxx//resourceGroups/myResourceGroup/providers/Microsoft.
Compute/virtualMachines/myVM
Sku : Microsoft.Azure.Management.Compute.Models.DiskSku
Zones : {2}
TimeCreated : 9/7/2017 6:57:26 PM
OsType : Windows
CreationData : Microsoft.Azure.Management.Compute.Models.CreationData
DiskSizeGB : 127
EncryptionSettings :
ProvisioningState : Succeeded
Id : /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-
xxxxxxxxxxxx/resourceGroups/myResourceGroup/providers/Microsoft.
Compute/disks/myVM_OsDisk_1_bd921920bb0a4650becfc2d830000000
Name : myVM_OsDisk_1_bd921920bb0a4650becfc2d830000000
Type : Microsoft.Compute/disks
Location : eastus2
Tags : {}
Next steps
In this article, you learned how to create a VM in an availability zone. Learn more about availability for Azure
VMs.
Create a virtual machine in an availability zone
using the Azure portal
3/9/2021 • 2 minutes to read • Edit Online
This article steps through using the Azure portal to create a virtual machine in an Azure availability zone. An
availability zone is a physically separate zone in an Azure region. Use availability zones to protect your apps and
data from an unlikely failure or loss of an entire datacenter.
To use an availability zone, create your virtual machine in a supported Azure region.
Sign in to Azure
Sign in to the Azure portal at https://portal.azure.com.
4. Choose a size for the VM. Select a recommended size, or filter based on features. Confirm the size is
available in the zone you want to use.
5. Under Settings > High availability , select one of the numbered zones from the Availability zone
dropdown, keep the remaining defaults, and click OK .
6. On the summary page, click Create to start the virtual machine deployment.
7. The VM will be pinned to the Azure portal dashboard. Once the deployment has completed, the VM
summary automatically opens.
3. Click the name of the Public IP address resource. The Over view page includes details about the location
and availability zone of the resource.
Next steps
In this article, you learned how to create a VM in an availability zone. Learn more about availability for Azure
VMs.
Add a disk to a Linux VM
3/18/2021 • 6 minutes to read • Edit Online
This article shows you how to attach a persistent disk to your VM so that you can preserve your data - even if
your VM is reprovisioned due to maintenance or resizing.
az vm disk attach \
-g myResourceGroup \
--vm-name myVM \
--name myDataDisk \
--new \
--size-gb 50
ssh azureuser@10.123.123.25
Here, sdc is the disk that we want, because it is 50G. If you aren't sure which disk it is based on size alone, you
can go to the VM page in the portal, select Disks , and check the LUN number for the disk under Data disks .
Format the disk
Format the disk with parted , if the disk size is 2 tebibytes (TiB) or larger then you must use GPT partitioning, if
it is under 2TiB, then you can use either MBR or GPT partitioning.
NOTE
It is recommended that you use the latest version parted that is available for your distro. If the disk size is 2 tebibytes
(TiB) or larger, you must use GPT partitioning. If disk size is under 2 TiB, then you can use either MBR or GPT partitioning.
The following example uses parted on /dev/sdc , which is where the first data disk will typically be on most
VMs. Replace sdc with the correct option for your disk. We are also formatting it using the XFS filesystem.
sudo parted /dev/sdc --script mklabel gpt mkpart xfspart xfs 0% 100%
sudo mkfs.xfs /dev/sdc1
sudo partprobe /dev/sdc1
Use the partprobe utility to make sure the kernel is aware of the new partition and filesystem. Failure to use
partprobe can cause the blkid or lslbk commands to not return the UUID for the new filesystem immediately.
Mount the disk
Now, create a directory to mount the file system using mkdir . The following example creates a directory at
/datadrive :
Use mountto then mount the filesystem. The following example mounts the /dev/sdc1 partition to the
/datadrive mount point:
sudo blkid
NOTE
Improperly editing the /etc/fstab file could result in an unbootable system. If unsure, refer to the distribution's
documentation for information on how to properly edit this file. It is also recommended that a backup of the /etc/fstab file
is created before editing.
In this example, use the UUID value for the /dev/sdc1 device that was created in the previous steps, and the
mountpoint of /datadrive . Add the following line to the end of the /etc/fstab file:
In this example, we are using the nano editor, so when you are done editing the file, use Ctrl+O to write the file
and Ctrl+X to exit the editor.
NOTE
Later removing a data disk without editing fstab could cause the VM to fail to boot. Most distributions provide either the
nofail and/or nobootwait fstab options. These options allow a system to boot even if the disk fails to mount at boot time.
Consult your distribution's documentation for more information on these parameters.
The nofail option ensures that the VM starts even if the filesystem is corrupt or the disk does not exist at boot time.
Without this option, you may encounter behavior as described in Cannot SSH to Linux VM due to FSTAB errors
The Azure VM Serial Console can be used for console access to your VM if modifying fstab has resulted in a boot failure.
More details are available in the Serial Console documentation.
In some cases, the discard option may have performance implications. Alternatively, you can run the
fstrim command manually from the command line, or add it to your crontab to run regularly:
Ubuntu
RHEL/CentOS
Troubleshooting
When adding data disks to a Linux VM, you may encounter errors if a disk does not exist at LUN 0. If you are
adding a disk manually using the az vm disk attach -new command and you specify a LUN ( --lun ) rather than
allowing the Azure platform to determine the appropriate LUN, take care that a disk already exists / will exist at
LUN 0.
Consider the following example showing a snippet of the output from lsscsi :
The two data disks exist at LUN 0 and LUN 1 (the first column in the lsscsi output details
[host:channel:target:lun] ). Both disks should be accessible from within the VM. If you had manually specified
the first disk to be added at LUN 1 and the second disk at LUN 2, you may not see the disks correctly from
within your VM.
NOTE
The Azure host value is 5 in these examples, but this may vary depending on the type of storage you select.
This disk behavior is not an Azure problem, but the way in which the Linux kernel follows the SCSI specifications.
When the Linux kernel scans the SCSI bus for attached devices, a device must be found at LUN 0 in order for the
system to continue scanning for additional devices. As such:
Review the output of lsscsi after adding a data disk to verify that you have a disk at LUN 0.
If your disk does not show up correctly within your VM, verify a disk exists at LUN 0.
Next steps
To ensure your Linux VM is configured correctly, review the Optimize your Linux machine performance
recommendations.
Expand your storage capacity by adding additional disks and configure RAID for additional performance.
Attach a data disk to a Windows VM with
PowerShell
3/10/2021 • 2 minutes to read • Edit Online
This article shows you how to attach both new and existing disks to a Windows virtual machine by using
PowerShell.
First, review these tips:
The size of the virtual machine controls how many data disks you can attach. For more information, see Sizes
for virtual machines.
To use premium SSDs, you'll need a premium storage-enabled VM type, like the DS-series or GS-series
virtual machine.
This article uses PowerShell within the Azure Cloud Shell, which is constantly updated to the latest version. To
open the Cloud Shell, select Tr y it from the top of any code block.
$rgName = 'myResourceGroup'
$vmName = 'myVM'
$location = 'East US'
$storageType = 'Premium_LRS'
$dataDiskName = $vmName + '_datadisk1'
$diskConfig = New-AzDiskConfig -SkuName $storageType -Location $location -CreateOption Empty -DiskSizeGB 128
$dataDisk1 = New-AzDisk -DiskName $dataDiskName -Disk $diskConfig -ResourceGroupName $rgName
$diskConfig = New-AzDiskConfig -SkuName $storageType -Location $location -CreateOption Empty -DiskSizeGB 128
-Zone 1
$dataDisk1 = New-AzDisk -DiskName $dataDiskName -Disk $diskConfig -ResourceGroupName $rgName
$location = "location-name"
$scriptName = "script-name"
$fileName = "script-file-name"
Set-AzVMCustomScriptExtension -ResourceGroupName $rgName -Location $locName -VMName $vmName -Name
$scriptName -TypeHandlerVersion "1.4" -StorageAccountName "mystore1" -StorageAccountKey "primary-key" -
FileName $fileName -ContainerName "scripts"
The script file can contain code to initialize the disks, for example:
$rgName = "myResourceGroup"
$vmName = "myVM"
$location = "East US"
$dataDiskName = "myDisk"
$disk = Get-AzDisk -ResourceGroupName $rgName -DiskName $dataDiskName
To protect your virtual machine scale sets from datacenter-level failures, you can create a scale set across
Availability Zones. Azure regions that support Availability Zones have a minimum of three separate zones, each
with their own independent power source, network, and cooling. For more information, see Overview of
Availability Zones.
Availability considerations
When you deploy a regional (non-zonal) scale set into one or more zones as of API version 2017-12-01, you
have the following availability options:
Max spreading (platformFaultDomainCount = 1)
Static fixed spreading (platformFaultDomainCount = 5)
Spreading aligned with storage disk fault domains (platforFaultDomainCount = 2 or 3)
With max spreading, the scale set spreads your VMs across as many fault domains as possible within each zone.
This spreading could be across greater or fewer than five fault domains per zone. With static fixed spreading, the
scale set spreads your VMs across exactly five fault domains per zone. If the scale set cannot find five distinct
fault domains per zone to satisfy the allocation request, the request fails.
We recommend deploying with max spreading for most workloads , as this approach provides the best
spreading in most cases. If you need replicas to be spread across distinct hardware isolation units, we
recommend spreading across Availability Zones and utilize max spreading within each zone.
NOTE
With max spreading, you only see one fault domain in the scale set VM instance view and in the instance metadata
regardless of how many fault domains the VMs are spread across. The spreading within each zone is implicit.
Placement groups
When you deploy a scale set, you also have the option to deploy with a single placement group per Availability
Zone, or with multiple per zone. For regional (non-zonal) scale sets, the choice is to have a single placement
group in the region or to have multiple in the region. For most workloads, we recommend multiple placement
groups, which allows for greater scale. In API version 2017-12-01, scale sets default to multiple placement
groups for single-zone and cross-zone scale sets, but they default to single placement group for regional (non-
zonal) scale sets.
NOTE
If you use max spreading, you must use multiple placement groups.
Zone balancing
Finally, for scale sets deployed across multiple zones, you also have the option of choosing "best effort zone
balance" or "strict zone balance". A scale set is considered "balanced" if each zone the same number of VMs or
+\- 1 VM in all other zones for the scale set. For example:
A scale set with 2 VMs in zone 1, 3 VMs in zone 2, and 3 VMs in zone 3 is considered balanced. There is only
one zone with a different VM count and it is only 1 less than the other zones.
A scale set with 1 VM in zone 1, 3 VMs in zone 2, and 3 VMs in zone 3 is considered unbalanced. Zone 1 has
2 fewer VMs than zones 2 and 3.
It's possible that VMs in the scale set are successfully created, but extensions on those VMs fail to deploy. These
VMs with extension failures are still counted when determining if a scale set is balanced. For instance, a scale set
with 3 VMs in zone 1, 3 VMs in zone 2, and 3 VMs in zone 3 is considered balanced even if all extensions failed
in zone 1 and all extensions succeeded in zones 2 and 3.
With best-effort zone balance, the scale set attempts to scale in and out while maintaining balance. However, if
for some reason this is not possible (for example, if one zone goes down, the scale set cannot create a new VM
in that zone), the scale set allows temporary imbalance to successfully scale in or out. On subsequent scale-out
attempts, the scale set adds VMs to zones that need more VMs for the scale set to be balanced. Similarly, on
subsequent scale in attempts, the scale set removes VMs from zones that need fewer VMs for the scale set to be
balanced. With "strict zone balance", the scale set fails any attempts to scale in or out if doing so would cause
unbalance.
To use best-effort zone balance, set zoneBalance to false. This setting is the default in API version 2017-12-01. To
use strict zone balance, set zoneBalance to true.
The scale set and supporting resources, such as the Azure load balancer and public IP address, are created in the
single zone that you specify.
az vmss create \
--resource-group myResourceGroup \
--name myScaleSet \
--image UbuntuLTS \
--upgrade-policy-mode automatic \
--admin-username azureuser \
--generate-ssh-keys \
--zones 1
For a complete example of a single-zone scale set and network resources, see this sample CLI script
Zone -redundant scale set
To create a zone-redundant scale set, you use a Standard SKU public IP address and load balancer. For enhanced
redundancy, the Standard SKU creates zone-redundant network resources. For more information, see Azure
Load Balancer Standard overview and Standard Load Balancer and Availability Zones.
To create a zone-redundant scale set, specify multiple zones with the --zones parameter. The following example
creates a zone-redundant scale set named myScaleSet across zones 1,2,3:
az vmss create \
--resource-group myResourceGroup \
--name myScaleSet \
--image UbuntuLTS \
--upgrade-policy-mode automatic \
--admin-username azureuser \
--generate-ssh-keys \
--zones 1 2 3
It takes a few minutes to create and configure all the scale set resources and VMs in the zone(s) that you specify.
For a complete example of a zone-redundant scale set and network resources, see this sample CLI script
New-AzVmss `
-ResourceGroupName "myResourceGroup" `
-Location "EastUS2" `
-VMScaleSetName "myScaleSet" `
-VirtualNetworkName "myVnet" `
-SubnetName "mySubnet" `
-PublicIpAddressName "myPublicIPAddress" `
-LoadBalancerName "myLoadBalancer" `
-UpgradePolicy "Automatic" `
-Zone "1", "2", "3"
For a complete example of a single-zone scale set and network resources, see this sample Resource Manager
template
Zone -redundant scale set
To create a zone-redundant scale set, specify multiple values in the zones property for the
Microsoft.Compute/virtualMachineScaleSets resource type. The following example creates a zone-redundant
scale set named myScaleSet across East US 2 zones 1,2,3:
{
"type": "Microsoft.Compute/virtualMachineScaleSets",
"name": "myScaleSet",
"location": "East US 2",
"apiVersion": "2017-12-01",
"zones": [
"1",
"2",
"3"
]
}
If you create a public IP address or a load balancer, specify the "sku": { "name": "Standard" }" property to create
zone-redundant network resources. You also need to create a Network Security Group and rules to permit any
traffic. For more information, see Azure Load Balancer Standard overview and Standard Load Balancer and
Availability Zones.
For a complete example of a zone-redundant scale set and network resources, see this sample Resource
Manager template
Next steps
Now that you have created a scale set in an Availability Zone, you can learn how to Deploy applications on
virtual machine scale sets or Use autoscale with virtual machine scale sets.
What is Azure Load Balancer?
3/30/2021 • 3 minutes to read • Edit Online
Load balancing refers to evenly distributing load (incoming network traffic) across a group of backend resources
or servers.
Azure Load Balancer operates at layer 4 of the Open Systems Interconnection (OSI) model. It's the single point of
contact for clients. Load balancer distributes inbound flows that arrive at the load balancer's front end to
backend pool instances. These flows are according to configured load-balancing rules and health probes. The
backend pool instances can be Azure Virtual Machines or instances in a virtual machine scale set.
A public load balancer can provide outbound connections for virtual machines (VMs) inside your virtual
network. These connections are accomplished by translating their private IP addresses to public IP addresses.
Public Load Balancers are used to load balance internet traffic to your VMs.
An internal (or private) load balancer is used where private IPs are needed at the frontend only. Internal
load balancers are used to load balance traffic inside a virtual network. A load balancer frontend can be
accessed from an on-premises network in a hybrid scenario.
Figure: Balancing multi-tier applications by using both public and internal Load Balancer
For more information on the individual load balancer components, see Azure Load Balancer components.
NOTE
Azure provides a suite of fully managed load-balancing solutions for your scenarios.
If you are looking to do DNS based global routing and do not have requirements for Transport Layer Security (TLS)
protocol termination ("SSL offload"), per-HTTP/HTTPS request or application-layer processing, review Traffic Manager.
If you want to load balance between your servers in a region at the application layer, review Application Gateway.
If you need to optimize global routing of your web traffic and optimize top-tier end-user performance and reliability
through quick global failover, see Front Door.
Your end-to-end scenarios may benefit from combining these solutions as needed. For an Azure load-balancing options
comparison, see Overview of load-balancing options in Azure.
What's new?
Subscribe to the RSS feed and view the latest Azure Load Balancer feature updates on the Azure Updates page.
Next steps
See Create a public standard load balancer to get started with using a load balancer.
For more information on Azure Load Balancer limitations and components, see Azure Load Balancer
components and Azure Load Balancer concepts
Load Balancer and Availability Zones
3/5/2021 • 3 minutes to read • Edit Online
Azure Load Balancer supports availability zones scenarios. You can use Standard Load Balancer to increase
availability throughout your scenario by aligning resources with, and distribution across zones. Review this
document to understand these concepts and fundamental scenario design guidance
A Load Balancer can either be zone redundant, zonal, or non-zonal . To configure the zone related properties
(mentioned above) for your load balancer, select the appropriate type of frontend needed.
Zone redundant
In a region with Availability Zones, a Standard Load Balancer can be zone-redundant. This traffic is served by a
single IP address.
A single frontend IP address will survive zone failure. The frontend IP may be used to reach all (non-impacted)
backend pool members no matter the zone. One or more availability zones can fail and the data path survives as
long as one zone in the region remains healthy.
The frontend's IP address is served simultaneously by multiple independent infrastructure deployments in
multiple availability zones. Any retries or reestablishment will succeed in other zones not affected by the zone
failure.
Zonal
You can choose to have a frontend guaranteed to a single zone, which is known as a zonal. This scenario means
any inbound or outbound flow is served by a single zone in a region. Your frontend shares fate with the health
of the zone. The data path is unaffected by failures in zones other than where it was guaranteed. You can use
zonal frontends to expose an IP address per Availability Zone.
Additionally, the use of zonal frontends directly for load balanced endpoints within each zone is supported. You
can use this configuration to expose per zone load-balanced endpoints to individually monitor each zone. For
public endpoints, you can integrate them with a DNS load-balancing product like Traffic Manager and use a
single DNS name.
Design considerations
Now that you understand the zone related properties for Standard Load Balancer, the following design
considerations might help as you design for high availability.
Tolerance to zone failure
A zone redundant Load Balancer can serve a zonal resource in any zone with one IP address. The IP can
survive one or more zone failures as long as at least one zone remains healthy within the region.
A zonal frontend is a reduction of the service to a single zone and shares fate with the respective zone. If the
zone your deployment is in goes down, your deployment will not survive this failure.
It is recommended you use zone redundant Load Balancer for your production workloads.
Control vs data plane implications
Zone-redundancy doesn't imply hitless data plane or control plane. Zone-redundant flows can use any zone and
your flows will use all healthy zones in a region. In a zone failure, traffic flows using healthy zones aren't
affected.
Traffic flows using a zone at the time of zone failure may be affected but applications can recover. Traffic
continues in the healthy zones within the region upon retransmission when Azure has converged around the
zone failure.
Review Azure cloud design patterns to improve the resiliency of your application to failure scenarios.
Next steps
Learn more about Availability Zones
Learn more about Standard Load Balancer
Learn how to load balance VMs within a zone using a zonal Standard Load Balancer
Learn how to load balance VMs across zones using a zone redundant Standard Load Balancer
Learn about Azure cloud design patterns to improve the resiliency of your application to failure scenarios.
Quickstart: Create a public load balancer to load
balance VMs using the Azure portal
3/30/2021 • 15 minutes to read • Edit Online
Get started with Azure Load Balancer by using the Azure portal to create a public load balancer and three virtual
machines.
Prerequisites
An Azure account with an active subscription. Create an account for free.
Sign in to Azure
Sign in to the Azure portal at https://portal.azure.com.
Standard SKU
Basic SKU
NOTE
Standard SKU load balancer is recommended for production workloads. For more information about SKUs, see Azure
Load Balancer SKUs .
SET T IN G VA L UE
Public IP address Select Create new . If you have an existing Public IP you
would like to use, select Use existing .
5. Accept the defaults for the remaining settings, and then select Review + create .
6. In the Review + create tab, select Create .
Create load balancer resources
In this section, you configure:
Load balancer settings for a backend address pool.
A health probe.
A load balancer rule.
Create a backend pool
A backend address pool contains the IP addresses of the virtual (NICs) connected to the load balancer.
Create the backend address pool myBackendPool to include virtual machines for load-balancing internet
traffic.
1. Select All ser vices in the left-hand menu, select All resources , and then select myLoadBalancer from
the resources list.
2. Under Settings , select Backend pools , then select Add .
3. On the Add a backend pool page, for name, type myBackendPool , as the name for your backend
pool, and then select Add .
Create a health probe
The load balancer monitors the status of your app with a health probe.
The health probe adds or removes VMs from the load balancer based on their response to health checks.
Create a health probe named myHealthProbe to monitor the health of the VMs.
1. Select All ser vices in the left-hand menu, select All resources , and then select myLoadBalancer from
the resources list.
2. Under Settings , select Health probes , then select Add .
SET T IN G VA L UE
Port Enter 80 .
SET T IN G VA L UE
Port Enter 80 .
Outbound source network address translation (SNAT) Select (Recommended) Use outbound rules to
provide backend pool members access to the
internet.
SET T IN G VA L UE
Project Details
Instance details
3. Select the IP Addresses tab or select the Next: IP Addresses button at the bottom of the page.
4. In the IP Addresses tab, enter this information:
SET T IN G VA L UE
SET T IN G VA L UE
7. Select Save .
8. Select the Security tab.
9. Under BastionHost , select Enable . Enter this information:
SET T IN G VA L UE
10. Select the Review + create tab or select the Review + create button.
11. Select Create .
Create virtual machines
In this section, you'll create three VMs (myVM1 , myVM2 and myVM3 ) in three different zones (Zone 1 , Zone
2 , and Zone 3 ).
These VMs are added to the backend pool of the load balancer that was created earlier.
1. On the upper-left side of the portal, select Create a resource > Compute > Vir tual machine .
2. In Create a vir tual machine , type or select the values in the Basics tab:
SET T IN G VA L UE
Project Details
Instance details
SET T IN G VA L UE
Administrator account
3. Select the Networking tab, or select Next: Disks , then Next: Networking .
4. In the Networking tab, select or enter:
SET T IN G VA L UE
Network interface
Subnet myBackendSubnet
Load balancing
SET T IN G VA L UE
Monitoring
SET T IN G VM 2 VM 3
Availability zone 2 3
Network security group Select the existing myNSG Select the existing myNSG
Port allocation -> Port allocation Select Manually choose number of outbound
por ts
4. Select Add .
Add virtual machines to outbound pool
1. Select All ser vices in the left-hand menu, select All resources , and then select myLoadBalancer from
the resources list.
2. Under Settings , select Backend pools .
3. Select myBackendPoolOutbound .
4. In Vir tual network , select myVNet .
5. In Vir tual machines , select + Add .
6. Check the boxes next to myVM1 , myVM2 , and myVM3 .
7. Select Add .
8. Select Save .
Install IIS
1. Select All ser vices in the left-hand menu, select All resources , and then from the resources list, select
myVM1 that is located in the CreatePubLBQS-rg resource group.
2. On the Over view page, select Connect , then Bastion .
3. Enter the username and password entered during VM creation.
4. Select Connect .
5. On the server desktop, navigate to Windows Administrative Tools > Windows PowerShell .
6. In the PowerShell Window, run the following commands to:
Install the IIS server
Remove the default iisstart.htm file
Add a new iisstart.htm file that displays the name of the VM:
To see the load balancer distribute traffic across all three VMs, you can customize the default page of each VM's
IIS Web server and then force-refresh your web browser from the client machine.
Clean up resources
When no longer needed, delete the resource group, load Balancer, and all related resources. To do so, select the
resource group CreatePubLBQS-rg that contains the resources and then select Delete .
Next steps
In this quickstart, you:
Created an Azure Standard or Basic Load Balancer
Attached 3 VMs to the load balancer.
Configured the load balancer traffic rule, health probe, and then tested the load balancer.
To learn more about Azure Load Balancer, continue to:
What is Azure Load Balancer?
Quickstart: Create a public load balancer to load
balance VMs using Azure PowerShell
3/30/2021 • 14 minutes to read • Edit Online
Get started with Azure Load Balancer by using Azure PowerShell to create a public load balancer and three
virtual machines.
Prerequisites
An Azure account with an active subscription. Create an account for free.
Azure PowerShell installed locally or Azure Cloud Shell
If you choose to install and use PowerShell locally, this article requires the Azure PowerShell module version
5.4.1 or later. Run Get-Module -ListAvailable Az to find the installed version. If you need to upgrade, see Install
Azure PowerShell module. If you're running PowerShell locally, you also need to run Connect-AzAccount to create
a connection with Azure.
Standard SKU
Basic SKU
NOTE
Standard SKU load balancer is recommended for production workloads. For more information about skus, see Azure
Load Balancer SKUs .
Create a public IP address - Standard
Use New-AzPublicIpAddress to create a public IP address.
$publicip = @{
Name = 'myPublicIP'
ResourceGroupName = 'CreatePubLBQS-rg'
Location = 'eastus'
Sku = 'Standard'
AllocationMethod = 'static'
Zone = 1,2,3
}
New-AzPublicIpAddress @publicip
$publicip = @{
Name = 'myPublicIP'
ResourceGroupName = 'CreatePubLBQS-rg'
Location = 'eastus'
Sku = 'Standard'
AllocationMethod = 'static'
Zone = 1
}
New-AzPublicIpAddress @publicip
## For loop with variable to create virtual machines for load balancer backend pool. ##
for ($i=1; $i -le 3; $i++)
{
## Command to create network interface for VMs ##
$nic = @{
Name = "myNicVM$i"
ResourceGroupName = 'CreatePubLBQS-rg'
Location = 'eastus'
Subnet = $vnet.Subnets[0]
NetworkSecurityGroup = $nsg
LoadBalancerBackendAddressPool = $bepool
}
$nicVM = New-AzNetworkInterface @nic
The deployments of the virtual machines and bastion host are submitted as PowerShell jobs. To view the status
of the jobs, use Get-Job:
Get-Job
$publicipout = @{
Name = 'myPublicIPOutbound'
ResourceGroupName = 'CreatePubLBQS-rg'
Location = 'eastus'
Sku = 'Standard'
AllocationMethod = 'static'
Zone = 1,2,3
}
New-AzPublicIpAddress @publicipout
$publicipout = @{
Name = 'myPublicIPOutbound'
ResourceGroupName = 'CreatePubLBQS-rg'
Location = 'eastus'
Sku = 'Standard'
AllocationMethod = 'static'
Zone = 1
}
New-AzPublicIpAddress @publicipout
# For loop with variable to add virtual machines to backend outbound pool. ##
for ($i=1; $i -le 3; $i++)
{
$nic = @{
ResourceGroupName = 'CreatePubLBQS-rg'
Name = "myNicVM$i"
}
$nicvm = Get-AzNetworkInterface @nic
Install IIS
Use Set-AzVMExtension to install the Custom Script Extension.
The extension runs PowerShell Add-WindowsFeature Web-Server to install the IIS webserver and then updates the
Default.htm page to show the hostname of the VM:
IMPORTANT
Ensure the virtual machine deployments have completed from the previous steps before proceeding. Use Get-Job to
check the status of the virtual machine deployment jobs.
## For loop with variable to install custom script extension on virtual machines. ##
for ($i=1; $i -le 3; $i++)
{
$ext = @{
Publisher = 'Microsoft.Compute'
ExtensionType = 'CustomScriptExtension'
ExtensionName = 'IIS'
ResourceGroupName = 'CreatePubLBQS-rg'
VMName = "myVM$i"
Location = 'eastus'
TypeHandlerVersion = '1.8'
SettingString = '{"commandToExecute":"powershell Add-WindowsFeature Web-Server; powershell Add-Content -
Path \"C:\\inetpub\\wwwroot\\Default.htm\" -Value $($env:computername)"}'
}
Set-AzVMExtension @ext -AsJob
}
The extensions are deployed as PowerShell jobs. To view the status of the installation jobs, use Get-Job:
Get-Job
$ip = @{
ResourceGroupName = 'CreatePubLBQS-rg'
Name = 'myPublicIP'
}
Get-AzPublicIPAddress @ip | select IpAddress
Copy the public IP address, and then paste it into the address bar of your browser. The default page of IIS Web
server is displayed on the browser.
To see the load balancer distribute traffic across all three VMs, you can customize the default page of each VM's
IIS Web server and then force-refresh your web browser from the client machine.
Clean up resources
When no longer needed, you can use the Remove-AzResourceGroup command to remove the resource group,
load balancer, and the remaining resources.
Next steps
In this quickstart:
You created a standard or basic public load balancer
Attached virtual machines.
Configured the load balancer traffic rule and health probe.
Tested the load balancer.
To learn more about Azure Load Balancer, continue to:
What is Azure Load Balancer?
Quickstart: Create a public load balancer to load
balance VMs using Azure CLI
3/30/2021 • 15 minutes to read • Edit Online
Get started with Azure Load Balancer by using Azure CLI to create a public load balancer and three virtual
machines.
If you don't have an Azure subscription, create a free account before you begin.
Prerequisites
Use the Bash environment in Azure Cloud Shell.
If you prefer, install the Azure CLI to run CLI reference commands.
If you're using a local installation, sign in to the Azure CLI by using the az login command. To finish
the authentication process, follow the steps displayed in your terminal. For additional sign-in
options, see Sign in with the Azure CLI.
When you're prompted, install Azure CLI extensions on first use. For more information about
extensions, see Use extensions with the Azure CLI.
Run az version to find the version and dependent libraries that are installed. To upgrade to the
latest version, run az upgrade.
This quickstart requires version 2.0.28 or later of the Azure CLI. If using Azure Cloud Shell, the latest version
is already installed.
az group create \
--name CreatePubLBQS-rg \
--location eastus
Standard SKU
Basic SKU
NOTE
Standard SKU load balancer is recommended for production workloads. For more information about skus, see Azure
Load Balancer SKUs .
Configure virtual network - Standard
Before you deploy VMs and test your load balancer, create the supporting virtual network resources.
Create a virtual network
Create a virtual network using az network vnet create:
Named myVNet .
Address prefix of 10.1.0.0/16 .
Subnet named myBackendSubnet .
Subnet prefix of 10.1.0.0/24 .
In the CreatePubLBQS-rg resource group.
Location of eastus .
It can take a few minutes for the Azure Bastion host to deploy.
Create a network security group
For a standard load balancer, the VMs in the backend address for are required to have network interfaces that
belong to a network security group.
Create a network security group using az network nsg create:
Named myNSG .
In resource group CreatePubLBQS-rg .
VM2
Named myVM2 .
In resource group CreatePubLBQS-rg .
Attached to network interface myNicVM2 .
Virtual machine image win2019datacenter .
In Zone 2 .
az vm create \
--resource-group CreatePubLBQS-rg \
--name myVM2 \
--nics myNicVM2 \
--image win2019datacenter \
--admin-username azureuser \
--zone 2 \
--no-wait
VM3
Named myVM3 .
In resource group CreatePubLBQS-rg .
Attached to network interface myNicVM3 .
Virtual machine image win2019datacenter .
In Zone 3 .
az vm create \
--resource-group CreatePubLBQS-rg \
--name myVM3 \
--nics myNicVM3 \
--image win2019datacenter \
--admin-username azureuser \
--zone 3 \
--no-wait
az network lb create \
--resource-group CreatePubLBQS-rg \
--name myLoadBalancer \
--sku Standard \
--public-ip-address myPublicIP \
--frontend-ip-name myFrontEnd \
--backend-pool-name myBackEndPool
Public IP Prefix
Use az network public-ip prefix create to create a public IP prefix for the outbound connectivity.
Named myPublicIPPrefixOutbound .
In CreatePubLBQS-rg .
Prefix length of 28 .
For more information on scaling outbound NAT and outbound connectivity, see Scale outbound NAT with
multiple IP addresses.
Create outbound frontend IP configuration
Create a new frontend IP configuration with az network lb frontend-ip create :
Select the public IP or public IP prefix commands based on decision in previous step.
Public IP
Named myFrontEndOutbound .
In resource group CreatePubLBQS-rg .
Associated with public IP address myPublicIPOutbound .
Associated with load balancer myLoadBalancer .
Public IP prefix
Named myFrontEndOutbound .
In resource group CreatePubLBQS-rg .
Associated with public IP prefix myPublicIPPrefixOutbound .
Associated with load balancer myLoadBalancer .
Install IIS
Use az vm extension set to install IIS on the virtual machines and set the default website to the computer name.
az group delete \
--name CreatePubLBQS-rg
Next steps
In this quickstart
You created a standard or public load balancer
Attached virtual machines.
Configured the load balancer traffic rule and health probe.
Tested the load balancer.
To learn more about Azure Load Balancer, continue to:
What is Azure Load Balancer?
Quickstart: Create a public load balancer to load
balance VMs using the Azure portal
3/30/2021 • 15 minutes to read • Edit Online
Get started with Azure Load Balancer by using the Azure portal to create a public load balancer and three virtual
machines.
Prerequisites
An Azure account with an active subscription. Create an account for free.
Sign in to Azure
Sign in to the Azure portal at https://portal.azure.com.
Standard SKU
Basic SKU
NOTE
Standard SKU load balancer is recommended for production workloads. For more information about SKUs, see Azure
Load Balancer SKUs .
SET T IN G VA L UE
Public IP address Select Create new . If you have an existing Public IP you
would like to use, select Use existing .
5. Accept the defaults for the remaining settings, and then select Review + create .
6. In the Review + create tab, select Create .
Create load balancer resources
In this section, you configure:
Load balancer settings for a backend address pool.
A health probe.
A load balancer rule.
Create a backend pool
A backend address pool contains the IP addresses of the virtual (NICs) connected to the load balancer.
Create the backend address pool myBackendPool to include virtual machines for load-balancing internet
traffic.
1. Select All ser vices in the left-hand menu, select All resources , and then select myLoadBalancer from
the resources list.
2. Under Settings , select Backend pools , then select Add .
3. On the Add a backend pool page, for name, type myBackendPool , as the name for your backend
pool, and then select Add .
Create a health probe
The load balancer monitors the status of your app with a health probe.
The health probe adds or removes VMs from the load balancer based on their response to health checks.
Create a health probe named myHealthProbe to monitor the health of the VMs.
1. Select All ser vices in the left-hand menu, select All resources , and then select myLoadBalancer from
the resources list.
2. Under Settings , select Health probes , then select Add .
SET T IN G VA L UE
Port Enter 80 .
SET T IN G VA L UE
Port Enter 80 .
Outbound source network address translation (SNAT) Select (Recommended) Use outbound rules to
provide backend pool members access to the
internet.
SET T IN G VA L UE
Project Details
Instance details
3. Select the IP Addresses tab or select the Next: IP Addresses button at the bottom of the page.
4. In the IP Addresses tab, enter this information:
SET T IN G VA L UE
SET T IN G VA L UE
7. Select Save .
8. Select the Security tab.
9. Under BastionHost , select Enable . Enter this information:
SET T IN G VA L UE
10. Select the Review + create tab or select the Review + create button.
11. Select Create .
Create virtual machines
In this section, you'll create three VMs (myVM1 , myVM2 and myVM3 ) in three different zones (Zone 1 , Zone
2 , and Zone 3 ).
These VMs are added to the backend pool of the load balancer that was created earlier.
1. On the upper-left side of the portal, select Create a resource > Compute > Vir tual machine .
2. In Create a vir tual machine , type or select the values in the Basics tab:
SET T IN G VA L UE
Project Details
Instance details
SET T IN G VA L UE
Administrator account
3. Select the Networking tab, or select Next: Disks , then Next: Networking .
4. In the Networking tab, select or enter:
SET T IN G VA L UE
Network interface
Subnet myBackendSubnet
Load balancing
SET T IN G VA L UE
Monitoring
SET T IN G VM 2 VM 3
Availability zone 2 3
Network security group Select the existing myNSG Select the existing myNSG
Port allocation -> Port allocation Select Manually choose number of outbound
por ts
4. Select Add .
Add virtual machines to outbound pool
1. Select All ser vices in the left-hand menu, select All resources , and then select myLoadBalancer from
the resources list.
2. Under Settings , select Backend pools .
3. Select myBackendPoolOutbound .
4. In Vir tual network , select myVNet .
5. In Vir tual machines , select + Add .
6. Check the boxes next to myVM1 , myVM2 , and myVM3 .
7. Select Add .
8. Select Save .
Install IIS
1. Select All ser vices in the left-hand menu, select All resources , and then from the resources list, select
myVM1 that is located in the CreatePubLBQS-rg resource group.
2. On the Over view page, select Connect , then Bastion .
3. Enter the username and password entered during VM creation.
4. Select Connect .
5. On the server desktop, navigate to Windows Administrative Tools > Windows PowerShell .
6. In the PowerShell Window, run the following commands to:
Install the IIS server
Remove the default iisstart.htm file
Add a new iisstart.htm file that displays the name of the VM:
To see the load balancer distribute traffic across all three VMs, you can customize the default page of each VM's
IIS Web server and then force-refresh your web browser from the client machine.
Clean up resources
When no longer needed, delete the resource group, load Balancer, and all related resources. To do so, select the
resource group CreatePubLBQS-rg that contains the resources and then select Delete .
Next steps
In this quickstart, you:
Created an Azure Standard or Basic Load Balancer
Attached 3 VMs to the load balancer.
Configured the load balancer traffic rule, health probe, and then tested the load balancer.
To learn more about Azure Load Balancer, continue to:
What is Azure Load Balancer?
Quickstart: Create a public load balancer to load
balance VMs using Azure PowerShell
3/30/2021 • 14 minutes to read • Edit Online
Get started with Azure Load Balancer by using Azure PowerShell to create a public load balancer and three
virtual machines.
Prerequisites
An Azure account with an active subscription. Create an account for free.
Azure PowerShell installed locally or Azure Cloud Shell
If you choose to install and use PowerShell locally, this article requires the Azure PowerShell module version
5.4.1 or later. Run Get-Module -ListAvailable Az to find the installed version. If you need to upgrade, see Install
Azure PowerShell module. If you're running PowerShell locally, you also need to run Connect-AzAccount to create
a connection with Azure.
Standard SKU
Basic SKU
NOTE
Standard SKU load balancer is recommended for production workloads. For more information about skus, see Azure
Load Balancer SKUs .
Create a public IP address - Standard
Use New-AzPublicIpAddress to create a public IP address.
$publicip = @{
Name = 'myPublicIP'
ResourceGroupName = 'CreatePubLBQS-rg'
Location = 'eastus'
Sku = 'Standard'
AllocationMethod = 'static'
Zone = 1,2,3
}
New-AzPublicIpAddress @publicip
$publicip = @{
Name = 'myPublicIP'
ResourceGroupName = 'CreatePubLBQS-rg'
Location = 'eastus'
Sku = 'Standard'
AllocationMethod = 'static'
Zone = 1
}
New-AzPublicIpAddress @publicip
## For loop with variable to create virtual machines for load balancer backend pool. ##
for ($i=1; $i -le 3; $i++)
{
## Command to create network interface for VMs ##
$nic = @{
Name = "myNicVM$i"
ResourceGroupName = 'CreatePubLBQS-rg'
Location = 'eastus'
Subnet = $vnet.Subnets[0]
NetworkSecurityGroup = $nsg
LoadBalancerBackendAddressPool = $bepool
}
$nicVM = New-AzNetworkInterface @nic
The deployments of the virtual machines and bastion host are submitted as PowerShell jobs. To view the status
of the jobs, use Get-Job:
Get-Job
$publicipout = @{
Name = 'myPublicIPOutbound'
ResourceGroupName = 'CreatePubLBQS-rg'
Location = 'eastus'
Sku = 'Standard'
AllocationMethod = 'static'
Zone = 1,2,3
}
New-AzPublicIpAddress @publicipout
$publicipout = @{
Name = 'myPublicIPOutbound'
ResourceGroupName = 'CreatePubLBQS-rg'
Location = 'eastus'
Sku = 'Standard'
AllocationMethod = 'static'
Zone = 1
}
New-AzPublicIpAddress @publicipout
# For loop with variable to add virtual machines to backend outbound pool. ##
for ($i=1; $i -le 3; $i++)
{
$nic = @{
ResourceGroupName = 'CreatePubLBQS-rg'
Name = "myNicVM$i"
}
$nicvm = Get-AzNetworkInterface @nic
Install IIS
Use Set-AzVMExtension to install the Custom Script Extension.
The extension runs PowerShell Add-WindowsFeature Web-Server to install the IIS webserver and then updates the
Default.htm page to show the hostname of the VM:
IMPORTANT
Ensure the virtual machine deployments have completed from the previous steps before proceeding. Use Get-Job to
check the status of the virtual machine deployment jobs.
## For loop with variable to install custom script extension on virtual machines. ##
for ($i=1; $i -le 3; $i++)
{
$ext = @{
Publisher = 'Microsoft.Compute'
ExtensionType = 'CustomScriptExtension'
ExtensionName = 'IIS'
ResourceGroupName = 'CreatePubLBQS-rg'
VMName = "myVM$i"
Location = 'eastus'
TypeHandlerVersion = '1.8'
SettingString = '{"commandToExecute":"powershell Add-WindowsFeature Web-Server; powershell Add-Content -
Path \"C:\\inetpub\\wwwroot\\Default.htm\" -Value $($env:computername)"}'
}
Set-AzVMExtension @ext -AsJob
}
The extensions are deployed as PowerShell jobs. To view the status of the installation jobs, use Get-Job:
Get-Job
$ip = @{
ResourceGroupName = 'CreatePubLBQS-rg'
Name = 'myPublicIP'
}
Get-AzPublicIPAddress @ip | select IpAddress
Copy the public IP address, and then paste it into the address bar of your browser. The default page of IIS Web
server is displayed on the browser.
To see the load balancer distribute traffic across all three VMs, you can customize the default page of each VM's
IIS Web server and then force-refresh your web browser from the client machine.
Clean up resources
When no longer needed, you can use the Remove-AzResourceGroup command to remove the resource group,
load balancer, and the remaining resources.
Next steps
In this quickstart:
You created a standard or basic public load balancer
Attached virtual machines.
Configured the load balancer traffic rule and health probe.
Tested the load balancer.
To learn more about Azure Load Balancer, continue to:
What is Azure Load Balancer?
Quickstart: Create a public load balancer to load
balance VMs using Azure CLI
3/30/2021 • 15 minutes to read • Edit Online
Get started with Azure Load Balancer by using Azure CLI to create a public load balancer and three virtual
machines.
If you don't have an Azure subscription, create a free account before you begin.
Prerequisites
Use the Bash environment in Azure Cloud Shell.
If you prefer, install the Azure CLI to run CLI reference commands.
If you're using a local installation, sign in to the Azure CLI by using the az login command. To finish
the authentication process, follow the steps displayed in your terminal. For additional sign-in
options, see Sign in with the Azure CLI.
When you're prompted, install Azure CLI extensions on first use. For more information about
extensions, see Use extensions with the Azure CLI.
Run az version to find the version and dependent libraries that are installed. To upgrade to the
latest version, run az upgrade.
This quickstart requires version 2.0.28 or later of the Azure CLI. If using Azure Cloud Shell, the latest version
is already installed.
az group create \
--name CreatePubLBQS-rg \
--location eastus
Standard SKU
Basic SKU
NOTE
Standard SKU load balancer is recommended for production workloads. For more information about skus, see Azure
Load Balancer SKUs .
Configure virtual network - Standard
Before you deploy VMs and test your load balancer, create the supporting virtual network resources.
Create a virtual network
Create a virtual network using az network vnet create:
Named myVNet .
Address prefix of 10.1.0.0/16 .
Subnet named myBackendSubnet .
Subnet prefix of 10.1.0.0/24 .
In the CreatePubLBQS-rg resource group.
Location of eastus .
It can take a few minutes for the Azure Bastion host to deploy.
Create a network security group
For a standard load balancer, the VMs in the backend address for are required to have network interfaces that
belong to a network security group.
Create a network security group using az network nsg create:
Named myNSG .
In resource group CreatePubLBQS-rg .
VM2
Named myVM2 .
In resource group CreatePubLBQS-rg .
Attached to network interface myNicVM2 .
Virtual machine image win2019datacenter .
In Zone 2 .
az vm create \
--resource-group CreatePubLBQS-rg \
--name myVM2 \
--nics myNicVM2 \
--image win2019datacenter \
--admin-username azureuser \
--zone 2 \
--no-wait
VM3
Named myVM3 .
In resource group CreatePubLBQS-rg .
Attached to network interface myNicVM3 .
Virtual machine image win2019datacenter .
In Zone 3 .
az vm create \
--resource-group CreatePubLBQS-rg \
--name myVM3 \
--nics myNicVM3 \
--image win2019datacenter \
--admin-username azureuser \
--zone 3 \
--no-wait
az network lb create \
--resource-group CreatePubLBQS-rg \
--name myLoadBalancer \
--sku Standard \
--public-ip-address myPublicIP \
--frontend-ip-name myFrontEnd \
--backend-pool-name myBackEndPool
Public IP Prefix
Use az network public-ip prefix create to create a public IP prefix for the outbound connectivity.
Named myPublicIPPrefixOutbound .
In CreatePubLBQS-rg .
Prefix length of 28 .
For more information on scaling outbound NAT and outbound connectivity, see Scale outbound NAT with
multiple IP addresses.
Create outbound frontend IP configuration
Create a new frontend IP configuration with az network lb frontend-ip create :
Select the public IP or public IP prefix commands based on decision in previous step.
Public IP
Named myFrontEndOutbound .
In resource group CreatePubLBQS-rg .
Associated with public IP address myPublicIPOutbound .
Associated with load balancer myLoadBalancer .
Public IP prefix
Named myFrontEndOutbound .
In resource group CreatePubLBQS-rg .
Associated with public IP prefix myPublicIPPrefixOutbound .
Associated with load balancer myLoadBalancer .
Install IIS
Use az vm extension set to install IIS on the virtual machines and set the default website to the computer name.
az group delete \
--name CreatePubLBQS-rg
Next steps
In this quickstart
You created a standard or public load balancer
Attached virtual machines.
Configured the load balancer traffic rule and health probe.
Tested the load balancer.
To learn more about Azure Load Balancer, continue to:
What is Azure Load Balancer?
Tutorial: Load balance VMs across availability zones
with a Standard Load Balancer using the Azure
portal
3/30/2021 • 9 minutes to read • Edit Online
Load balancing provides a higher level of availability by spreading incoming requests across multiple virtual
machines. This tutorial steps through creating a public Standard Load Balancer that load balances VMs across
availability zones. This helps to protect your apps and data from an unlikely failure or loss of an entire
datacenter. With zone-redundancy, one or more availability zones can fail and the data path survives as long as
one zone in the region remains healthy. You learn how to:
Create a Standard Load Balancer
Create network security groups to define incoming traffic rules
Create zone-redundant VMs across multiple zones and attach to a load balancer
Create load balancer health probe
Create load balancer traffic rules
Create a basic IIS site
View a load balancer in action
For more information about using Availability zones with Standard Load Balancer, see Standard Load Balancer
and Availability Zones.
If you prefer, you can complete this tutorial using the Azure CLI.
If you don't have an Azure subscription, create a free account before you begin.
Prerequisites
An Azure subscription
Sign in to Azure
Sign in to the Azure portal at https://portal.azure.com.
SET T IN G VA L UE
Name myLoadBalancer
PA RA M ET ER VA L UE
<IPv4-address-space> 10.0.0.0/16
<subnet-name> myBackendSubnet
<subnet-address-range> 10.0.0.0/24
Project Details
Instance details
3. Select the IP Addresses tab or select the Next: IP Addresses button at the bottom of the page.
4. In the IP Addresses tab, enter this information:
SET T IN G VA L UE
SET T IN G VA L UE
7. Select Save .
8. Select the Review + create tab or select the Review + create button.
9. Select Create .
6. Check to make sure your load balancer backend pool setting displays all the three VMs - myVM1 ,
myVM2 and myVM3 .
Create a health probe
To allow the load balancer to monitor the status of your app, you use a health probe. The health probe
dynamically adds or removes VMs from the load balancer rotation based on their response to health checks.
Create a health probe myHealthProbe to monitor the health of the VMs.
1. Click All resources in the left-hand menu, and then click myLoadBalancer from the resources list.
2. Under Settings , click Health probes , then click Add .
3. Use these values to create the health probe:
myHealthProbe - for the name of the health probe.
HTTP - for the protocol type.
80 - for the port number.
15 - for number of Inter val in seconds between probe attempts.
2 - for number of Unhealthy threshold or consecutive probe failures that must occur before a VM is
considered unhealthy.
4. Click OK .
Clean up resources
When no longer needed, delete the resource group, load balancer, and all related resources. To do so, select the
resource group that contains the load balancer and select Delete .
Next steps
Learn more about load balancing a VM within a specific availability zone..
Load balance VMs within an availability zone
Quickstart: Create a public load balancer to load
balance VMs using Azure CLI
3/30/2021 • 15 minutes to read • Edit Online
Get started with Azure Load Balancer by using Azure CLI to create a public load balancer and three virtual
machines.
If you don't have an Azure subscription, create a free account before you begin.
Prerequisites
Use the Bash environment in Azure Cloud Shell.
If you prefer, install the Azure CLI to run CLI reference commands.
If you're using a local installation, sign in to the Azure CLI by using the az login command. To finish
the authentication process, follow the steps displayed in your terminal. For additional sign-in
options, see Sign in with the Azure CLI.
When you're prompted, install Azure CLI extensions on first use. For more information about
extensions, see Use extensions with the Azure CLI.
Run az version to find the version and dependent libraries that are installed. To upgrade to the
latest version, run az upgrade.
This quickstart requires version 2.0.28 or later of the Azure CLI. If using Azure Cloud Shell, the latest version
is already installed.
az group create \
--name CreatePubLBQS-rg \
--location eastus
Standard SKU
Basic SKU
NOTE
Standard SKU load balancer is recommended for production workloads. For more information about skus, see Azure
Load Balancer SKUs .
Configure virtual network - Standard
Before you deploy VMs and test your load balancer, create the supporting virtual network resources.
Create a virtual network
Create a virtual network using az network vnet create:
Named myVNet .
Address prefix of 10.1.0.0/16 .
Subnet named myBackendSubnet .
Subnet prefix of 10.1.0.0/24 .
In the CreatePubLBQS-rg resource group.
Location of eastus .
It can take a few minutes for the Azure Bastion host to deploy.
Create a network security group
For a standard load balancer, the VMs in the backend address for are required to have network interfaces that
belong to a network security group.
Create a network security group using az network nsg create:
Named myNSG .
In resource group CreatePubLBQS-rg .
VM2
Named myVM2 .
In resource group CreatePubLBQS-rg .
Attached to network interface myNicVM2 .
Virtual machine image win2019datacenter .
In Zone 2 .
az vm create \
--resource-group CreatePubLBQS-rg \
--name myVM2 \
--nics myNicVM2 \
--image win2019datacenter \
--admin-username azureuser \
--zone 2 \
--no-wait
VM3
Named myVM3 .
In resource group CreatePubLBQS-rg .
Attached to network interface myNicVM3 .
Virtual machine image win2019datacenter .
In Zone 3 .
az vm create \
--resource-group CreatePubLBQS-rg \
--name myVM3 \
--nics myNicVM3 \
--image win2019datacenter \
--admin-username azureuser \
--zone 3 \
--no-wait
az network lb create \
--resource-group CreatePubLBQS-rg \
--name myLoadBalancer \
--sku Standard \
--public-ip-address myPublicIP \
--frontend-ip-name myFrontEnd \
--backend-pool-name myBackEndPool
Public IP Prefix
Use az network public-ip prefix create to create a public IP prefix for the outbound connectivity.
Named myPublicIPPrefixOutbound .
In CreatePubLBQS-rg .
Prefix length of 28 .
For more information on scaling outbound NAT and outbound connectivity, see Scale outbound NAT with
multiple IP addresses.
Create outbound frontend IP configuration
Create a new frontend IP configuration with az network lb frontend-ip create :
Select the public IP or public IP prefix commands based on decision in previous step.
Public IP
Named myFrontEndOutbound .
In resource group CreatePubLBQS-rg .
Associated with public IP address myPublicIPOutbound .
Associated with load balancer myLoadBalancer .
Public IP prefix
Named myFrontEndOutbound .
In resource group CreatePubLBQS-rg .
Associated with public IP prefix myPublicIPPrefixOutbound .
Associated with load balancer myLoadBalancer .
Install IIS
Use az vm extension set to install IIS on the virtual machines and set the default website to the computer name.
az group delete \
--name CreatePubLBQS-rg
Next steps
In this quickstart
You created a standard or public load balancer
Attached virtual machines.
Configured the load balancer traffic rule and health probe.
Tested the load balancer.
To learn more about Azure Load Balancer, continue to:
What is Azure Load Balancer?
Manage public IP addresses
3/5/2021 • 12 minutes to read • Edit Online
Learn about a public IP address and how to create, change, and delete one. A public IP address is a resource with
its own configurable settings. Assigning a public IP address to an Azure resource that supports public IP
addresses enables:
Inbound communication from the Internet to the resource, such as Azure Virtual Machines (VM), Azure
Application Gateways, Azure Load Balancers, Azure VPN Gateways, and others. You can still communicate
with some resources, such as VMs, from the Internet, if a VM doesn't have a public IP address assigned to it,
as long as the VM is part of a load balancer back-end pool, and the load balancer is assigned a public IP
address. To determine whether a resource for a specific Azure service can be assigned a public IP address, or
whether it can be communicated with through the public IP address of a different Azure resource, see the
documentation for the service.
Outbound connectivity to the Internet using a predictable IP address. For example, a virtual machine can
communicate outbound to the Internet without a public IP address assigned to it, but its address is network
address translated by Azure to an unpredictable public address, by default. Assigning a public IP address to a
resource enables you to know which IP address is used for the outbound connection. Though predictable, the
address can change, depending on the assignment method chosen. For more information, see Create a
public IP address. To learn more about outbound connections from Azure resources, see Understand
outbound connections.
Complete the following tasks before completing steps in any section of this article:
If you don't already have an Azure account, sign up for a free trial account.
If using the portal, open https://portal.azure.com, and log in with your Azure account.
If using PowerShell commands to complete tasks in this article, either run the commands in the Azure Cloud
Shell, or by running PowerShell from your computer. The Azure Cloud Shell is a free interactive shell that you
can use to run the steps in this article. It has common Azure tools preinstalled and configured to use with
your account. This tutorial requires the Azure PowerShell module version 1.0.0 or later. Run
Get-Module -ListAvailable Az to find the installed version. If you need to upgrade, see Install Azure
PowerShell module. If you are running PowerShell locally, you also need to run Connect-AzAccount to create a
connection with Azure.
If using Azure Command-line interface (CLI) commands to complete tasks in this article, either run the
commands in the Azure Cloud Shell, or by running the CLI from your computer. This tutorial requires the
Azure CLI version 2.0.31 or later. Run az --version to find the installed version. If you need to install or
upgrade, see Install Azure CLI. If you are running the Azure CLI locally, you also need to run az login to
create a connection with Azure.
The account you log into, or connect to Azure with, must be assigned to the network contributor role or to a
custom role that is assigned the appropriate actions listed in Permissions.
Public IP addresses have a nominal charge. To view the pricing, read the IP address pricing page.
NOTE
Though the portal provides the option to create two public IP address resources (one IPv4 and one IPv6), the PowerShell
and CLI commands create one resource with an address for one IP version or the other. If you want two public IP address
resources, one for each IP version, you must run the command twice, specifying different names and IP versions for the
public IP address resources.
For additional detail on the specific attributes of a Public IP address during creation, see the table below.
Name (Only visible if you select IP Yes, if you select IP Version of Both The name must be different than the
Version of Both ) name you enter for the first Name in
this list. If you choose to create both
an IPv4 and an IPv6 address, the
portal creates two separate public IP
address resources, one with each IP
address version assigned to it.
IP address assignment (Only visible if Yes, if you select IP Version of Both Same restrictions as IP Address
you select IP Version of Both ) Assignment above
WARNING
To change the assignment for a Public IP address from static to dynamic, you must first dissociate the address from any
applicable IP configurations (see Delete section). Also note, when you change the assignment method from static to
dynamic, you lose the IP address that was assigned to the public IP address. While the Azure public DNS servers maintain
a mapping between static or dynamic addresses and any DNS name label (if you defined one), a dynamic IP address can
change when the virtual machine is started after being in the stopped (deallocated) state. To prevent the address from
changing, assign a static IP address.
Delete : Deletion of Public IPs requires that the Public IP object not be associated to any IP configuration or
Virtual Machine NIC. See the table below for more details.
RESO URC E A Z URE P O RTA L A Z URE P O W ERSH EL L A Z URE C L I
Permissions
To perform tasks on public IP addresses, your account must be assigned to the network contributor role or to a
custom role that is assigned the appropriate actions listed in the following table:
A C T IO N NAME
Next steps
Create a public IP address using PowerShell or Azure CLI sample scripts, or using Azure Resource Manager
templates
Create and assign Azure Policy definitions for public IP addresses
High availability for Azure SQL Database and SQL
Managed Instance
3/31/2021 • 11 minutes to read • Edit Online
Whenever the database engine or the operating system is upgraded, or a failure is detected, Azure Service
Fabric will move the stateless sqlservr.exe process to another stateless compute node with sufficient free
capacity. Data in Azure Blob storage is not affected by the move, and the data/log files are attached to the newly
initialized sqlservr.exe process. This process guarantees 99.99% availability, but a heavy workload may
experience some performance degradation during the transition since the new sqlservr.exe process starts with
cold cache.
NOTE
General Purpose databases with a size of 80 vcore may experience performance degradation with zone redundant
configuration. Additionally, operations such as backup, restore, database copy, setting up Geo-DR relationships, and
downgrading a zone redundant database from Business Critical to General Purpose may experience slower performance
for any single databases larger than 1 TB. Please see our latency documentation on scaling a database for more
information.
NOTE
The preview is not covered under Reserved Instance
NOTE
This feature is not available in SQL Managed Instance.
The zone redundant version of the high availability architecture is illustrated by the following diagram:
IMPORTANT
The Failover command is not available for readable secondary replicas of Hyperscale databases.
Conclusion
Azure SQL Database and Azure SQL Managed Instance feature a built-in high availability solution, that is deeply
integrated with the Azure platform. It is dependent on Service Fabric for failure detection and recovery, on Azure
Blob storage for data protection, and on Availability Zones for higher fault tolerance (as mentioned earlier in
document not applicable to Azure SQL Managed Instance yet). In addition, SQL Database and SQL Managed
Instance leverage the Always On availability group technology from the SQL Server instance for replication and
failover. The combination of these technologies enables applications to fully realize the benefits of a mixed
storage model and support the most demanding SLAs.
Next steps
Learn about Azure Availability Zones
Learn about Service Fabric
Learn about Azure Traffic Manager
Learn How to initiate a manual failover on SQL Managed Instance
For more options for high availability and disaster recovery, see Business Continuity
High availability for Azure SQL Database and SQL
Managed Instance
3/31/2021 • 11 minutes to read • Edit Online
Whenever the database engine or the operating system is upgraded, or a failure is detected, Azure Service
Fabric will move the stateless sqlservr.exe process to another stateless compute node with sufficient free
capacity. Data in Azure Blob storage is not affected by the move, and the data/log files are attached to the newly
initialized sqlservr.exe process. This process guarantees 99.99% availability, but a heavy workload may
experience some performance degradation during the transition since the new sqlservr.exe process starts with
cold cache.
NOTE
General Purpose databases with a size of 80 vcore may experience performance degradation with zone redundant
configuration. Additionally, operations such as backup, restore, database copy, setting up Geo-DR relationships, and
downgrading a zone redundant database from Business Critical to General Purpose may experience slower performance
for any single databases larger than 1 TB. Please see our latency documentation on scaling a database for more
information.
NOTE
The preview is not covered under Reserved Instance
NOTE
This feature is not available in SQL Managed Instance.
The zone redundant version of the high availability architecture is illustrated by the following diagram:
IMPORTANT
The Failover command is not available for readable secondary replicas of Hyperscale databases.
Conclusion
Azure SQL Database and Azure SQL Managed Instance feature a built-in high availability solution, that is deeply
integrated with the Azure platform. It is dependent on Service Fabric for failure detection and recovery, on Azure
Blob storage for data protection, and on Availability Zones for higher fault tolerance (as mentioned earlier in
document not applicable to Azure SQL Managed Instance yet). In addition, SQL Database and SQL Managed
Instance leverage the Always On availability group technology from the SQL Server instance for replication and
failover. The combination of these technologies enables applications to fully realize the benefits of a mixed
storage model and support the most demanding SLAs.
Next steps
Learn about Azure Availability Zones
Learn about Service Fabric
Learn about Azure Traffic Manager
Learn How to initiate a manual failover on SQL Managed Instance
For more options for high availability and disaster recovery, see Business Continuity
Azure Storage redundancy
4/7/2021 • 15 minutes to read • Edit Online
Azure Storage always stores multiple copies of your data so that it is protected from planned and unplanned
events, including transient hardware failures, network or power outages, and massive natural disasters.
Redundancy ensures that your storage account meets its availability and durability targets even in the face of
failures.
When deciding which redundancy option is best for your scenario, consider the tradeoffs between lower costs
and higher availability. The factors that help determine which redundancy option you should choose include:
How your data is replicated in the primary region
Whether your data is replicated to a second region that is geographically distant to the primary region, to
protect against regional disasters
Whether your application requires read access to the replicated data in the secondary region if the primary
region becomes unavailable for any reason
NOTE
Microsoft recommends using ZRS in the primary region for Azure Data Lake Storage Gen2 workloads.
Locally-redundant storage
Locally redundant storage (LRS) replicates your data three times within a single data center in the primary
region. LRS provides at least 99.999999999% (11 nines) durability of objects over a given year.
LRS is the lowest-cost redundancy option and offers the least durability compared to other options. LRS protects
your data against server rack and drive failures. However, if a disaster such as fire or flooding occurs within the
data center, all replicas of a storage account using LRS may be lost or unrecoverable. To mitigate this risk,
Microsoft recommends using zone-redundant storage (ZRS), geo-redundant storage (GRS), or geo-zone-
redundant storage (GZRS).
A write request to a storage account that is using LRS happens synchronously. The write operation returns
successfully only after the data is written to all three replicas.
The following diagram shows how your data is replicated within a single data center with LRS:
LRS is a good choice for the following scenarios:
If your application stores data that can be easily reconstructed if data loss occurs, you may opt for LRS.
If your application is restricted to replicating data only within a country or region due to data governance
requirements, you may opt for LRS. In some cases, the paired regions across which the data is geo-replicated
may be in another country or region. For more information on paired regions, see Azure regions.
Zone -redundant storage
Zone-redundant storage (ZRS) replicates your Azure Storage data synchronously across three Azure availability
zones in the primary region. Each availability zone is a separate physical location with independent power,
cooling, and networking. ZRS offers durability for Azure Storage data objects of at least 99.9999999999% (12
9's) over a given year.
With ZRS, your data is still accessible for both read and write operations even if a zone becomes unavailable. If a
zone becomes unavailable, Azure undertakes networking updates, such as DNS re-pointing. These updates may
affect your application if you access data before the updates have completed. When designing applications for
ZRS, follow practices for transient fault handling, including implementing retry policies with exponential back-
off.
A write request to a storage account that is using ZRS happens synchronously. The write operation returns
successfully only after the data is written to all replicas across the three availability zones.
Microsoft recommends using ZRS in the primary region for scenarios that require consistency, durability, and
high availability. ZRS is also recommended for restricting replication of data to within a country or region to
meet data governance requirements.
The following diagram shows how your data is replicated across availability zones in the primary region with
ZRS:
ZRS provides excellent performance, low latency, and resiliency for your data if it becomes temporarily
unavailable. However, ZRS by itself may not protect your data against a regional disaster where multiple zones
are permanently affected. For protection against regional disasters, Microsoft recommends using geo-zone-
redundant storage (GZRS), which uses ZRS in the primary region and also geo-replicates your data to a
secondary region.
The following table shows which types of storage accounts support ZRS in which regions:
With GRS or GZRS, the data in the secondary region isn't available for read or write access unless there is a
failover to the secondary region. For read access to the secondary region, configure your storage account to use
read-access geo-redundant storage (RA-GRS) or read-access geo-zone-redundant storage (RA-GZRS). For more
information, see Read access to data in the secondary region.
If the primary region becomes unavailable, you can choose to fail over to the secondary region. After the
failover has completed, the secondary region becomes the primary region, and you can again read and write
data. For more information on disaster recovery and to learn how to fail over to the secondary region, see
Disaster recovery and storage account failover.
IMPORTANT
Because data is replicated to the secondary region asynchronously, a failure that affects the primary region may result in
data loss if the primary region cannot be recovered. The interval between the most recent writes to the primary region
and the last write to the secondary region is known as the recovery point objective (RPO). The RPO indicates the point in
time to which data can be recovered. Azure Storage typically has an RPO of less than 15 minutes, although there's
currently no SLA on how long it takes to replicate data to the secondary region.
Only general-purpose v2 storage accounts support GZRS and RA-GZRS. For more information about storage
account types, see Azure storage account overview. GZRS and RA-GZRS support block blobs, page blobs (except
for VHD disks), files, tables, and queues.
GZRS and RA-GZRS are supported in the following regions:
(Africa) South Africa North
(Asia Pacific) East Asia
(Asia Pacific) Southeast Asia
(Asia Pacific) Australia East
(Asia Pacific) Central India
(Asia Pacific) Japan East
(Asia Pacific) Korea Central
(Canada) Canada Central
(Europe) North Europe
(Europe) West Europe
(Europe) France Central
(Europe) Germany West Central
(Europe) Norway East
(Europe) Switzerland North
(Europe) UK South
(Middle East) UAE North
(South America) Brazil South
(US) Central US
(US) East US
(US) East US 2
(US) North Central US
(US) South Central US
(US) West US
(US) West US 2
For information on pricing, see pricing details for Blobs, Files, Queues, and Tables.
NOTE
Azure Files does not support read-access geo-redundant storage (RA-GRS) and read-access geo-zone-redundant storage
(RA-GZRS).
Availability for read At least 99.9% (99% At least 99.9% (99% At least 99.9% (99% At least 99.9% (99%
requests for cool access tier) for cool access tier) for cool access tier) for cool access tier)
for GRS for GZRS
Availability for write At least 99.9% (99% At least 99.9% (99% At least 99.9% (99% At least 99.9% (99%
requests for cool access tier) for cool access tier) for cool access tier) for cool access tier)
Number of copies of Three copies within a Three copies across Six copies total, Six copies total,
data maintained on single region separate availability including three in the including three
separate nodes zones within a single primary region and across separate
region three in the availability zones in
secondary region the primary region
and three locally
redundant copies in
the secondary region
1 Account failoveris required to restore write availability if the primary region becomes unavailable. For more
information, see Disaster recovery and storage account failover.
Supported Azure Storage services
The following table shows which redundancy options are supported by each Azure Storage service.
All data for all storage accounts is copied according to the redundancy option for the storage account. Objects
including block blobs, append blobs, page blobs, queues, tables, and files are copied. Data in all tiers, including
the archive tier, is copied. For more information about blob tiers, see Azure Blob storage: hot, cool, and archive
access tiers.
For pricing information for each redundancy option, see Azure Storage pricing.
NOTE
Azure Premium Disk Storage currently supports only locally redundant storage (LRS). Block blob storage accounts support
locally redundant storage (LRS) and zone redundant storage (ZRS) in certain regions.
Data integrity
Azure Storage regularly verifies the integrity of data stored using cyclic redundancy checks (CRCs). If data
corruption is detected, it is repaired using redundant data. Azure Storage also calculates checksums on all
network traffic to detect corruption of data packets when storing or retrieving data.
See also
Check the Last Sync Time property for a storage account
Change the redundancy option for a storage account
Use geo-redundancy to design highly available applications
Disaster recovery and storage account failover
Azure Event Hubs - Geo-disaster recovery
4/10/2021 • 11 minutes to read • Edit Online
Resilience against disastrous outages of data processing resources is a requirement for many enterprises and in
some cases even required by industry regulations.
Azure Event Hubs already spreads the risk of catastrophic failures of individual machines or even complete racks
across clusters that span multiple failure domains within a datacenter and it implements transparent failure
detection and failover mechanisms such that the service will continue to operate within the assured service-
levels and typically without noticeable interruptions in the event of such failures. If an Event Hubs namespace
has been created with the enabled option for availability zones, the outage risk is further spread across three
physically separated facilities, and the service has enough capacity reserves to instantly cope with the complete,
catastrophic loss of the entire facility.
The all-active Azure Event Hubs cluster model with availability zone support provides resiliency against grave
hardware failures and even catastrophic loss of entire datacenter facilities. Still, there might be grave situations
with widespread physical destruction that even those measures cannot sufficiently defend against.
The Event Hubs Geo-disaster recovery feature is designed to make it easier to recover from a disaster of this
magnitude and abandon a failed Azure region for good and without having to change your application
configurations. Abandoning an Azure region will typically involve several services and this feature primarily
aims at helping to preserve the integrity of the composite application configuration.
The Geo-Disaster recovery feature ensures that the entire configuration of a namespace (Event Hubs, Consumer
Groups and settings) is continuously replicated from a primary namespace to a secondary namespace when
paired, and it allows you to initiate a once-only failover move from the primary to the secondary at any time.
The failover move will re-point the chosen alias name for the namespace to the secondary namespace and then
break the pairing. The failover is nearly instantaneous once initiated.
IMPORTANT
The feature enables instantaneous continuity of operations with the same configuration, but does not replicate the
event data . Unless the disaster caused the loss of all zones, the event data that is preserved in the primary Event Hub
after failover will be recoverable and the historic events can be obtained from there once access is restored. For replicating
event data and operating corresponding namespaces in active/active configurations to cope with outages and disasters,
don't lean on this Geo-disaster recovery feature set, but follow the replication guidance.
Dedicated Standard No
NOTE
You can't pair namespaces that are in the same dedicated cluster. You can pair namespaces that are in separate clusters.
WARNING
Failing over will activate the secondary namespace and remove the primary namespace from the Geo-
Disaster Recovery pairing. Create another namespace to have a new geo-disaster recovery pair.
Finally, you should add some monitoring to detect if a failover is necessary. In most cases, the service is one part
of a large ecosystem, thus automatic failovers are rarely possible, as often failovers must be performed in sync
with the remaining subsystem or infrastructure.
Example
In one example of this scenario, consider a Point of Sale (POS) solution that emits either messages or events.
Event Hubs passes those events to some mapping or reformatting solution, which then forwards mapped data
to another system for further processing. At that point, all of these systems might be hosted in the same Azure
region. The decision of when and what part to fail over depends on the flow of data in your infrastructure.
You can automate failover either with monitoring systems, or with custom-built monitoring solutions. However,
such automation takes extra planning and work, which is out of the scope of this article.
Failover flow
If you initiate the failover, two steps are required:
1. If another outage occurs, you want to be able to fail over again. Therefore, set up another passive
namespace and update the pairing.
2. Pull messages from the former primary namespace once it's available again. After that, use that
namespace for regular messaging outside of your geo-recovery setup, or delete the old primary
namespace.
NOTE
Only fail forward semantics are supported. In this scenario, you fail over and then re-pair with a new namespace. Failing
back is not supported; for example, in a SQL cluster.
Management
If you made a mistake; for example, you paired the wrong regions during the initial setup, you can break the
pairing of the two namespaces at any time. If you want to use the paired namespaces as regular namespaces,
delete the alias.
Samples
The sample on GitHub shows how to set up and initiate a failover. This sample demonstrates the following
concepts:
Settings required in Azure Active Directory to use Azure Resource Manager with Event Hubs.
Steps required to execute the sample code.
Send and receive from the current primary namespace.
Considerations
Note the following considerations to keep in mind:
1. By design, Event Hubs geo-disaster recovery does not replicate data, and therefore you cannot reuse the
old offset value of your primary event hub on your secondary event hub. We recommend restarting your
event receiver with one of the following methods:
EventPosition.FromStart() - If you wish read all data on your secondary event hub.
EventPosition.FromEnd() - If you wish to read all new data from the time of connection to your
secondary event hub.
EventPosition.FromEnqueuedTime(dateTime) - If you wish to read all data received in your secondary
event hub starting from a given date and time.
2. In your failover planning, you should also consider the time factor. For example, if you lose connectivity
for longer than 15 to 20 minutes, you might decide to initiate the failover.
3. The fact that no data is replicated means that current active sessions aren't replicated. Additionally,
duplicate detection and scheduled messages may not work. New sessions, scheduled messages, and new
duplicates will work.
4. Failing over a complex distributed infrastructure should be rehearsed at least once.
5. Synchronizing entities can take some time, approximately 50-100 entities per minute.
Availability Zones
The Event Hubs Standard SKU supports Availability Zones, providing fault-isolated locations within an Azure
region.
NOTE
The Availability Zones support for Azure Event Hubs Standard is only available in Azure regions where availability zones
are present.
You can enable Availability Zones on new namespaces only, using the Azure portal. Event Hubs doesn't support
migration of existing namespaces. You can't disable zone redundancy after enabling it on your namespace.
When you use availability zones, both metadata and data (events) are replicated across data centers in the
availability zone.
Private endpoints
This section provides more considerations when using Geo-disaster recovery with namespaces that use private
endpoints. To learn about using private endpoints with Event Hubs in general, see Configure private endpoints.
New pairings
If you try to create a pairing between a primary namespace with a private endpoint and a secondary namespace
without a private endpoint, the pairing will fail. The pairing will succeed only if both primary and secondary
namespaces have private endpoints. We recommend that you use same configurations on the primary and
secondary namespaces and on virtual networks in which private endpoints are created.
NOTE
When you try to pair the primary namespace with private endpoint and a secondary namespace, the validation process
only checks whether a private endpoint exists on the secondary namespace. It doesn't check whether the endpoint works
or will work after failover. It's your responsibility to ensure that the secondary namespace with private endpoint will work
as expected after failover.
To test that the private endpoint configurations are same on primary and secondary namespaces, send a read request (for
example: Get Event Hub) to the secondary namespace from outside the virtual network, and verify that you receive an
error message from the service.
Existing pairings
If pairing between primary and secondary namespace already exists, private endpoint creation on the primary
namespace will fail. To resolve, create a private endpoint on the secondary namespace first and then create one
for the primary namespace.
NOTE
While we allow read-only access to the secondary namespace, updates to the private endpoint configurations are
permitted.
Recommended configuration
When creating a disaster recovery configuration for your application and Event Hubs namespaces, you must
create private endpoints for both primary and secondary Event Hubs namespaces against virtual networks
hosting both primary and secondary instances of your application.
Let's say you have two virtual networks: VNET-1, VNET-2 and these primary and secondary namespaces:
EventHubs-Namespace1-Primary, EventHubs-Namespace2-Secondary. You need to do the following steps:
On EventHubs-Namespace1-Primary, create two private endpoints that use subnets from VNET-1 and VNET-
2
On EventHubs-Namespace2-Secondary, create two private endpoints that use the same subnets from VNET-
1 and VNET-2
Advantage of this approach is that failover can happen at the application layer independent of Event Hubs
namespace. Consider the following scenarios:
Application-only failover : Here, the application won't exist in VNET-1 but will move to VNET-2. As both
private endpoints are configured on both VNET-1 and VNET-2 for both primary and secondary namespaces, the
application will just work.
Event Hubs namespace-only failover : Here again, since both private endpoints are configured on both
virtual networks for both primary and secondary namespaces, the application will just work.
NOTE
For guidance on geo-disaster recovery of a virtual network, see Virtual Network - Business Continuity.
Next steps
The sample on GitHub walks through a simple workflow that creates a geo-pairing and initiates a failover for
a disaster recovery scenario.
The REST API reference describes APIs for performing the Geo-disaster recovery configuration.
For more information about Event Hubs, visit the following links:
Get started with Event Hubs
.NET Core
Java
Python
JavaScript
Event Hubs FAQ
Sample applications that use Event Hubs
Azure Service Bus Geo-disaster recovery
3/29/2021 • 12 minutes to read • Edit Online
Resilience against disastrous outages of data processing resources is a requirement for many enterprises and in
some cases even required by industry regulations.
Azure Service Bus already spreads the risk of catastrophic failures of individual machines or even complete
racks across clusters that span multiple failure domains within a datacenter and it implements transparent
failure detection and failover mechanisms such that the service will continue to operate within the assured
service-levels and typically without noticeable interruptions when such failures occur. If a Service Bus
namespace has been created with the enabled option for availability zones, the risk is outage risk is further
spread across three physically separated facilities, and the service has enough capacity reserves to instantly
cope with the complete, catastrophic loss of the entire facility.
The all-active Azure Service Bus cluster model with availability zone support is superior to any on-premises
message broker product in terms of resiliency against grave hardware failures and even catastrophic loss of
entire datacenter facilities. Still, there might be grave situations with widespread physical destruction that even
those measures can't sufficiently defend against.
The Service Bus Geo-disaster recovery feature is designed to make it easier to recover from a disaster of this
magnitude and abandon a failed Azure region for good and without having to change your application
configurations. Abandoning an Azure region will typically involve several services and this feature primarily
aims at helping to preserve the integrity of the composite application configuration. The feature is globally
available for the Service Bus Premium SKU.
The Geo-Disaster recovery feature ensures that the entire configuration of a namespace (Queues, Topics,
Subscriptions, Filters) is continuously replicated from a primary namespace to a secondary namespace when
paired, and it allows you to initiate a once-only failover move from the primary to the secondary at any time.
The failover move will repoint the chosen alias name for the namespace to the secondary namespace and then
break the pairing. The failover is nearly instantaneous once initiated.
IMPORTANT
The feature enables instant continuity of operations with the same configuration, but doesn't replicate the messages
held in queues or topic subscriptions or dead-letter queues . To preserve queue semantics, such a replication will
require not only the replication of message data, but of every state change in the broker. For most Service Bus
namespaces, the required replication traffic would far exceed the application traffic and with high-throughput queues,
most messages would still replicate to the secondary while they are already being deleted from the primary, causing
excessively wasteful traffic. For high-latency replication routes, which applies to many pairings you would choose for Geo-
disaster recovery, it might also be impossible for the replication traffic to sustainably keep up with the application traffic
due to latency-induced throttling effects.
TIP
For replicating the contents of queues and topic subscriptions and operating corresponding namespaces in active/active
configurations to cope with outages and disasters, don't lean on this Geo-disaster recovery feature set, but follow the
replication guidance.
Setup
The following section is an overview to set up pairing between the namespaces.
You first create or use an existing primary namespace, and a new secondary namespace, then pair the two. This
pairing gives you an alias that you can use to connect. Because you use an alias, you don't have to change
connection strings. Only new namespaces can be added to your failover pairing.
1. Create the primary namespace.
2. Create the secondary namespace in a different region. This step is optional. You can create the secondary
namespace while creating the pairing in the next step.
3. In the Azure portal, navigate to your primary namespace.
4. Select Geo-recover y on the left menu, and select Initiate pairing on the toolbar.
6. You should see the Ser vice Bus Geo-DR Alias page as shown in the following image. You can also
navigate to the Geo-DR Alias page from the primary namespace page by selecting the Geo-recover y
on the left menu.
7. On the Geo-DR Alias page, select Shared access policies on the left menu to access the primary
connection string for the alias. Use this connection string instead of using the connection string to the
primary/secondary namespace directly. Initially, the alias points to the primary namespace.
8. Switch to the Over view page. You can do the following actions:
a. Break the pairing between primary and secondary namespaces. Select Break pairing on the toolbar.
b. Manually fail over to the secondary namespace.
a. Select Failover on the toolbar.
b. Confirm that you want to fail over to the secondary namespace by typing in your alias.
c. Turn ON the Safe Failover option to safely fail over to the secondary namespace. This
feature makes sure that pending Geo-DR replications are completed before switching over
to the secondary.
d. Then, select Failover .
IMPORTANT
Failing over will activate the secondary namespace and remove the primary namespace from the
Geo-Disaster Recovery pairing. Create another namespace to have a new geo-disaster recovery
pair.
9. Finally, you should add some monitoring to detect if a failover is necessary. In most cases, the service is
one part of a large ecosystem, thus automatic failovers are rarely possible, as often failovers must be
performed in sync with the remaining subsystem or infrastructure.
Service Bus standard to premium
If you have migrated your Azure Service Bus Standard namespace to Azure Service Bus Premium, then you
must use the pre-existing alias (that is, your Service Bus Standard namespace connection string) to create the
disaster recovery configuration through the PS/CLI or REST API .
It's because, during migration, your Azure Service Bus Standard namespace connection string/DNS name itself
becomes an alias to your Azure Service Bus Premium namespace.
Your client applications must utilize this alias (that is, the Azure Service Bus Standard namespace connection
string) to connect to the Premium namespace where the disaster recovery pairing has been set up.
If you use the Portal to set up the Disaster recovery configuration, then the portal will abstract this caveat from
you.
Failover flow
A failover is triggered manually by the customer (either explicitly through a command, or through client owned
business logic that triggers the command) and never by Azure. It gives the customer full ownership and visibility
for outage resolution on Azure's backbone.
NOTE
Only fail forward semantics are supported. In this scenario, you fail over and then re-pair with a new namespace. Failing
back is not supported; for example, in a SQL cluster.
You can automate failover either with monitoring systems, or with custom-built monitoring solutions. However,
such automation takes extra planning and work, which is out of the scope of this article.
Management
If you made a mistake; for example, you paired the wrong regions during the initial setup, you can break the
pairing of the two namespaces at any time. If you want to use the paired namespaces as regular namespaces,
delete the alias.
Samples
The samples on GitHub show how to set up and initiate a failover. These samples demonstrate the following
concepts:
A .NET sample and settings that are required in Azure Active Directory to use Azure Resource Manager with
Service Bus, to set up, and enable Geo-disaster recovery.
Steps required to execute the sample code.
How to use an existing namespace as an alias.
Steps to alternatively enable Geo-disaster recovery via PowerShell or CLI.
Send and receive from the current primary or secondary namespace using the alias.
Considerations
Note the following considerations to keep in mind with this release:
1. In your failover planning, you should also consider the time factor. For example, if you lose connectivity
for longer than 15 to 20 minutes, you might decide to initiate the failover.
2. The fact that no data is replicated means that currently active sessions aren't replicated. Additionally,
duplicate detection and scheduled messages may not work. New sessions, new scheduled messages, and
new duplicates will work.
3. Failing over a complex distributed infrastructure should be rehearsed at least once.
4. Synchronizing entities can take some time, approximately 50-100 entities per minute. Subscriptions and
rules also count as entities.
Availability Zones
The Service Bus Premium SKU supports Availability Zones, providing fault-isolated locations within the same
Azure region. Service Bus manages three copies of messaging store (1 primary and 2 secondary). Service Bus
keeps all the three copies in sync for data and management operations. If the primary copy fails, one of the
secondary copies is promoted to primary with no perceived downtime. If the applications see transient
disconnects from Service Bus, the retry logic in the SDK will automatically reconnect to Service Bus.
When you use availability zones, both metadata and data (messages) are replicated across data centers in the
availability zone.
NOTE
The Availability Zones support for Azure Service Bus Premium is only available in Azure regions where availability zones
are present.
You can enable Availability Zones on new namespaces only, using the Azure portal. Service Bus does not
support migration of existing namespaces. You cannot disable zone redundancy after enabling it on your
namespace.
Private endpoints
This section provides more considerations when using Geo-disaster recovery with namespaces that use private
endpoints. To learn about using private endpoints with Service Bus in general, see Integrate Azure Service Bus
with Azure Private Link.
New pairings
If you try to create a pairing between a primary namespace with a private endpoint and a secondary namespace
without a private endpoint, the pairing will fail. The pairing will succeed only if both primary and secondary
namespaces have private endpoints. We recommend that you use same configurations on the primary and
secondary namespaces and on virtual networks in which private endpoints are created.
NOTE
When you try to pair the primary namespace with a private endpoint and the secondary namespace, the validation
process only checks whether a private endpoint exists on the secondary namespace. It doesn't check whether the
endpoint works or will work after failover. It's your responsibility to ensure that the secondary namespace with private
endpoint will work as expected after failover.
To test that the private endpoint configurations are same, send a Get queues request to the secondary namespace from
outside the virtual network, and verify that you receive an error message from the service.
Existing pairings
If pairing between primary and secondary namespace already exists, private endpoint creation on the primary
namespace will fail. To resolve, create a private endpoint on the secondary namespace first and then create one
for the primary namespace.
NOTE
While we allow read-only access to the secondary namespace, updates to the private endpoint configurations are
permitted.
Recommended configuration
When creating a disaster recovery configuration for your application and Service Bus, you must create private
endpoints for both primary and secondary Service Bus namespaces against virtual networks hosting both
primary and secondary instances of your application.
Let's say you have two virtual networks: VNET-1, VNET-2 and these primary and second namespaces:
ServiceBus-Namespace1-Primary, ServiceBus-Namespace2-Secondary. You need to do the following steps:
On ServiceBus-Namespace1-Primary, create two private endpoints that use subnets from VNET-1 and VNET-
2
On ServiceBus-Namespace2-Secondary, create two private endpoints that use the same subnets from VNET-
1 and VNET-2
Advantage of this approach is that failover can happen at the application layer independent of Service Bus
namespace. Consider the following scenarios:
Application-only failover : Here, the application won't exist in VNET-1 but will move to VNET-2. As both
private endpoints are configured on both VNET-1 and VNET-2 for both primary and secondary namespaces, the
application will just work.
Ser vice Bus namespace-only failover : Here again, since both private endpoints are configured on both
virtual networks for both primary and secondary namespaces, the application will just work.
NOTE
For guidance on geo-disaster recovery of a virtual network, see Virtual Network - Business Continuity.
Next steps
See the Geo-disaster recovery REST API reference here.
Run the Geo-disaster recovery sample on GitHub.
See the Geo-disaster recovery sample that sends messages to an alias.
To learn more about Service Bus messaging, see the following articles:
Service Bus queues, topics, and subscriptions
Get started with Service Bus queues
How to use Service Bus topics and subscriptions
Rest API
Create a zone-redundant virtual network gateway
in Azure Availability Zones
11/2/2020 • 4 minutes to read • Edit Online
You can deploy VPN and ExpressRoute gateways in Azure Availability Zones. This brings resiliency, scalability,
and higher availability to virtual network gateways. Deploying gateways in Azure Availability Zones physically
and logically separates gateways within a region, while protecting your on-premises network connectivity to
Azure from zone-level failures. For information, see About zone-redundant virtual network gateways and About
Azure Availability Zones.
$RG1 = "TestRG1"
$VNet1 = "VNet1"
$Location1 = "CentralUS"
$FESubnet1 = "FrontEnd"
$BESubnet1 = "Backend"
$GwSubnet1 = "GatewaySubnet"
$VNet1Prefix = "10.1.0.0/16"
$FEPrefix1 = "10.1.0.0/24"
$BEPrefix1 = "10.1.1.0/24"
$GwPrefix1 = "10.1.255.0/27"
$Gw1 = "VNet1GW"
$GwIP1 = "VNet1GWIP"
$GwIPConf1 = "gwipconf1"
$getvnet | Set-AzVirtualNetwork
$pip1 = New-AzPublicIpAddress -ResourceGroup $RG1 -Location $Location1 -Name $GwIP1 -AllocationMethod Static
-Sku Standard
$pip1 = New-AzPublicIpAddress -ResourceGroup $RG1 -Location $Location1 -Name $GwIP1 -AllocationMethod Static
-Sku Standard -Zone 1
FAQ
What will change when I deploy these new SKUs?
From your perspective, you can deploy your gateways with zone-redundancy. This means that all instances of
the gateways will be deployed across Azure Availability Zones, and each Availability Zone is a different fault and
update domain. This makes your gateways more reliable, available, and resilient to zone failures.
Can I use the Azure portal?
Yes, you can use the Azure portal to deploy the new SKUs. However, you will see these new SKUs only in those
Azure regions that have Azure Availability Zones.
What regions are available for me to use the new SKUs?
See Availability Zones for the latest list of available regions.
Can I change/migrate/upgrade my existing virtual network gateways to zone -redundant or zonal gateways?
Migrating your existing virtual network gateways to zone-redundant or zonal gateways is currently not
supported. You can, however, delete your existing gateway and re-create a zone-redundant or zonal gateway.
Can I deploy both VPN and Express Route gateways in same virtual network?
Co-existence of both VPN and Express Route gateways in the same virtual network is supported. However, you
should reserve a /27 IP address range for the gateway subnet.
Create a zone-redundant virtual network gateway
in Azure Availability Zones
11/2/2020 • 4 minutes to read • Edit Online
You can deploy VPN and ExpressRoute gateways in Azure Availability Zones. This brings resiliency, scalability,
and higher availability to virtual network gateways. Deploying gateways in Azure Availability Zones physically
and logically separates gateways within a region, while protecting your on-premises network connectivity to
Azure from zone-level failures. For information, see About zone-redundant virtual network gateways and About
Azure Availability Zones.
$RG1 = "TestRG1"
$VNet1 = "VNet1"
$Location1 = "CentralUS"
$FESubnet1 = "FrontEnd"
$BESubnet1 = "Backend"
$GwSubnet1 = "GatewaySubnet"
$VNet1Prefix = "10.1.0.0/16"
$FEPrefix1 = "10.1.0.0/24"
$BEPrefix1 = "10.1.1.0/24"
$GwPrefix1 = "10.1.255.0/27"
$Gw1 = "VNet1GW"
$GwIP1 = "VNet1GWIP"
$GwIPConf1 = "gwipconf1"
$getvnet | Set-AzVirtualNetwork
$pip1 = New-AzPublicIpAddress -ResourceGroup $RG1 -Location $Location1 -Name $GwIP1 -AllocationMethod Static
-Sku Standard
$pip1 = New-AzPublicIpAddress -ResourceGroup $RG1 -Location $Location1 -Name $GwIP1 -AllocationMethod Static
-Sku Standard -Zone 1
FAQ
What will change when I deploy these new SKUs?
From your perspective, you can deploy your gateways with zone-redundancy. This means that all instances of
the gateways will be deployed across Azure Availability Zones, and each Availability Zone is a different fault and
update domain. This makes your gateways more reliable, available, and resilient to zone failures.
Can I use the Azure portal?
Yes, you can use the Azure portal to deploy the new SKUs. However, you will see these new SKUs only in those
Azure regions that have Azure Availability Zones.
What regions are available for me to use the new SKUs?
See Availability Zones for the latest list of available regions.
Can I change/migrate/upgrade my existing virtual network gateways to zone -redundant or zonal gateways?
Migrating your existing virtual network gateways to zone-redundant or zonal gateways is currently not
supported. You can, however, delete your existing gateway and re-create a zone-redundant or zonal gateway.
Can I deploy both VPN and Express Route gateways in same virtual network?
Co-existence of both VPN and Express Route gateways in the same virtual network is supported. However, you
should reserve a /27 IP address range for the gateway subnet.
Autoscaling and Zone-redundant Application
Gateway v2
3/5/2021 • 8 minutes to read • Edit Online
Application Gateway is available under a Standard_v2 SKU. Web Application Firewall (WAF) is available under a
WAF_v2 SKU. The v2 SKU offers performance enhancements and adds support for critical new features like
autoscaling, zone redundancy, and support for static VIPs. Existing features under the Standard and WAF SKU
continue to be supported in the new v2 SKU, with a few exceptions listed in comparison section.
The new v2 SKU includes the following enhancements:
Autoscaling : Application Gateway or WAF deployments under the autoscaling SKU can scale out or in
based on changing traffic load patterns. Autoscaling also removes the requirement to choose a
deployment size or instance count during provisioning. This SKU offers true elasticity. In the Standard_v2
and WAF_v2 SKU, Application Gateway can operate both in fixed capacity (autoscaling disabled) and in
autoscaling enabled mode. Fixed capacity mode is useful for scenarios with consistent and predictable
workloads. Autoscaling mode is beneficial in applications that see variance in application traffic.
Zone redundancy : An Application Gateway or WAF deployment can span multiple Availability Zones,
removing the need to provision separate Application Gateway instances in each zone with a Traffic
Manager. You can choose a single zone or multiple zones where Application Gateway instances are
deployed, which makes it more resilient to zone failure. The backend pool for applications can be
similarly distributed across availability zones.
Zone redundancy is available only where Azure Zones are available. In other regions, all other features
are supported. For more information, see Regions and Availability Zones in Azure
Static VIP : Application Gateway v2 SKU supports the static VIP type exclusively. This ensures that the VIP
associated with the application gateway doesn't change for the lifecycle of the deployment, even after a
restart. There isn't a static VIP in v1, so you must use the application gateway URL instead of the IP
address for domain name routing to App Services via the application gateway.
Header Rewrite : Application Gateway allows you to add, remove, or update HTTP request and response
headers with v2 SKU. For more information, see Rewrite HTTP headers with Application Gateway
Key Vault Integration : Application Gateway v2 supports integration with Key Vault for server
certificates that are attached to HTTPS enabled listeners. For more information, see TLS termination with
Key Vault certificates.
Azure Kubernetes Ser vice Ingress Controller : The Application Gateway v2 Ingress Controller allows
the Azure Application Gateway to be used as the ingress for an Azure Kubernetes Service (AKS) known as
AKS Cluster. For more information, see What is Application Gateway Ingress Controller?.
Performance enhancements : The v2 SKU offers up to 5X better TLS offload performance as compared
to the Standard/WAF SKU.
Faster deployment and update time The v2 SKU provides faster deployment and update time as
compared to Standard/WAF SKU. This also includes WAF configuration changes.
Supported regions
The Standard_v2 and WAF_v2 SKU is available in the following regions: North Central US, South Central US,
West US, West US 2, East US, East US 2, Central US, North Europe, West Europe, Southeast Asia, France Central,
UK West, Japan East, Japan West, Australia East, Australia Southeast, Brazil South, Canada Central, Canada East,
East Asia, Korea Central, Korea South, UK South, Central India, West India, South India.
Pricing
With the v2 SKU, the pricing model is driven by consumption and is no longer attached to instance counts or
sizes. The v2 SKU pricing has two components:
Fixed price - This is hourly (or partial hour) price to provision a Standard_v2 or WAF_v2 Gateway. Please
note that 0 additional minimum instances still ensures high availability of the service which is always
included with fixed price.
Capacity Unit price - This is a consumption-based cost that is charged in addition to the fixed cost.
Capacity unit charge is also computed hourly or partial hourly. There are three dimensions to capacity unit -
compute unit, persistent connections, and throughput. Compute unit is a measure of processor capacity
consumed. Factors affecting compute unit are TLS connections/sec, URL Rewrite computations, and WAF rule
processing. Persistent connection is a measure of established TCP connections to the application gateway in a
given billing interval. Throughput is average Megabits/sec processed by the system in a given billing interval.
The billing is done at a Capacity Unit level for anything above the reserved instance count.
Each capacity unit is composed of at most: 1 compute unit, 2500 persistent connections, and 2.22-Mbps
throughput.
To learn more, see Understanding pricing.
Scaling Application Gateway and WAF v2
Application Gateway and WAF can be configured to scale in two modes:
Autoscaling - With autoscaling enabled, the Application Gateway and WAF v2 SKUs scale up or down based
on application traffic requirements. This mode offers better elasticity to your application and eliminates the
need to guess the application gateway size or instance count. This mode also allows you to save cost by not
requiring the gateway to run at peak provisioned capacity for anticipated maximum traffic load. You must
specify a minimum and optionally maximum instance count. Minimum capacity ensures that Application
Gateway and WAF v2 don't fall below the minimum instance count specified, even in the absence of traffic.
Each instance is roughly equivalent to 10 additional reserved Capacity Units. Zero signifies no reserved
capacity and is purely autoscaling in nature. You can also optionally specify a maximum instance count, which
ensures that the Application Gateway doesn't scale beyond the specified number of instances. You will only
be billed for the amount of traffic served by the Gateway. The instance counts can range from 0 to 125. The
default value for maximum instance count is 20 if not specified.
Manual - You can alternatively choose Manual mode where the gateway won't autoscale. In this mode, if
there is more traffic than what Application Gateway or WAF can handle, it could result in traffic loss. With
manual mode, specifying instance count is mandatory. Instance count can vary from 1 to 125 instances.
F EAT URE V1 SK U V2 SK U
Autoscaling ✓
Zone redundancy ✓
Static VIP ✓
URL-based routing ✓ ✓
Multiple-site hosting ✓ ✓
Traffic redirection ✓ ✓
Session affinity ✓ ✓
WebSocket support ✓ ✓
HTTP/2 support ✓ ✓
Connection draining ✓ ✓
NOTE
The autoscaling v2 SKU now supports default health probes to automatically monitor the health of all resources in its
back-end pool and highlight those backend members that are considered unhealthy. The default health probe is
automatically configured for backends that don't have any custom probe configuration. To learn more, see health probes
in application gateway.
User-Defined Route (UDR) on Application Gateway subnet Supported (specific scenarios). In preview.
For more information about supported scenarios, see
Application Gateway configuration overview.
DIF F EREN C E DETA IL S
NSG for Inbound port range - 65200 to 65535 for Standard_v2 SKU
- 65503 to 65534 for Standard SKU.
For more information, see the FAQ.
ILB only mode This is currently not supported. Public and ILB mode
together is supported.
Migrate from v1 to v2
An Azure PowerShell script is available in the PowerShell gallery to help you migrate from your v1 Application
Gateway/WAF to the v2 Autoscaling SKU. This script helps you copy the configuration from your v1 gateway.
Traffic migration is still your responsibility. For more information, see Migrate Azure Application Gateway from
v1 to v2.
Next steps
Quickstart: Direct web traffic with Azure Application Gateway - Azure portal
Create an autoscaling, zone redundant application gateway with a reserved virtual IP address using Azure
PowerShell
Learn more about Application Gateway.
Learn more about Azure Firewall.
Tutorial: Create and configure an Azure Active
Directory Domain Services managed domain
3/5/2021 • 11 minutes to read • Edit Online
Azure Active Directory Domain Services (Azure AD DS) provides managed domain services such as domain join,
group policy, LDAP, Kerberos/NTLM authentication that is fully compatible with Windows Server Active
Directory. You consume these domain services without deploying, managing, and patching domain controllers
yourself. Azure AD DS integrates with your existing Azure AD tenant. This integration lets users sign in using
their corporate credentials, and you can use existing groups and user accounts to secure access to resources.
You can create a managed domain using default configuration options for networking and synchronization, or
manually define these settings. This tutorial shows you how to use default options to create and configure an
Azure AD DS managed domain using the Azure portal.
In this tutorial, you learn how to:
Understand DNS requirements for a managed domain
Create a managed domain
Enable password hash synchronization
If you don't have an Azure subscription, create an account before you begin.
Prerequisites
To complete this tutorial, you need the following resources and privileges:
An active Azure subscription.
If you don't have an Azure subscription, create an account.
An Azure Active Directory tenant associated with your subscription, either synchronized with an on-premises
directory or a cloud-only directory.
If needed, create an Azure Active Directory tenant or associate an Azure subscription with your
account.
You need global administrator privileges in your Azure AD tenant to enable Azure AD DS.
You need Contributor privileges in your Azure subscription to create the required Azure AD DS resources.
Although not required for Azure AD DS, it's recommended to configure self-service password reset (SSPR) for
the Azure AD tenant. Users can change their password without SSPR, but SSPR helps if they forget their
password and need to reset it.
IMPORTANT
After you create a managed domain, you can't then move the managed domain to a different resource group, virtual
network, subscription, etc. Take care to select the most appropriate subscription, resource group, region, and virtual
network when you deploy the managed domain.
TIP
If you create a custom domain name, take care with existing DNS namespaces. It's recommended to use a domain name
separate from any existing Azure or on-premises DNS name space.
For example, if you have an existing DNS name space of contoso.com, create a managed domain with the custom domain
name of aaddscontoso.com. If you need to use secure LDAP, you must register and own this custom domain name to
generate the required certificates.
You may need to create some additional DNS records for other services in your environment, or conditional DNS
forwarders between existing DNS name spaces in your environment. For example, if you run a webserver that hosts a site
using the root DNS name, there can be naming conflicts that require additional DNS entries.
In these tutorials and how-to articles, the custom domain of aaddscontoso.com is used as a short example. In all
commands, specify your own domain name.
TIP
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. To ensure resiliency, there's a minimum of
three separate zones in all enabled regions.
There's nothing for you to configure for Azure AD DS to be distributed across zones. The Azure platform
automatically handles the zone distribution of resources. For more information and to see region availability, see
What are Availability Zones in Azure?
3. The SKU determines the performance, backup frequency, and maximum number of forest trusts you can
create. You can change the SKU after the managed domain has been created if your business demands or
requirements change. For more information, see Azure AD DS SKU concepts.
For this tutorial, select the Standard SKU.
4. A forest is a logical construct used by Active Directory Domain Services to group one or more domains.
By default, a managed domain is created as a User forest. This type of forest synchronizes all objects from
Azure AD, including any user accounts created in an on-premises AD DS environment.
A Resource forest only synchronizes users and groups created directly in Azure AD. For more information
on Resource forests, including why you may use one and how to create forest trusts with on-premises AD
DS domains, see Azure AD DS resource forests overview.
For this tutorial, choose to create a User forest.
To quickly create a managed domain, you can select Review + create to accept additional default configuration
options. The following defaults are configured when you choose this create option:
Creates a virtual network named aadds-vnet that uses the IP address range of 10.0.2.0/24.
Creates a subnet named aadds-subnet using the IP address range of 10.0.2.0/24.
Synchronizes All users from Azure AD into the managed domain.
Select Review + create to accept these default configuration options.
3. The page will load with updates on the deployment process, including the creation of new resources in
your directory.
4. Select your resource group, such as myResourceGroup, then choose your managed domain from the list
of Azure resources, such as aaddscontoso.com. The Over view tab shows that the managed domain is
currently Deploying. You can't configure the managed domain until it's fully provisioned.
5. When the managed domain is fully provisioned, the Over view tab shows the domain status as Running.
IMPORTANT
The managed domain is associated with your Azure AD tenant. During the provisioning process, Azure AD DS creates two
Enterprise Applications named Domain Controller Services and AzureActiveDirectoryDomainControllerServices in the
Azure AD tenant. These Enterprise Applications are needed to service your managed domain. Don't delete these
applications.
2. To update the DNS server settings for the virtual network, select the Configure button. The DNS settings
are automatically configured for your virtual network.
TIP
If you selected an existing virtual network in the previous steps, any VMs connected to the network only get the new
DNS settings after a restart. You can restart VMs using the Azure portal, Azure PowerShell, or the Azure CLI.
The steps to generate and store these password hashes are different for cloud-only user accounts created in
Azure AD versus user accounts that are synchronized from your on-premises directory using Azure AD Connect.
A cloud-only user account is an account that was created in your Azure AD directory using either the Azure
portal or Azure AD PowerShell cmdlets. These user accounts aren't synchronized from an on-premises directory.
In this tutorial, let's work with a basic cloud-only user account. For more information on the additional steps
required to use Azure AD Connect, see Synchronize password hashes for user accounts synced from your
on-premises AD to your managed domain.
TIP
If your Azure AD tenant has a combination of cloud-only users and users from your on-premises AD, you need to
complete both sets of steps.
For cloud-only user accounts, users must change their passwords before they can use Azure AD DS. This
password change process causes the password hashes for Kerberos and NTLM authentication to be generated
and stored in Azure AD. The account isn't synchronized from Azure AD to Azure AD DS until the password is
changed. Either expire the passwords for all cloud users in the tenant who need to use Azure AD DS, which
forces a password change on next sign-in, or instruct cloud users to manually change their passwords. For this
tutorial, let's manually change a user password.
Before a user can reset their password, the Azure AD tenant must be configured for self-service password reset.
To change the password for a cloud-only user, the user must complete the following steps:
1. Go to the Azure AD Access Panel page at https://myapps.microsoft.com.
2. In the top-right corner, select your name, then choose Profile from the drop-down menu.
3. On the Profile page, select Change password .
4. On the Change password page, enter your existing (old) password, then enter and confirm a new
password.
5. Select Submit .
It takes a few minutes after you've changed your password for the new password to be usable in Azure AD DS
and to successfully sign in to computers joined to the managed domain.
Next steps
In this tutorial, you learned how to:
Understand DNS requirements for a managed domain
Create a managed domain
Add administrative users to domain management
Enable user accounts for Azure AD DS and generate password hashes
Before you domain-join VMs and deploy applications that use the managed domain, configure an Azure virtual
network for application workloads.
Configure Azure virtual network for application workloads to use your managed domain
About Azure Edge Zone Preview
3/5/2021 • 5 minutes to read • Edit Online
Azure Edge Zone is a family of offerings from Microsoft Azure that enables data processing close to the user. You
can deploy VMs, containers, and other selected Azure services into Edge Zones to address the low latency and
high throughput requirements of applications.
Typical use case scenarios for Edge Zones include:
Real-time command and control in robotics.
Real-time analytics and inferencing via artificial intelligence and machine learning.
Machine vision.
Remote rendering for mixed reality and VDI scenarios.
Immersive multiplayer gaming.
Media streaming and content delivery.
Surveillance and security.
There are three types of Azure Edge Zones:
Azure Edge Zones
Azure Edge Zones with Carrier
Azure Private Edge Zones
Azure Edge Zones are small-footprint extensions of Azure placed in population centers that are far away from
Azure regions. Azure Edge Zones support VMs, containers, and a selected set of Azure services that let you run
latency-sensitive and throughput-intensive applications close to end users. Azure Edge Zones are part of the
Microsoft global network. They provide secure, reliable, high-bandwidth connectivity between applications that
run at the edge zone close to the user. Azure Edge Zones are owned and operated by Microsoft. You can use the
same set of Azure tools and the same portal to manage and deploy services into Edge Zones.
Typical use cases include:
Gaming and game streaming.
Media streaming and content delivery.
Real-time analytics and inferencing via artificial intelligence and machine learning.
Rendering for mixed reality.
Azure Edge Zones will be available in the following metro areas:
New York, NY
Los Angeles, CA
Miami, FL
Contact the Edge Zone team for more information.
Azure Edge Zones with Carrier are small-footprint extensions of Azure that are placed in mobile operators'
datacenters in population centers. Azure Edge Zone with Carrier infrastructure is placed one hop away from the
mobile operator's 5G network. This placement offers latency of less than 10 milliseconds to applications from
mobile devices.
Azure Edge Zones with Carrier are deployed in mobile operators' datacenters and connected to the Microsoft
global network. They provide secure, reliable, high-bandwidth connectivity between applications that run close
to the user. Developers can use the same set of familiar tools to build and deploy services into the Edge Zones.
Typical use cases include:
Gaming and game streaming.
Media streaming and content delivery.
Real-time analytics and inferencing via artificial intelligence and machine learning.
Rendering for mixed reality.
Connected automobiles.
Tele-medicine.
Edge Zones will be offered in partnership with the following operators:
AT&T (Atlanta, Dallas, and Los Angeles)
ISVs working on optimized and scalable applications connected to 5G networks can now use the new Los
Angeles preview location of Azure Edge Zones with AT&T when building and experimenting with ultra-low
latency platforms, mobile and connected scenarios. Register for the early adopter program to take advantage of
secure, high-bandwidth connectivity.
Contact the Edge Zone team for more information.
Azure Private Edge Zones are small-footprint extensions of Azure that are placed on-premises. Azure Private
Edge Zone is based on the Azure Stack Edge platform. It enables low latency access to computing and storage
services deployed on-premises. Private Edge Zone also lets you deploy applications from ISVs and virtualized
network functions (VNFs) as Azure managed applications along with virtual machines and containers on-
premises. These VNFs can include mobile packet cores, routers, firewalls, and SD-WAN appliances. Azure Private
Edge Zone comes with a cloud-native orchestration solution that lets you manage the lifecycles of VNFs and
applications from the Azure portal.
Azure Private Edge Zone lets you develop and deploy applications on-premises by using the same familiar tools
that you use to build and deploy applications in Azure.
It also lets you:
Run private mobile networks (private LTE, private 5G).
Implement security functions like firewalls.
Extend your on-premises networks across multiple branches and Azure by using SD-WAN appliances on the
same Private Edge Zone appliances and manage them from Azure.
Typical use cases include:
Real-time command and control in robotics.
Real-time analytics and inferencing with artificial intelligence and machine learning.
Machine vision.
Remote rendering for mixed reality and VDI scenarios.
Surveillance and security.
We have a rich ecosystem of VNF vendors, ISVs, and MSP partners to enable end-to-end solutions that use
Private Edge Zones. Contact the Private Edge Zone team for more information.
Private Edge Zone partners
Virtualized network functions (VNFs )
Vi r t u a l i z e d Ev o l v e d P a c k e t C o r e (v E P C ) fo r m o b i l e n e t w o r k s
Affirmed Networks
Celona
Druid Software
Expeto
Mavenir
Metaswitch
Nokia Digital Automation Cloud
Mo bi l e r adi o par t n er s
Celona
Commscope Ruckus
SD - W A N v e n d o r s
128 Technology
NetFoundry
Nuage Networks from Nokia
Versa Networks
VMware SD-WAN by Velocloud
Ro u t er ven do r s
Arista
Fi r ew al l ven do r s
Amdocs Etisalat
CenturyLink Proximus
Expeto Rogers
GSIS A N D O P ERATO RS M O B IL E O P ERATO RS
Infosys Telefonica
Vodafone
Contact the Private Edge Zone team for information on how to become a partner.
Private Edge Zone solutions
Private mobile network on Private Edge Zones
You can now deploy a private mobile network on Private Edge Zones. Private mobile networks enable ultra-low
latency, high capacity, and the reliable and secure wireless network that's required for business-critical
applications.
Private mobile networks can enable scenarios like:
Command and control of automated guided vehicles (AGVs) in warehouses.
Real-time communication between robots in smart factories.
Augmented reality and virtual reality edge applications.
The virtualized evolved packet core (vEPC) network function is the brains of a private mobile network. You can
now deploy a vEPC on Private Edge Zones. For a list of vEPC partners that are available on Private Edge Zones,
see vEPC ISVs.
Deploying a private mobile network solution on Private Edge Zones requires other components, like mobile
access points, SIM cards, and other VNFs like routers. Access to licensed or unlicensed spectrum is critical to
setting up a private mobile network. And you might need help with RF planning, physical layout, installation,
and support. For a list of partners, see Mobile radio partners.
Microsoft provides a partner ecosystem that can help with all aspects of this process. Partners can help with
planning the network, purchasing the required devices, setting up hardware, and managing the configuration
from Azure. A set of validated partners that are tightly integrated with Microsoft ensure your solution will be
reliable and easy to use. You can focus on your core scenarios and rely on Microsoft and its partners to help with
the rest.
SD-WAN on Private Edge Zones
SD-WAN lets you create enterprise-grade wide area networks (WANs) that have these benefits:
Increased bandwidth
High-performance access to the cloud
Service insertion
Reliability
Policy management
Extensive network visibility
SD-WAN provides seamless branch office connectivity that's orchestrated from redundant central controllers at
lower cost of ownership. SD-WAN on Private Edge Zones lets you move from a capex-centric model to a
software-as-a-service (SaaS) model to reduce IT budgets. You can use your choice of SD-WAN partners,
orchestrator or controller, to enable new services and propagate them throughout your entire network
immediately.
Next steps
For more information, contact the following teams:
Edge Zone team
Private Edge Zone team, to become a partner
What is Azure Orbital? (Preview)
3/5/2021 • 9 minutes to read • Edit Online
Azure Orbital is a fully managed cloud-based ground station as a service that lets you communicate with your
spacecraft or satellite constellations, downlink and uplink data, process your data in the cloud, chain services
with Azure services in unique scenarios, and generate products for your customers. Azure Orbital lets you focus
on the mission and product data by off-loading the responsibility for deployment and maintenance of ground
station assets. This system is built on top of the Azure global infrastructure and low-latency global fiber network.
Watch the Azure Orbital announcement at Ignite on the Azure YouTube Channel
Azure Orbital focuses on building a partner ecosystem to enable customers to use partner ground stations in
addition to Orbital ground stations as well as use partner cloud modems in addition to integrated cloud
modems. Azure Orbital focuses on partnering with industry leaders such as KSAT, in addition to other ground
station/teleport providers like ViaSat Real-time Earth (RTE) and US Electrodynamics Inc. to provide broad
coverage that is available up-front. This partnership also extends to satcom telecom providers like SES and other
ground station/teleport providers, ViaSat Real-time Earth (RTE), and US Electrodynamics Inc. to offer
unprecedented connectivity such as global access to your LEO/MEO fleet or direct Azure access for
communication constellations or global access to your LEO/MEO fleet. We’ve taken the steps to virtualize the RF
signal and partner with leaders – like Kratos and Amergint – to bring their modems in the Marketplace. Our aim
is to empower our customers to achieve more and build systems with our rich, scalable, and highly flexible
ground station service platform.
Azure Orbital enables multiple use cases for our customers, including Earth Observation and Global
Communications. It also provides a platform that enables digital transformation of existing ground stations
using virtualization. You have direct access to all Azure services, the Azure global infrastructure, the Marketplace,
and access to our world-class partner ecosystem through our service.
Value propositions for Azure Orbital users include:
Global footprint – The Azure Orbital ground station service is inclusive of our partner ground stations
as well. Global coverage is available without delay and customers can schedule Contacts using Orbital on
the partner ground stations as well in addition to Microsoft-owned ground stations.
Conver t Capital Expenditure to Operational Expenditure – As we take on the task of deploying
and managing ground stations, your up-front costs required for ground-station investments can be used
to focus on the mission and deployment of assets. Our pay-as-you-go consumption model means you
are only charged for the time you use.
Licensing – Our team can help on-board your satellite(s) across our sites and regulatory bodies.
Operational Efficiency and Scalability – You don’t have to worry about maintenance, leasing,
building, or running operational costs for ground stations anymore. You will have the option to rapidly
scale satellite communications on-demand when the business needs it.
Direct access to Azure network and regions – We deploy our own ground stations at datacenter
locations or in close proximity to the edge of our network, and also inter-connect with partner ground
stations and networks to provide proximity to Azure regions. Your data is delivered to the cloud
immediately and anywhere to your desired location through Azure’s secure and low-latency global fiber
network.
Digitized RF – With the fully digitized signal available from the antenna, including up to 500 MHz of
wideband, you have complete control and security over the data coming from your spacecraft. Software
modems from our partners are integrated into the platform for seamless use and are also available in the
Marketplace for use to complete the processing chain. We anticipate certain customers to bring their own
modems as well (for their unique mission needs) which is supported by delivery of digitized RF at the
designated endpoint in your virtual network.
Azure Cloud and Marketplace – Take advantage of all Azure solutions to process and store the data,
including but not limited to IoT, AI and ML, Cognitive services, analytics and storage, and chain together
with your workload in one environment.
Flexibility – The power of our scheduling service, partner networks, digitized RF, and the marketplace
means you are not restricted to a particular solution set or workflow. We encourage you to think outside
of the box and reach out to us. For example, your product chain, could be offered in the Marketplace as
well for other users to incorporate in their products. The possibilities are endless.
For more information on our preview, or to express interest to participate in the preview, fill the contact form
here, or email us at MSAzureOrbital@microsoft.com.
Earth observation
You can use Azure Orbital to schedule contacts with satellites on a pay-as-you-go basis for house-keeping and
payload downlinks. Use the scheduled access times to ingest data from the satellite, monitor the satellite health
and status, or transmit commands to the satellite. Incoming data is delivered to your private virtual network
allowing it to be processed or stored in Azure.
As the service is fully digitized, a software modem from Kratos and Amergint, can be used to perform the
modulation/demodulation and encoding/decoding functions to recover the data. You will have the option to
purchase from the Marketplace or let us manage this part for you. Furthermore, integrate with Kubos, to fully
leverage an end-to-end solution to manage fleet operations and Telemetry, Tracking, & Control (TT&C)
functions. Implement your workloads in Azure using Azure resources and toolboxes to manipulate the payload
data into the final offerings.
Scheduling contacts
Scheduling contacts using Azure Orbital is an easy three-step process:
1. Register a spacecraft – Input the NORAD ID, TLE, and licensing information for each satellite.
2. Create a contact profile – Input the center frequency and bandwidth requirements for each link, as
well as other details such as minimum elevation and autotrack requirements. Feel free to create as many
profiles as required. For example, one for commanding only, or one for payload downlinks.
3. Schedule the contact – Select the spacecraft and select a contact profile along with the time and date
window to view the available passes at ours and our partner network’s sites to reserve. We will have a
first come first serve algorithm at first, but priority scheduling or guaranteed scheduling is on the
roadmap.
For more information on our preview, or to express interest to participate in the preview, fill the contact form
here, or email us at MSAzureOrbital@microsoft.com.
Global communication
Satellite providers who provide global communication capabilities to their customers, can use Azure Orbital to
either colocate new ground stations in Azure data centers or edge of Azure network, or inter-connect their
existing ground stations with global Azure backbone. They can then route their traffic on global Microsoft
network, leverage internet breakout from the edge of Azure network for providing internet services and other
managed services to their customers.
Azure Orbital service delivers the traffic from Orbital ground station to Provider’s virtual network. Using these
Azure Orbital services, a satellite provider can integrate or bundle other Azure services (like Security services
like Firewall, connectivity services like SDWAN, etc.) along with their satellite connectivity to provide managed
services to their customers in addition to satellite connectivity.
For more information on our preview, or to express interest to participate in the preview, fill the contact form
here, or email us at MSAzureOrbital@microsoft.com.
For more information on our preview, or to express interest to participate in the preview, fill the contact form
here, or email us at MSAzureOrbital@microsoft.com.
Partners
As we move forward with our journey to Space, we will be adding more partners to our ecosystem to help our
customers achieve more using Azure Orbital. We will be partner-led in our approach as we build Azure Orbital.
Our goal has been also to build a vibrant ecosystem of partners to jointly create more value for both our
partners as well as our customers. Think of it as a coral reef!
The following sections show a list of partner categories and Azure Orbital partners that are already part of
Orbital ecosystem:
Ground station infrastructure partners
We have partnered with KSAT, ViaSat RTE (real-time earth), and US Electrodynamics to enable our customers to
communicate to their satellites by using these partner ground stations and ingest data directly in Azure.
Virtualized modem partners
We have partnered with Kratos and Amergint to bring their software radio processing capabilities in the cloud
as part of our Orbital platform. These capabilities have been upgraded to adopt Azure platform accelerations
(including but not limited to Accelerated Networking using DPDK and GPU-based acceleration using special
purpose Azure compute) to process the radio signal in real time at high throughputs/bandwidth. Additionally,
our customers will also be able to deploy these software modems from our partners from Azure Marketplace in
their own virtual networks for more granular and closer control on signal processing.
Global communication partner
SES is one of the largest satellite connectivity providers in the Space industry. We are happy to share that SES
has selected Azure Orbital to augment their ground network needs for their next generation MEO
communication system mPower. As part of this launch, we will be colocating new dedicated ground stations in
our datacenters in addition to inter-connecting existing ground stations with our global backbone network.
Allowing SES with a faster time to market with highly scalable Ground Station as a Service by leveraging cloud-
based virtualized modems provided as part of the Orbital platform in addition to the Azure global backbone
network.
SES will leverage our global backbone network to route their traffic globally and use Azure Orbital services to
provide multiple managed services, built on top of the platform, to their customers. These services will range
from security services, SDWAN, Edge compute, 5G mobility solutions to multiple other services.
TT&C solution partner
We have partnered with Kubos to bring Major Tom, their Cloud-Based Mission Control Software, to Azure
Marketplace for Azure Orbital customers.
Next steps
For more information on our preview, or to express interest to participate in the preview, fill the contact form
here, or email us at MSAzureOrbital@microsoft.com.