What Is Availability set in Cloud Computing?
On This Page
What do you want to do?
Quick Definition
An Availability set is a way to keep your applications running even when something goes wrong in a data center. It spreads your virtual machines across different physical servers and power sources so that if one part fails, the rest keep working. It also makes sure that during updates, only a few machines are taken down at a time. This helps you meet your service level agreements for uptime.
Common Commands & Configuration
az vm availability-set create --name myAvailabilitySet --resource-group myResourceGroup --platform-fault-domain-count 2 --platform-update-domain-count 5Creates an Azure Availability Set with 2 fault domains and 5 update domains to protect VMs from data center failures and planned maintenance.
Tests understanding of fault domain and update domain counts and their impact on SLA. Common in AZ-104 questions about high availability.
aws ec2 create-placement-group --group-name myPlacementGroup --strategy spread --spread-level rackCreates an AWS placement group using the spread strategy at the rack level, which is analogous to an Availability Set across racks in on-premises.
AWS Cloud Practitioner and SAA exams test spread vs. cluster vs. partition placement groups as the AWS equivalent of availability sets.
az vm create --resource-group myResourceGroup --name myVM --availability-set myAvailabilitySet --image UbuntuLTS --admin-username azureuserCreates an Azure VM and assigns it to an existing availability set to ensure it is placed in a separate fault and update domain.
Tests the concept that VMs in an availability set are automatically distributed across fault domains. Common in Azure exams for 99.95% SLA scenarios.
gcloud compute instance-templates create my-template --region=us-central1 --machine-type=e2-standard-2 --maintenance-policy=TERMINATECreates a Compute Engine instance template that can be used in a managed instance group with availability policies, though GCP uses 'availability policies' instead of sets.
Google ACE and Digital Leader exams test how GCP's automatic restart and on-host maintenance policies serve the same purpose as availability sets.
az vm availability-set list --resource-group myResourceGroup --output tableLists all availability sets in a resource group, showing their fault domain and update domain configuration.
Used in AZ-104 troubleshooting questions to verify that VMs are correctly assigned to availability sets and that domain counts are configured.
az vm availability-set update --name myAvailabilitySet --resource-group myResourceGroup --platform-fault-domain-count 3Updates an existing Azure availability set to increase fault domains to 3, though this change is only effective for new VMs added.
Tests awareness that fault and update domain counts cannot be changed after VMs are already in the set, a common exam trap.
aws autoscaling create-auto-scaling-group --auto-scaling-group-name myASG --launch-configuration-name myLC --min-size 1 --max-size 5 --availability-zones us-east-1a us-east-1bCreates an Auto Scaling group across multiple availability zones, which is AWS's approach to high availability, distinct from a single availability set.
Tests the difference between AZ-level redundancy (AWS) vs. fault domain redundancy (Azure availability set). Appears in cross-platform exam comparisons.
Availability set appears directly in 30exam-style practice questions in Courseiva's question bank — one of the most-tested concepts on Google ACE. Practise them →
Must Know for Exams
The concept of an Availability set is heavily tested in Microsoft Azure certification exams, particularly AZ-104 (Microsoft Azure Administrator) and Azure Fundamentals (AZ-900). In AWS certifications, the concept is less explicit as a single object but appears in the context of placement groups, multi-AZ deployments, and high availability principles. For Google Cloud certifications, the idea is covered under sole-tenant nodes and spread policies. However, the term "Availability set" is most directly associated with Azure exams, and you must understand it thoroughly to pass those exams.
In the AZ-900 exam, you will encounter questions about the purpose of an Availability set, the difference between fault domains and update domains, and the SLA implications. A typical question might ask: "You deploy two virtual machines in an Availability set. What is the minimum SLA you can achieve?" The answer is 99.95% because Azure provides a 99.95% SLA when two or more VMs are in the same Availability set and all are running. If you answer 99.9%, you are confusing it with the single-instance SLA. Another common question describes a scenario where a company wants to protect against a rack-level failure, and you need to recommend an Availability set. You must understand that an Availability set protects against failures within a single data center but not against a data center failure, which would require Availability Zones.
For the AZ-104 exam, the depth increases. You may be asked to configure an Availability set during VM creation, or to troubleshoot a situation where VMs in an Availability set are all impacted by a single hardware failure. The exam expects you to know that you cannot change the Availability set of an existing VM without redeploying it. You also need to understand the difference between managed and unmanaged disks in the context of Availability sets. With unmanaged disks, there is an additional constraint that the disks must be stored in the same storage account to avoid single points of failure, but with managed disks, this is handled automatically. This is a classic exam trap: a question might state that the VMs are in an Availability set but the disks are in the same storage account, creating a single point of failure at the storage layer.
In AWS certifications, the topic appears differently. The AWS Cloud Practitioner exam may ask about high availability design, and you need to know that using multiple Availability Zones is the AWS-recommended approach, not an Availability set. The AWS Solutions Architect Associate exam discusses placement groups, specifically spread placement groups, which are similar but have constraints like a maximum of seven instances per group per Availability Zone. Understanding the differences between Azure and AWS approaches is crucial if you are preparing for multi-cloud certifications or the AWS Cloud Practitioner exam.
For the Google Cloud Digital Leader and ACE exams, the concept of resource isolation is covered. You might be asked how to ensure that VMs are not colocated on the same physical host for high availability. The answer would involve using sole-tenant nodes or configuring a spread VM placement policy. While the term "Availability set" is not used in Google Cloud, the underlying principle is identical. Therefore, when studying for any cloud certification, you must internalize the abstract concept: logically group VMs to isolate them from hardware failures and maintenance events.
Finally, exam questions often test your ability to distinguish between an Availability set and a load balancer. A common distractor is to suggest adding a load balancer to solve a high availability problem when the real issue is that all VMs are on the same physical server. You must recognize that a load balancer distributes traffic but does not prevent a single hardware failure from taking down all VMs. Only an Availability set (or its equivalent) can provide that physical isolation. Being able to identify this nuance in a scenario-based question is a high-value skill for exam success.
Simple Meaning
Imagine you run a small restaurant and you have three cooks working in the kitchen. Each cook has their own station with a stove. If one stove breaks down, the other two cooks can still prepare food, and your restaurant stays open. That is the basic idea behind an Availability set in cloud computing. An Availability set is a logical grouping of virtual machines that the cloud provider uses to understand how your application is built and to ensure that your application remains available during both planned and unplanned events. Unplanned events include hardware failures like a server crashing or a power outage. Planned events include software updates that the cloud provider needs to apply to the underlying physical servers.
To make this work, the cloud provider places each virtual machine in your Availability set into different fault domains and update domains. A fault domain is essentially a group of hardware that shares a common power source and network switch. If that power source fails, all the machines in that fault domain go down. But because your virtual machines are spread across multiple fault domains, only a portion of your application is affected. Update domains are similar, but they apply to planned maintenance. When the cloud provider needs to reboot servers for updates, it does so one update domain at a time. This ensures that at least some of your virtual machines remain running during the update. In Azure, for example, an Availability set can have up to three fault domains and twenty update domains, though the default for update domains is five. The exact numbers depend on the region and the type of Availability set you choose. By using an Availability set, you tell the cloud provider to keep your virtual machines separate, so that a single point of failure cannot take down your entire application.
In practical terms, think of a parking lot with multiple independent garages instead of one giant lot. If you park all your cars in one garage and that garage catches fire, you lose all your cars. But if you spread them across several garages that are separated by concrete walls and have separate electrical systems, a problem in one garage leaves the others untouched. That is exactly what an Availability set does for your virtual machines. It gives you a simple, cost-effective way to increase the resilience of your application without having to build complex replication yourself. You still need to design your application to handle the failure of one or more virtual machines, but the Availability set makes sure that not everything fails at once. It is one of the foundational building blocks for high availability in the cloud and is often one of the first things you configure when deploying a production workload.
Full Technical Definition
An Availability set is a logical grouping capability provided by cloud platforms such as Microsoft Azure, AWS (where it is called a placement group with a similar but not identical purpose), and Google Cloud (where similar isolation is achieved through sole-tenant nodes or spread placement policies). In the context of IT certification exams, the term is most deeply associated with Microsoft Azure, where Availability sets are a core feature for achieving high availability for Infrastructure as a Service (IaaS) virtual machines. The primary purpose of an Availability set is to provide redundancy and fault tolerance by ensuring that virtual machines are distributed across isolated hardware components within a single Azure region.
An Availability set operates by defining two key dimensions of isolation: fault domains and update domains. A fault domain is a logical group of underlying hardware that shares a common power source and a common network switch. In Azure, each Availability set by default contains three fault domains. This means that the virtual machines you place in the Availability set will be distributed by the Azure platform across three distinct groups of hardware, each with its own power and networking. If a hardware failure occurs within one fault domain, such as a power supply failure or a network switch malfunction, only the virtual machines in that fault domain are affected. The virtual machines in the other fault domains continue to operate. This design directly addresses the risk of a single point of failure at the physical infrastructure level.
The second dimension is the update domain. An update domain is a logical group of underlying hardware that will undergo planned maintenance at the same time. When Azure performs a platform update, such as applying a security patch to the host operating system or updating the hypervisor, it reboots the physical servers in one update domain at a time. By default, Azure assigns five update domains to an Availability set, although you can configure up to twenty. The sequential rebooting of update domains ensures that at most one fifth (or one twentieth if you use all twenty) of your virtual machines are unavailable during the update. This is critical for maintaining application availability during mandatory maintenance windows. The combination of fault domains and update domains is what makes an Availability set a powerful tool for meeting service level agreements that require 99.95% or higher uptime for a multi-instance deployment.
From a networking perspective, virtual machines within the same Availability set can communicate with each other using private IP addresses within the same virtual network. There is no additional latency introduced by the Availability set itself, as the distribution is managed at the hardware allocation layer. However, it is important to note that an Availability set does not provide automatic load balancing. To distribute traffic across the virtual machines, you must use an Azure Load Balancer or another traffic management solution. Similarly, an Availability set does not replicate data or provide data redundancy. You must implement data protection strategies separately, such as using Azure Managed Disks with zone-redundant storage or configuring Always On availability groups for SQL Server.
When you create a virtual machine in Azure, you are prompted to specify an Availability set. If you add a new virtual machine to an existing Availability set, Azure automatically places that virtual machine into an appropriate fault domain and update domain that maintains the optimal distribution. You can also create an Availability set independently and then add virtual machines to it at a later time. However, once a virtual machine is created, you cannot change its Availability set membership without deleting and recreating the virtual machine. This is a crucial point for exam preparation, as it means you must plan your high availability architecture before deploying your virtual machines.
In AWS, the closest equivalent is a placement group, specifically the spread placement group. A spread placement group distributes instances across distinct underlying hardware, and each group can have a limited number of instances per Availability Zone. However, AWS does not have a direct one-to-one mapping to Azure's update domain concept. In Google Cloud, achieving similar isolation requires using sole-tenant nodes or employing a spread policy with instance groups. For the AWS cloud-practitioner and associate exams, the concept of high availability is more often discussed in the context of using multiple Availability Zones and Elastic Load Balancing rather than a dedicated set-like object.
It is also worth noting the difference between an Availability set and an Availability Zone. An Availability Zone is a physically separate data center within a region, with its own power, cooling, and networking. Connecting virtual machines across Availability Zones provides a higher level of redundancy than an Availability set, but it also introduces cross-zone data transfer costs and higher latency. Availability sets operate within a single data center (a single zone) but provide redundancy within that zone. For maximum resilience, you can combine both: deploy virtual machines in an Availability set within each Availability Zone, and then load balance across the zones.
From a cost perspective, using an Availability set itself incurs no additional charges beyond the cost of the virtual machines themselves. However, you must deploy at least two virtual machines within the set to receive the 99.95% SLA, and those virtual machines must be running at all times. If you run only one virtual machine in an Availability set, the SLA drops to 99.9% for standard virtual machines. This is a common trap in exam questions, where a candidate might think that simply creating an Availability set automatically guarantees the highest SLA, when in fact the number of instances matters.
Finally, for exam purposes, it is essential to know that Availability sets are a region-level resource. They cannot span regions. They also cannot span virtual networks or resource groups without careful planning, although the virtual machines within a set must all reside in the same virtual network by default. The Azure Resource Manager template for deploying an Availability set includes parameters for the number of fault domains and update domains, and you can also specify a name and a location. The platform enforces that two virtual machines in the same Availability set cannot be placed in the same fault domain and update domain simultaneously, which guarantees the desired level of distribution.
Real-Life Example
Imagine you are organizing a large music festival with multiple stages. You have three main stages, each with its own sound system, lighting rig, and electrical generator. You also have fifteen different bands playing throughout the day, and you want to make sure that if one stage has a problem, the festival can still go on. You decide to schedule the bands so that at any given time, only one stage is being used for setup or breakdown, while the other two are actively performing. That is essentially how an Availability set works.
In this analogy, each stage represents a fault domain. Each stage has its own independent power supply and equipment. If the generator on stage A fails, the bands on stage A cannot perform, but the bands on stages B and C continue playing. The audience still gets music, and the festival is not ruined. The scheduling of bands across time slots represents update domains. You plan the schedule so that no more than one stage is shut down for maintenance at a time. For example, while stage A is quiet because the crew is setting up for the next band, stages B and C are fully operational. The festival managers (the cloud provider) coordinate the schedule to minimize downtime for the audience.
Now, let us say you are the festival organizer, and you have to repair the sound system on stage B. You decide to do that during a time when stage B is not scheduled to have a band playing. Because you spread your bands across the stages and staggered their performance times, you can take stage B offline without affecting the other stages. If you had put all your bands on a single stage, any maintenance or failure would cancel the entire festival. That is the core value of an Availability set: it prevents a single failure from taking down your entire application.
In the cloud, your virtual machines are like the bands, and the stages are the physical servers, power supplies, and network switches. By grouping your virtual machines into an Availability set, you tell the cloud provider to spread them across different "stages" and to schedule updates so that only one "stage" is affected at a time. This is a simple but powerful way to keep your application running smoothly, just like a well-organized festival that never lets a single generator failure ruin the show.
Why This Term Matters
In a real-world IT environment, downtime costs money. For an e-commerce site, even a few minutes of unavailability can mean lost sales and damaged reputation. For a hospital system, downtime can affect patient care. An Availability set is one of the simplest and most cost-effective ways to protect against hardware failures and planned maintenance events. It does not require you to change your application code or implement complex distributed systems patterns. You simply deploy two or more virtual machines and configure them to be in the same Availability set. The cloud provider then takes care of the physical distribution. This is why almost every production deployment in Azure uses Availability sets or the newer Availability Zones.
From a systems administrator's perspective, an Availability set simplifies capacity planning and maintenance scheduling. You know that you can apply patches to your own application by taking down one virtual machine at a time, while the others handle the traffic. You also know that the underlying hardware failures are isolated, so you do not need to manually migrate virtual machines off failing hosts. The platform handles that transparently. For organizations that have compliance requirements or specific SLAs with their customers, using an Availability set is often a mandatory step to meet those obligations. It also influences disaster recovery planning, because you must consider both intra-region redundancy (via Availability sets or zones) and inter-region redundancy (via Azure Site Recovery or similar services).
an Availability set matters because it is the foundation of high availability for IaaS workloads. It is a best practice that is easy to implement, has no additional cost, and directly impacts the reliability of your applications. IT professionals who ignore this concept often find themselves troubleshooting outages that could have been easily prevented.
How It Appears in Exam Questions
Exam questions about Availability sets typically fall into three patterns: scenario-based design, configuration steps, and troubleshooting. In scenario-based questions, you are given a company's requirements and must choose the right solution. For example, a company deploys two VMs for a critical application and wants to achieve 99.95% uptime. The question might offer several options: deploy both VMs in the same Availability Zone, deploy both VMs in an Availability set, deploy one VM in each region, or use a load balancer. The correct answer is to deploy both VMs in an Availability set. A distractor might be to deploy them in the same Availability Zone, which does not provide hardware isolation within that zone. Another scenario might require protecting against a power outage in a single rack, and again the answer is an Availability set.
Configuration questions often present a step-by-step process or ask you to identify the missing step. For instance, "You are creating a new VM in Azure. You want to add it to an existing Availability set. At which point during the creation process do you configure the Availability set?" The answer is during the creation of the VM, in the Basics or Advanced tab, before the VM is deployed. The trick is that you cannot add an existing VM to an Availability set without recreating it. Another configuration question might ask about the number of fault domains and update domains. For example, "You need to ensure that during a platform update, no more than 20% of your VMs are unavailable. What is the minimum number of update domains required?" The answer is 5, because 1 out of 5 is 20%. If you need 5% unavailability, you need 20 update domains. These questions test your understanding of the mathematical relationship between update domain count and unavailability percentage.
Troubleshooting questions are the most challenging. A typical question might describe a situation where two VMs are in an Availability set, yet both become unavailable simultaneously during a maintenance event. The candidate must recognize that this should not happen if the update domains are properly configured. The cause could be that the Availability set was not properly configured, or that both VMs were accidentally placed in the same update domain. In reality, Azure prevents this, but exam questions may test your knowledge that the platform guarantees that VMs in the same Availability set are distributed across update domains. A more advanced troubleshooting question might involve storage. For example, a company uses unmanaged disks and stores all VHD files in a single storage account. Even though the VMs are in an Availability set, a storage account failure could take all VMs down. The candidate must recommend moving to managed disks or using multiple storage accounts.
In AWS exams, similar questions appear with placement groups. A question might say, "You have three EC2 instances that must be placed on different racks to meet compliance requirements. What should you do?" The answer is to launch the instances in a spread placement group. Then a follow-up might ask about the limitation of spread placement groups, which is that you can only have seven instances per group per Availability Zone. Understanding these constraints is critical.
Overall, the key to handling these questions is to map the requirement to the correct level of isolation: within a single data center, use an Availability set (Azure) or spread placement group (AWS); across data centers within a region, use Availability Zones; across regions, use paired regions or disaster recovery services. Memorizing the SLA percentages for each configuration also helps, as these are frequently tested.
Practise Availability set Questions
Test your understanding with exam-style practice questions.
Example Scenario
A company called "CloudBooks" runs an online bookstore using two virtual machines in Azure that host the web application and the database. The IT manager wants to ensure that the bookstore stays open even if one of the servers fails due to a hardware problem. He decides to create an Availability set and deploys both virtual machines into it. The first virtual machine goes into fault domain 0 and update domain 0. The second virtual machine goes into fault domain 1 and update domain 1. Later that week, a power surge in the server room damages the power supply unit for the physical server hosting fault domain 0. As a result, the first virtual machine goes offline. However, the second virtual machine is on a different physical server with a separate power supply, so it continues to run. The website remains accessible because the second virtual machine still serves requests. The IT manager then fails over the database to the second VM (assuming a database clustering setup) and restores the first VM after the hardware is replaced. Without the Availability set, both VMs would have been on the same physical server and both would have gone offline, causing a complete outage.
In another instance, Azure needs to apply a security patch to the underlying host operating system. The platform begins maintenance with update domain 0, which contains the first VM. That VM is rebooted for a few minutes. But because there are five update domains in the Availability set, only one out of two VMs is affected. The second VM continues to serve customers. The IT manager notices no downtime because the application is designed to tolerate the loss of one VM. This scenario illustrates how Availability sets protect against both unplanned hardware failures and planned maintenance events.
Common Mistakes
Thinking an Availability set guarantees 99.99% uptime.
The highest SLA for an Availability set with two or more VMs is 99.95% for standard instances. 99.99% requires using Availability Zones or other premium configurations.
Recall that for a multi-instance deployment in an Availability set, the SLA is 99.95%. Check the official Azure SLA page for exact numbers.
Believing that a single VM in an Availability set gets the same SLA as two or more VMs.
Azure offers a 99.9% SLA for a single VM in an Availability set, not 99.95%. The higher SLA only applies when at least two VMs are deployed and running.
Always deploy at least two VMs in an Availability set to benefit from the higher SLA. One VM does not provide redundancy.
Assuming an Availability set protects against a full data center outage.
An Availability set operates within a single data center (or a single Availability Zone). It does not provide protection if the entire data center goes offline. That requires multiple Availability Zones or multiple regions.
For data center-level failures, use Availability Zones. For regional failures, use paired regions with Azure Site Recovery.
Confusing an Availability set with a load balancer.
A load balancer distributes incoming traffic across multiple VMs but does not physically separate them on different hardware. An Availability set provides the physical separation, while a load balancer ensures traffic distribution.
Use both together: an Availability set for hardware redundancy and a load balancer for traffic distribution. They serve different purposes.
Thinking you can add an existing VM to an Availability set without redeployment.
Once a VM is created, its Availability set membership is fixed. To change it, you must delete the VM (keeping the disks) and recreate it, selecting the new Availability set during creation.
Plan your Availability set configuration before creating VMs. If you need to change it later, you will have to recreate the VM and reassign any public IPs or configurations.
Exam Trap — Don't Get Fooled
{"trap":"In an exam scenario, a question states that a company deployed two VMs in an Availability set, but both VMs failed during a power outage. The question asks why this happened, and the answer choices include \"The VMs were in the same fault domain\" and \"The VMs were in the same update domain.\"","why_learners_choose_it":"Learners often confuse fault domains with update domains.
They might think that a power outage is planned maintenance and therefore choose 'same update domain.' They might also incorrectly assume that Azure always places VMs in different fault domains automatically, but if the Availability set is misconfigured or if there are only two fault domains available in that region due to capacity, it is possible for two VMs to end up in the same fault domain.","how_to_avoid_it":"Understand that a power outage is an unplanned event, so it is related to fault domains, not update domains.
Fault domains isolate against hardware failures, while update domains isolate against planned maintenance. Also, remember that Azure does automatically distribute VMs across fault domains, but if the number of fault domains is limited (default is three), and you have only two VMs, they will be placed in different fault domains by default. Therefore, the only way both VMs would fail is if the scenario deliberately describes a limitation or if the question implies a misconfiguration.
Read the scenario carefully and check if it mentions a capacity issue or a specific configuration that overrides the default behavior."
Commonly Confused With
An Availability Zone is a physically separate data center within an Azure region, with its own independent power, cooling, and networking. An Availability set only provides redundancy within a single data center. Availability Zones provide higher resilience but add cross-zone latency and data transfer costs. You can combine both for maximum redundancy.
An Availability set protects against a server rack failing. An Availability Zone protects against an entire building burning down.
A load balancer distributes incoming network traffic across multiple VMs to improve application scalability and reliability. It does not physically separate VMs on different hardware. An Availability set is about hardware isolation, while a load balancer is about traffic distribution. They complement each other but are not interchangeable.
An Availability set ensures your VMs are on different physical servers. A load balancer ensures that if one VM fails, traffic is sent to another VM.
A Virtual Machine Scale Set (VMSS) allows you to automatically manage a group of identical, load-balanced VMs. While a Scale Set can optionally use an Availability set for internal distribution, it focuses on auto-scaling and management. An Availability set is a simpler static grouping without auto-scaling.
A Scale set can automatically add more VMs when traffic increases. An Availability set simply ensures that whatever VMs you have are spread across hardware.
In AWS, a placement group is the closest equivalent to an Availability set, but it has different characteristics. There are three types: cluster, spread, and partition. A spread placement group is most similar to an Azure Availability set, but it has a limit of seven instances per group per Availability Zone. Azure's Availability set has no such instance limit within the set.
In AWS, you use a spread placement group to ensure EC2 instances are on different hardware. In Azure, you use an Availability set for the same purpose, but without the seven-instance limit.
Step-by-Step Breakdown
Define the high availability requirement
Determine the uptime SLA you need for your application. If you need 99.95% uptime for IaaS VMs, you must deploy at least two VMs in an Availability set. This step involves understanding the business need and mapping it to the appropriate cloud construct.
Create the Availability set resource
In the Azure portal, navigate to 'Create a resource' and search for 'Availability set'. Configure the name, region, fault domain count (default 3), and update domain count (default 5). These settings cannot be changed later, so choose carefully. The resource is created in the target resource group.
Create the first virtual machine and assign it to the Availability set
During VM creation, in the 'Basics' tab, select the Availability set you just created from the dropdown. Azure will automatically assign the VM to fault domain 0 and update domain 0. All other VM settings (size, image, disks, networking) are configured as usual.
Create the second virtual machine and assign it to the same Availability set
Repeat the VM creation process, selecting the same Availability set. Azure will automatically assign this second VM to a different fault domain (e.g., fault domain 1) and a different update domain (e.g., update domain 1) to ensure distribution. This guarantees hardware isolation.
Validate the hardware distribution
After both VMs are deployed, you can verify their fault domain and update domain assignments by viewing the properties of each VM in the Azure portal. This step is critical for auditing and compliance, ensuring that the platform placed them correctly.
Configure application-level redundancy
The Availability set only provides infrastructure redundancy. You must also configure the application to handle the failure of a single VM. This might involve setting up a load balancer to distribute traffic, configuring database replication, or using a clustered application pattern.
Test failure scenarios
Simulate a hardware failure by stopping one VM or by using Azure's fault injection tools (if available). Verify that the application continues to operate on the remaining VM. Also, test update domain behavior by checking how the VMs behave during a planned maintenance event. This step validates your high availability design.
Practical Mini-Lesson
When you start working with cloud infrastructure, one of the first things you learn is that virtual machines are not indestructible. They run on physical servers that can crash, lose power, or need updates. The Availability set is your first line of defense against these events, and understanding how to use it properly is a core skill for any cloud administrator.
In practice, you will most commonly work with Availability sets in Azure. The process begins during the planning phase. You need to decide how many VMs you need and what SLA you require. For instance, if you are deploying a web application that must be available 99.95% of the time, you will need at least two VMs in an Availability set. But you also need to consider that the application itself must be stateless or have session persistence managed by the load balancer, because any VM can fail at any time. Many professionals make the mistake of deploying an Availability set without also implementing a load balancer, only to find that the application works but users cannot reach the surviving VM because they don't know its IP address. Always pair an Availability set with a load balancer or a traffic manager.
Another practical consideration is the interaction with managed disks. In the past, when unmanaged disks were common, you had to ensure that the disks for VMs in the same Availability set were stored in different storage accounts to avoid a single point of failure at the storage layer. With managed disks, Azure automatically handles this distribution, so it is no longer a concern. However, you still need to ensure that your data is replicated. For example, if you use a SQL Server database on a VM, you should configure an Always On availability group with replicas on different VMs within the same Availability set. The Availability set protects the compute layer, but your data layer needs its own redundancy strategy.
What can go wrong? The most common issue is that someone creates an Availability set but only deploys a single VM into it. This offers no redundancy and actually reduces the SLA from 99.9% to 99.95% only if you have two VMs, but if you only have one, you still get 99.9%. However, the real problem is that you are paying for the cost of the Availability set resource (which is free) but not getting the benefit. Another common mistake is adding VMs to an Availability set after they are already running. As noted earlier, this is not possible without redeploying the VM, which causes downtime. This is why you must think about high availability at the very beginning of your deployment process.
From a professional perspective, you should also understand that Availability sets are a regional construct. If your entire Azure region experiences an outage, an Availability set will not help. For that, you need Azure Site Recovery to fail over to a paired region. Many enterprises use Availability sets within their primary region and then replicate to a secondary region for disaster recovery. This gives them protection against both hardware failures and full regional disasters.
Finally, remember that Availability sets are not just for production workloads. Even for development and test environments, using an Availability set can help you avoid unexpected downtime that delays your projects. The small overhead of creating the set is far outweighed by the reliability gains. As you prepare for your IT certification exams, focus on understanding the fault domain and update domain mechanics, the SLA implications, and the distinction between Availability sets and Availability Zones. These are the concepts that appear most frequently in exam questions and are the most important for your day-to-day work as a cloud professional.
Troubleshooting Clues
VMs in availability set still experience simultaneous downtime
Symptom: Two or more VMs in the same availability set are impacted by the same hardware failure or maintenance event.
This occurs when fault domain count is set to 1 or when VMs are manually placed in the same fault domain. Default fault domain count for managed disks is 2 but may be insufficient for critical workloads.
Exam clue: Azure exams test that the default fault domain count for managed disks is 2, and a single failure can affect all VMs if only 1 fault domain is configured.
Cannot add a VM to an availability set during creation
Symptom: Error message: 'Availability set cannot be specified for this VM' or 'The specified availability set is not in the same location'.
The VM is being created in a different region or resource group than the availability set. Availability sets are region-scoped and must match the VM's region.
Exam clue: Tests understanding that availability sets are regional resources and cannot span regions. Common in AZ-104 when questions involve cross-region deployment.
Inability to change fault domain or update domain count after VMs are added
Symptom: The update command succeeds but shows no change, or an error says the property cannot be modified.
Fault domain and update domain counts are set at creation of the availability set and cannot be changed once any VMs are associated with it. This is by design in Azure.
Exam clue: Exam questions often include a scenario where an admin tries to modify fault domain count after deployment, testing knowledge of this immutability.
Availability set does not improve VM availability during zonal failures
Symptom: All VMs in an availability set fail when an entire Azure availability zone goes down.
Availability sets protect against rack-level failures and planned maintenance within a single data center, but do not protect against zone-wide or regional outages. Availability zones are needed for zonal redundancy.
Exam clue: Tests the difference between availability sets (intra-datacenter) and availability zones (inter-datacenter). Frequently appears in AZ-900 and AZ-104 questions.
VMs in an availability set are not automatically load balanced
Symptom: Traffic is not distributed evenly across VMs in the availability set; one VM gets all traffic.
Availability sets only ensure VMs are placed on different hardware; they do not provide load balancing. An Azure Load Balancer or Application Gateway must be attached to distribute traffic.
Exam clue: Exam questions highlight that availability sets are not a replacement for load balancers. Candidates are tested on the difference between compute availability and traffic distribution.
Unmanaged disk VMs in availability set have limited fault domains
Symptom: Only 2 fault domains are available, even when requesting more.
For unmanaged disks, Azure limits fault domains to 2 per availability set. Managed disks allow up to 3 fault domains. This is a design constraint.
Exam clue: Common exam trap: unmanaged disks = max 2 fault domains; managed disks = up to 3. Tests understanding of disk types and fault domain limits.
You cannot use an availability set with availability zones simultaneously
Symptom: Error when trying to add a VM that uses availability zones to an availability set.
In Azure, a VM can be either in an availability set (intra-datacenter spread) or in an availability zone (inter-datacenter spread), but not both. They are mutually exclusive features.
Exam clue: Tests Azure-specific architecture: availability sets vs. availability zones. Exam questions present a scenario where both are attempted and ask why it fails.
Memory Tip
Remember 'FUD' – Fault domains for Failures, Update domains for Updates. Availability set gives you two kinds of protection: F for failures, U for updates, and D for domains.
Learn This Topic Fully
This glossary page explains what Availability set means. For a complete lesson with labs and practice, see the topic guide.
Covered in These Exams
Current Exam Context
Current exam versions that test this topic — use these objectives when studying.
ACEGoogle ACE →CDLGoogle CDL →AZ-104AZ-104 →AZ-900AZ-900 →CLF-C02CLF-C02 →SAA-C03SAA-C03 →DVA-C02DVA-C02 →220-1102CompTIA A+ Core 2 →PCAGoogle PCA →Related Glossary Terms
Two-factor authentication (2FA) is a security method that requires two different types of proof before granting access to an account or system.
An A record is a type of DNS resource record that maps a domain name to an IPv4 address.
AAA (Authentication, Authorization, and Accounting) is a security framework that controls who can access a network, what they are allowed to do, and tracks what they did.
An AAAA record is a DNS record that maps a domain name to an IPv6 address, allowing devices to find each other over the internet using the newer IP addressing system.
802.1Q is the networking standard that allows multiple virtual LANs (VLANs) to share a single physical network link by tagging Ethernet frames with VLAN identification information.
802.1X is a network access control standard that authenticates devices before they are allowed to connect to a wired or wireless network.
Quick Knowledge Check
1.What is the primary purpose of an Azure Availability Set?
2.A company has 3 VMs in an Azure Availability Set with 2 fault domains. A hardware failure occurs in fault domain 0. How many VMs are affected?
3.Which of the following is required to achieve 99.95% SLA for Azure VMs?
4.An engineer configures an Availability Set with 3 fault domains and 5 update domains. How many VMs can be placed in this set without exceeding the update domain limit?
5.Which statement about AWS placement groups is true when compared to Azure Availability Sets?