VMs & Scale Sets
Availability sets · Zones · VMSS Flexible/Uniform · Cost options
Practice questions for this topic →
Decision table
| Need | Choose |
|---|---|
| Survive the failure of a whole datacenter within the region | Availability zones |
| High availability in a region with no availability zones | Availability set (or VMSS Flexible using fault domains) |
| Autoscale, mixed VM sizes, Spot and on-demand in one group, with Azure Backup or ASR | VMSS Flexible orchestration |
| Interruptible or dev/test work at the lowest possible cost | Spot VMs |
| Steady 24×7 workload of one size for 3 years, minimize cost | Reserved Instances (plus Azure Hybrid Benefit if you own the licenses) |
| Predictable hourly compute spend, but VM families or regions may change | Savings plan |
| Compliance requires no other customer on the same physical server | Azure Dedicated Host |
| Lowest network latency between tiers of VMs | Proximity placement group + accelerated networking |
Set the orchestration mode when you create a scale set; it can't be changed later. Availability sets and zones are the two HA options; a set protects against rack and hardware failures inside one datacenter, not against losing the datacenter.
Availability sets vs availability zones
- Availability set: spreads VMs across up to 3 fault domains and up to 20 update domains inside one datacenter. The domain counts can't change after the set is created. The set itself has no cost; you pay only for the VMs. Two or more VMs get a 99.95% SLA.
- Maintenance mechanics: with 5 update domains, VM 6 shares an update domain with VM 1, VM 7 with VM 2, and so on. Only one update domain restarts at a time, and each gets 30 minutes to recover before maintenance moves to the next.
- Availability zones: the highest reliability, with a 99.99% SLA. Zones protect against datacenter-level failures, which sets do not.
- Trade-off: a set keeps VMs closer together, so VM-to-VM latency is lower, but it is still exposed to datacenter-level network outages.
Scale set orchestration modes
| Mode | What it gives you | Limits to remember |
|---|---|---|
| Flexible | Mixed VM sizes, Spot plus on-demand in one group, zone spreading, and the standard VM experience including Azure Backup and Site Recovery | Up to 1,000 VMs per scale set. Update domains are deprecated: live migration handles most updates, and reboots happen fault domain by fault domain. Zone-spanning sets use max spreading (fault domain count of 1). |
| Uniform | Identical instances | Instances are reachable only through scale set VM APIs. They lack compatibility with standard VM API commands, ARM tagging, RBAC, Azure Backup and Azure Site Recovery. |
There is currently no automated tool to convert VMs in an availability set into a Flexible scale set. Plan the migration as a rebuild.
Cost options
- Spot VMs: up to 30 seconds of eviction notice. The default eviction policy is Deallocate (the VM stops, still counts against quota, and its disks are still billed) or Delete (the VM and its disks are removed).
- Reserved Instances: a discount tied to a specific resource size and region. Deepest discount, least flexibility.
- Savings plan: an hourly spend commitment (1 or 3 years) across eligible compute services and regions, so it survives family or region changes.
- Azure Hybrid Benefit: a licensing saving, not a compute commitment. It combines with a reservation when you own the licenses.
- Dedicated Host: a host group lives in one region and one zone. Deploy VMs across at least 2 hosts for high availability. A host takes mixed sizes of one VM series.
Proximity placement groups
- A proximity placement group is a colocation constraint pinned to one datacenter when the first resource deploys.
- Stop (deallocate) a resource before you move it into a group.
- Specify every VM series you need up front.
- For the lowest latency, pair the group with accelerated networking. An availability set is a resiliency feature, not a latency feature.
Exam Tips
Tick each tip once you can answer it without looking.
“Survive the failure of a datacenter within the region” → Availability zones. Trap: An availability set only protects against rack failures inside one datacenter.
“HA for VMs in a region with no availability zones” → Availability set (or VMSS Flexible using fault domains).
“Autoscale, mixed VM sizes, Spot and on-demand in one group” → VMSS Flexible orchestration. Trap: Uniform instances can't be protected with Azure Backup or Site Recovery.
“Scale set VMs must be protected with Azure Backup or replicated with ASR” → VMSS Flexible.
“Dev/test or interruptible processing at the lowest possible cost” → Spot VMs. Trap: Spot gets 30 seconds of eviction notice, so don't use it for steady production.
“Steady 24×7 workload for 3 years, minimize cost, same VM size” → Reserved Instances (+ Azure Hybrid Benefit if you own the licenses).
“Commit to hourly spend, but VM families and regions may change” → Savings plan. Trap: A reservation locks in a specific size and region.
“No other Azure customer may share the physical server” → Azure Dedicated Host. Trap: A proximity placement group only places VMs close together.
“Lowest latency between tiers of VMs” → Proximity placement group + accelerated networking. Trap: An availability set is about resiliency, not latency.
“Change Uniform to Flexible after the scale set exists” → You can't: the orchestration mode is set at creation. Create a new Flexible scale set.
“Move existing availability set VMs into a Flexible scale set” → No automated tooling; rebuild.
“Zone-spanning Flexible scale set” → Max spreading, fault domain count = 1.
“Maximum availability set fault and update domains” → 3 fault domains, 20 update domains, fixed after creation.
“Spot eviction behavior” → 30 seconds notice; Deallocate (disks still billed) or Delete.
“Availability set SLA and cost” → 99.95% with 2+ VMs; no charge for the set itself. Trap: Zones give 99.99%.