Understanding Availability Sets and Availability Zones
Published Dec 17 2020 12:01 AM 110K Views

When learning something new there are a lot of phrases, terms and theory to learn and when learning Azure the same is true. One of the things you should be aware of within Azure is the difference and use cases of Availability Zones and Availability Sets.


When we are architecting workloads we see availability is making sure the resources or workloads are there when you need them.


Virtual Machines in Azure

Within Azure when you spin up a virtual machine it gives you an availability of either 95%, 99.5% or 99.9% depending on how you configure your disks with that virtual machine.  When you think about it in monthly terms a 95% Service Level Agreement (SLA) allows for around one and half days downtime. For a lot of workload cases and organisations these availability numbers will be more than adequate.  If you need more then that’s where Availability Zone and Sets can help.


Availability Sets

An Availability Set  lets you spread your virtual machines across physical hardware in different fault domains and update domains, in one location. This reduces the risk of a hardware failure or update failure impacting the availability of all of your VMs at the same time. Fault domains share common storage as well as a power source and a network switch. An updated domain contains physical hardware that can be rebooted at the same time. Without visibility down at that hardware level, you can benefit from deploying your VMs into an Availability Set, to spread them across fault domains and update domains.


When you create your virtual machine you can specify the Availability Set, you can’t change it or move it in or out of an Availability Set after creation.  If you wanted to make changes you would need to start again and recreate the virtual machine.   And Availability Sets only apply to virtual machines, they can’t be used for any other type of resource within Azure.


Using an Availability Set takes the acceptable downtime to around 22 minutes a month, which is a vast improvement over a single virtual machine deployment. Note: While an availability set will decrease the risk of all of your VMs being unavailable at the same time, you will still need to architect your application or solution to fail over to non-impacted VMs for redundancy/business continuity.


Availability Zone

The next level of availability for your virtual machines within Azure is Availability Zones.  With Availability Zones utilised your acceptable downtime a month moves to less than 5 minutes as you’ve got a 99.99% SLA.


Availability ZoneAvailability Zone


With Availability Zones you are starting to use zone aware services. Your workload will be spread out across the different zones that make up an Azure region.  An Azure region is made up of multiple datacentres and each zone is made up of one or more datacentres.  Each datacentre is equipped with independent power, cooling and networking.


When do use them?

There can be a few deciding factors around Availability Zones versus Availability Sets, you should be thinking about these questions when designing your workloads in Azure:


  • Are Availability Zones available in the region I want to use? You can find out which regions support them and which services are support here.
  • What SLA or availability does this workload really need? Make sure you really understand the business needs versus the wants.  Each configuration will offer you the following:
    • 99.9% = Single VM (with Premium SSD or Ultra Disk)
    • 99.95% = Availability Set
    • 99.99% = Availability Zones


What about VMSS Flex?
Virtual Machine Scale Sets Flexible Orchestration offers high availability guarantees (up to 1000 VMs) by spreading VMs across fault domains in a region or within an Availability Zone. This enables you to scale out your application to handle increased load, while maintaining fault domain isolation. For more details on the difference between Availability Sets and VMSS Flex, visit A comparison of Flexible, Uniform, and availability sets.


Never Stop Learning

It can feel daunting trying to learn new terminology or technologies however never stop learning, if you learn something new each day, you’ll find it all adds up. And if you are looking to learn more core Azure architectural components, check out this free Microsoft Learn module.


Version history
Last update:
‎Mar 05 2023 08:27 PM
Updated by: