Understanding the different between Azure Availability Zones vs Set (Availability Sets) is important when architecting your workloads in Azure. In different use cases it may be better to implement different solutions in order to meet your organisations strategic goal. Factors in this goal would likely include variable such as; cost, downtime and availability.
In this post we are going to discuss the different between Availability Zones vs Set to help you implement these architectures in your designs.
What is an Azure Availability Zone?
Azure Availability Zones are physically separate locations/zones that are located within the same region. This makes them tolerant of local failures at any single location. These failures could be anything from hardware (server/network) failures, to power outages or natural disasters.
An Azure Availability Zone is designed in such a way that each zone is comprised of one or more data centres and each zone is connected via secure, high bandwidth, low latency links. This allows you to design and build highly available and resilient workloads in the Azure Cloud with a support SLA from azure of 99.99%.
Not all regions support availability Zones, here is a list of Azure regions that do:
- France Central
- Germany West Central
- North Europe
- Norway East
- UK South
- West Europe
- Sweden Central
- Brazil South
- Canada Central
- Central US
- East US
- East US 2
- South Central US
- US Gov Virginia
- West US 2
- West US 3
- Australia East
- Central India
- Japan East
- Korea Central
- Southeast Asia
- East Asia
- China North 3
- South Africa North
What is an Azure Availability Set?
An availability set is a grouping of Azure Virtual Machines that allows Azure to understand how your application or workload is built to provide for high availability.
The idea behind an availability set is that you have multiple virtual machines within the availability set running the same service. Should one virtual machine fail, crash or need to be taken out of service for maintenance, the workload or service is still available to your users.
Within your availability set, each virtual machine is assigned an update domain and a fault domain, you can have up to 20 update domains and 3 fault domains.
Update domains determine a group of machines within your availability set that can be updated and rebooted at the same time. Only one update domain is rebooted at a time and each update domain is given 30 minutes to recover from the update before the next update domain is rebooted.
Fault domains are groups of virtual machines that share a common power source and network connectivity (switch). By default if you have 3 virtual machines, they are spread across 3 fault domains. By adding an additional virtual machine to your availability set, this will be added to fault domain 1 and so on and so forth. While fault domains do protect your workload from physical hardware failure, it does not protect your workload from operating system failure or application failures.
When should I use an Available Zone vs Set?
When building your workload in Azure it is important you consider carefully how you are to build availability in your virtual machine infrastructure. There are some factors you should consider when choosing whether to use availability sets or zones.
Cost
When creating an availability zone there is an additional bandwidth cost for data going in and out of a zone. It is however quite minimal, at around 1 pence per GB, but it quickly builds up with workloads that have a high data churn.
Storage
Where availability zones support managed disks, availability sets do not directly. This does not mean that managed disks that are attached to VM’s in an availability sets are not as available, they are still provisioned in such a way that they are isolated from a single point of failure. Where as in availability zone, a copy of that managed disk is located inside each zone.
Availability
As availability sets and availability zones are two different services, they both come with different SLA (service level agreements). The SLA is defined as a percentage, as specifies the guarantee uptime of your compute or service. This does not include your application or overall workload, but the underlying azure service running it. Where availability sets guarantee a 99.95% uptime, availability zones guarantee a 99.99% uptime. Although this does not look like much, this (on paper) is the difference between around 5 hours of cumulative downtime over 365 days compared to under 1 hour of cumulative downtime.
Microsoft Learn
I have put together a Microsoft learn collection that covers some additional reading on Azure Availability Set, Availability Zones and high availability.
Summary
Thank you for taking the time to read this article on the differences between availability zone vs availability sets. You should now know the different between the two and understand some defining factors that will guide your designs, such as, bandwidth, cost, SLA’s and storage.