Nomad_Soul - Fotolia
Microsoft Azure low-priority VMs tap into underutilized cloud capacity to provide users with significant cost savings, but they need to be used strategically.
These discounted VMs are primarily available through Azure Batch, which provides job scheduling and resource management for batch processing workloads. They are designed for workloads that can tolerate disruptions, since they aren't always available and can be preempted by other users.
Still, the savings are considerable -- often costing one-fifth of the price of a standard, on-demand VM. For example, an A1 v2 instance in West U.S. 2 with 1 vCPU, 2 GB RAM and 10 GB Temporary Storage is available for $0.036 per hour for normal priority. That price drops to $0.007 per hour with low-priority VMs.
Low-priority VM pricing may vary depending on the chosen region, but the savings are dramatic, regardless. There might be some room to negotiate on the price -- depending on your business relationship with Microsoft.
Azure low-priority VMs are also available as part of scale sets, but that capability is still in preview. Scale sets are used in Azure to run identical, load-balanced VMs. When deploying low-priority VMs on scale sets, Azure will allocate the VMs only if there is capacity available. There is no service-level agreement (SLA) for low-priority VMs in scale sets. Users can deploy a low-priority scale set in a single fault domain with no high availability guarantees.
When to use Azure low-priority VMs
When building an application with low-priority VMs, instances may not be available. Even when those VMs are allocated, higher-priority requests from other users may preempt them and prevent their use for your projects or workloads. The availability SLA for normal VMs doesn't apply to low-priority VMs.
Clearly, these VMs have their limitations due to these restrictions. And while users wouldn't build their production workloads around them -- or any web apps or other workloads that need to run constantly -- there are cases where they're perfectly suitable.
For example, they can be used for batch processing and high-performance computing jobs because the work is split into many asynchronous tasks. If a VM is preempted, you can interrupt the work and rerun the tasks.
They can also supplement on-demand capacity as long as you plan for it in your architecture. Look for jobs that scale and can save money if completed quicker. They're a good fit for test and development environments, where they can provide significant savings for large-scale load and regression testing.
Try to limit low-priority VMs to tasks with flexible deadlines. Job completion time can increase if the capacity drops due to preempting. If low-priority VMs are preempted, any interrupted tasks will be re-queued and the pool will automatically try to replace the lost capacity.
Low-priority VMs in a Windows world
Cloud cost optimization is still a dark art for many enterprises, even those already in the cloud. Traditional Windows shops that aren't fully immersed in Azure face an even steeper learning curve because, conceptually, low-priority VMs might be a bit of an unknown for them.
These teams won't necessarily understand the benefits because they don't have a direct, on-premises equivalent. Even newly certified cloud architects may have only read about the benefits of low-priority VMs to pass their certification.
However, these VMs are critical to cloud cost optimization on Azure. These organizations need to get up to speed with how these and other discount options, such as reserved instances, can reduce their unused capacity and save money.
Strategic use of Azure low-priority VMs can take a couple of forms:
- Include low-priority VMs in your cloud cost-optimization discussions internally so decision-makers, developers and architects know about the option.
- Incorporate them in your cloud architecture -- where feasible -- so they're in your design from day one.
- Educate your teams about using them as a tool for cloud cost optimization during data storage and workload requirements gathering and discussions.
Azure Low-priority VMs in the market
Microsoft's low-priority VMs serve roughly the same role as AWS Elastic Compute Cloud Spot Instances and Google Cloud preemptible VMs in their respective clouds.
Like Azure low-priority VMs, AWS Spot Instances come from an unused AWS capacity, though they potentially provide deeper discounts -- up to 90% off standard VMs. These prices vary based on broader capacity trends. Users have the option to predetermine how long those instances will run, though the discounts cap out at 50% in those scenarios.
Google's preemptible VMs run on a 24-hour "fuse." Users of this program need to accept the fact that Google will terminate the instance at the 24-hour mark. AWS and Azure don't shut their low-priority VMs down this way. Also, Google can shut down a VM if it needs additional capacity to run other customer's workloads. These VMs are best for testing, quick batch jobs and fault-tolerant applications.