Azure Reserved Instances are a way to reduce Azure costs by committing to a one- or three-year term for a virtual machine, in exchange for a discount of up to 72% compared to pay-as-you-go. Of course, before you lock in such a commitment, there are a few things you should know about this purchasing option – here are 10.
1. Azure Reserved Instances are a purchasing option.
First, you should understand that what you’re “reserving” is the pricing and purchasing option – the virtual machines are the same that you can pay for through pay-as-you-go pricing. (If this seems counterintuitive to the idea of “that virtual machine I reserved,” recall that a reservation works more like a credit against your bill in retrospect rather than a specific VM with your name on it.)
2. Reservations are “use it or lose it”.
Important: reservation discounts are “use it or lose it”. If no resources match your reservation for any hour, you lose the reservation for that hour. This is why you should always ensure that you have predictable, full-time usage planned before reserving capacity.
3. They’re not available for everything… but perhaps more than you’d guess.
Reservations are available for virtual machines, SQL database compute capacity, Azure Cosmos DB throughput.
Keep in mind what services are covered by your reservation:
- Reserved Virtual Machine Instance – the reservation covers compute costs, but not software, networking, or storage costs.
- Azure Cosmos DB reserved capacity – reservations are for the provisioned throughput – not storage or networking charges.
- SQL Database reserved vCore – the reservation covers the compute costs, but not licenses.
- SQL Data Warehouse – reservations cover “compute Data Warehouse Units” (cDWU), or units of CPU, memory, and IO – but not storage or networking charges.
- App Service stamp fee – reservations cover stamp usage, but not workers and therefore other resources associated with the stamp.
There are some limitations to availability. You cannot purchase reservations for A-series, Av2-series, or G-series VMs; any VM-series or size in preview; Germany or China regions; or in some cases, reservations may be limited due to low capacity in a region.
4. You need to set a “scope” for the Reserved Instance to apply.
Another concept to be familiar with is the concept of “scope” for reservations – in other words, what subscription or resource groups are eligible for the discount you are purchasing. Scope can be limited to a single resource group, a single subscription, or shared scope across multiple eligible subscriptions as long as billing is tied together.
5. Instance sizes are flexible, automatically.
When you purchase Azure Reserved Instances, there is an option to “optimize for instance size flexibility” that will be selected by default. This means the reservation can apply to the VM sizes in the same VM group, which makes each reservation a bit more broadly applicable.
6. Whether you pay upfront or monthly, the cost is the same.
Payment options: Azure just released in September 2019 the ability to pay for reservations through monthly payments – at the same cost that you would pay up front, with no extra fees. There is no “partial upfront” option. This is in contrast to, say, AWS’s Reserved Instance options, which have a variable discount depending on how much you pay upfront. The difference in approach may vary due to the cancellation options – AWS users can resell unused capacity on the Reserved Instance marketplace, while Azure users pay a cancellation fee. Google Cloud offers only a billed-monthly option – with no option to cancel.
7. Azure recommends Reserved Instances based on your usage history.
Reservation Recommendations and quantity are shown when you purchase a VM reserved instance in the Azure portal, based on the last 30 days of usage and your savings potential. You can see recommendations in Azure Advisor, at least, for individual subscriptions. For shared scope, you can use the API to get purchase recommendations.
8. Azure Reserved Instance purchases are used immediately, and don’t renew.
There are two important things to understand regarding terms and renewal. First, the term for your reservation starts immediately: you can’t schedule them for a future date. Second, Azure Reserved Instances do not automatically renew, and when the billing term expires, you’ll pay the pay-as-you-go rate. (We’ll be blogging next week on an option AWS has recently released to queue new reservations in advance.)
9. There are two solid options if you no longer need a reservation you already purchased.
What happens if you determine that you no longer need an Azure Reserved Instance you’ve purchased? There are two main options:
Exchange – you can exchange a reservation for another of the same type– that is, you can’t return a VM reservation to purchase an SQL reservation. This is only allowed if the total lifetime cost of the new purchase is greater than the leftover payments that are canceled for the returned reservation.
Cancel – instead, you can choose to cancel the reservation contract and request a refund. However, you are subject to an early termination fee of 12%. Note also that there’s a total refund limit of $50,000 in a rolling 12-month window.
10. Azure Reserved Instances make sense… in some situations.
For predictable production workloads, where you know you’ll have VMs running 24×7, Azure Reserved Instances can make sense. However, for your non-production workloads, this is likely not the case. You’ll save far more by using pay-as-you-go pricing, and scheduling those VMs to turn off when they’re not needed (ParkMyCloud can help with that.)