Azure Spot Virtual Machines are a purchasing option that can save significant amounts on infrastructure, for certain types of workloads.  Azure Spot VMs are not created as a separate type of VM in Azure, instead, it’s a capability to bid for spare capacity at a discount from on demand pricing. But there’s one caveat: at any given point in time when Azure needs the capacity back, the Azure infrastructure will deallocate and evict the Spot VM from your environment.

In the past, Azure offered Low Priority VMs, which were charged at a fixed price. In March this year, that option was replaced by Azure Spot VMs, except in Azure Batch, where Low Priority VMs are still available. With the newer option, you bid by indicating the maximum price you are willing to pay for a VM.

Why Use Azure Spot VMs

Microsoft allows you to use their unused compute capacity at a discounted rate. These discounts are variable and can go up to >90% of the pay-as-you-go rates, depending on the size of the VM and the unused capacity available. The amount of capacity available can vary based on region, time of day, and more. 

You can use Azure Spot VMs for workloads that are not critical or need to run 24×7. For example, a basic scenario would be for testing the load of a particular workload that you want to perform for a fraction of the cost. Other use cases include batch processing, stateless applications that can scale out, short-lived jobs that can be run again if the workload is evicted, etc.

Keeping in mind that there are no SLAs or availability guarantees for these Spot VMs. The most significant concern users have is that they may not be available to you to get resources, especially at peak load times. The issue is not with the service, it’s with how it is intended to work. Be aware of this when making the decision to use this approach.

Some important things to consider when using Azure Spot VMs: 

  • VMs are evicted based on capacity or by if the price exceeds your maximum set price 
  • Azure’s infrastructure will evict Spot VMs if Azure needs the capacity for pay-as-you-go workloads
  • B-series and promo versions of any size (like Dv2, NV, NC, H promo sizes) are not supported
  • A Spot VM cannot be converted to a regular VM or vice versa. You would have to delete the VM and attach the disk to a new VM
  • VMs that are evicted and deallocated are not turned back on when capacity or price comes back inside allowed limits, you will need to manually turn them back on
  • You will be unable to create your VM if the capacity or pricing are not inside the allowed limits

How to Use Azure Spot VMs

You have two choices when deploying Azure Spot VMs. When you enable the feature in your Azure environment, you need to select what type of eviction and eviction policy you want for the capacity: 

Types of eviction:

  • By capacity only – the VM is evicted when Azure needs capacity. In other words, your maximum price for the spot VM is the current price of the regular VM
  • By maximum price – the VM is evicted when the spot price is greater than the maximum price

Eviction policy (currently available): 

  • Stop / Deallocate

The eviction policy for Spot VMs is set to Stop / Deallocate which moves your evicted VMs to the stopped-deallocated state, allowing you to redeploy the evicted VMs at a later time. Remember reallocating Spot VMs will be dependent on there being available Spot capacity. However, the deallocated VMs will count against your spot vCPU quota and you will be charged for your underlying disks. If your Spot VM is evicted, but you still need capacity right away, Azure recommends you use a standard VM instead of Spot VM. 

Do Azure Spot VMs Save You Money?

Yes: these discounted VMs can save you money. How much will vary? Azure Spot VMs prices are not fixed like standard instances, they change over the day and vary based on the supply and demand in a particular region. 

Azure Spot VMs are a good option that can provide cost savings if your application can handle unexpected interruptions. 

Use Spot VMs as part of your full cost-saving strategy. For on-demand workloads that aren’t needed 24×7, ensure you have appropriate on/off schedules in place. All VMs should be properly sized to the workload. You can start automating these Azure cost optimization tasks with ParkMyCloud today.

About Jonathan Ferrer

Jonathan Ferrer is the Marketing Manager for ParkMyCloud. Jonathan manages various digital marketing initiatives at ParkMyCloud. He developed an interest in communications while going to school for business management and IT studies. As a Marketing Manager, it was befitting for Jonathan to join ParkMyCloud and combine his passion for both technology and communications. In his spare time, he likes spending time with family, and enjoys cooking, reading, playing tennis, hiking and traveling.