Hi everyone! Brandon Wilson (Cloud Solution Architect/Engineer) here today to discuss some of the higher-level points of Azure Savings Plans, a new offering to help customers save, and Azure reservations (ie; reserved instances). This post isn’t intended to be a deep dive into the components, more of a high-level wade through a kiddie pool to help you understand the new savings plans compared to the Azure reservations, and if you’ve never heard of neither, well hopefully this helps you gain a little bit of insight.
So, let’s start with the obvious; both are for saving some money, both automatically apply to resources in scope, but they do work differently, and offer different savings. Both are offered up in Azure Advisor (Cost) when they are applicable. Which is better for YOU really depends on the situation (how long will the resource exist, what type of resource, what type of agreements you have, etc). It also can depend on the scope, which can be tied back to how budgeting within your company functions (corporate/centrally controlled, broken down by business unit, or <insert budget method here>). So, before we dig into the post, lets provide an overview of the scopes that can be used (screenshot borrowed from here) :
...Oh, and let’s not forget about that extra step on the cost savings stairs, Azure Hybrid Benefit (AHB) (with an honorable mention to Dev/Test subscription discounts as well)!
NOTE: Neither reservations nor savings plans are applicable to the license cost, only the compute costs.
Azure Savings Plans:
Simply put, an Azure savings plan is a method of obtaining cost reductions for resources based on an hourly commitment charge. That commitment charge automatically applies to any compute resource within the scope of the savings plan. If there is availability, it could apply to any compute resource, and will not be locked down to a specific compute resource type (ie; it won't just apply to VMs, or app services). I think the pricing page has a very straightforward image of this:
The hourly commitment should not come from out of the blue, but instead based on your current utilization for your environment/workloads/resources. If you overcommit, then you will end up with waste, however for anything over your commitment, you are charged at the pay-as-you-go rate.
Its very important to note that not all resources can have savings plans applied, only compute resource as of this writing. If you have both reservations and a savings plan, the reservation will take precedence. If you have multiple savings plans, then the savings plan that offers the most savings will be used automatically (which is always the case with savings plans for compute). If you anticipate your infrastructure or workloads to change relatively frequently, whether that means changing regions, changing VMs (outside of the flexibility group), etc, then savings plans would make the most sense in that situation.
Savings plans can be paid for monthly or upfront, and can be applied to the following resources (as of this writing):
- Virtual Machines (only the compute costs; ie; it does not include storage, network, licensing, etc)
- Azure Dedicated Host (as with VMs, only the compute costs are covered by the savings plan)
- Container Instances
- Azure Premium Functions
- Azure App Services (not all are included; Pv3 or isolated v2 is required)
NOTE: Savings plans are not restricted to VM/instance series, OS, or regions, making them more flexible than reservations.
If you search in the Azure portal for “savings”, you should see “Savings plans” pop up. If you select it, and add a savings plan, you can get an idea of the options available to you:
It should be noted that, unlike reservations, savings plans cannot be traded/exchanged, returned, or cancelled (including to exchange for reservations).
Here are a few savings plan specific resources to dig in a bit more:
Azure Savings Plan for Compute | Microsoft Azure
Save with Azure savings plans - Microsoft Cost Management | Microsoft Learn
Azure savings plan recommendations - Microsoft Cost Management | Microsoft Learn
Choose an Azure saving plan commitment amount - Microsoft Cost Management | Microsoft Learn
What is Azure savings plans for compute? - Microsoft Cost Management | Microsoft Learn
How an Azure saving plan discount is applied - Microsoft Cost Management | Microsoft Learn
View Azure savings plan cost and usage - Microsoft Cost Management | Microsoft Learn
Self-service trade-in for Azure savings plans - Microsoft Cost Management | Microsoft Learn
Azure Reservations:
Azure reservations are similar to savings plans, and typically offer a more significant discount, however they are limited to an extent. As an example, for virtual machines, the reservations must be used within the same instance size flexibility group or capacity priority (single scope only), and in the same region. In a nutshell, if your workload usage is going to be consistent (ie; stable) and no real changes to the infrastructure are anticipated, then reservations are a good pick.
As with the savings plans, reservations can also be paid for monthly or upfront. Technically, reservations are also hourly, although the assumption is 730 hours/month of uptime. So what's meant by hourly in this case, is if you were to put a VM that had a reservation applied to it into a stopped (deallocated) state, then the reservation would be released, and another VM in the same instance size flexibility group (if its enabled on the reservation) would then make use of it IF one exists; if nothing else is able to utilize the reservation, then any hours its not used will become lost (ie; unused reservation). If said VM is in a stopped state, it will still consume the reservation as compute hours are still charged in that situation. It’s important to note that not all resources can have reservations applied to them, however most reservations can be split, returned, or exchanged in case they (or the finances) are needed elsewhere. Let’s take at all the resources we can get a reservation for:
As you can see, that’s quite a few resource types that money can be saved on!
If you search in the Azure Portal for reservations, click +Add (or the “Purchase Now” button in the middle of the screen), then you will come to the resource selection page (the screenshot above). From there, you click on the resource, which will open up a new blade where you can select a scope and see a list of resources that the reservations are applicable to, as well as the recommended quantity (you can also get more details from the list).
Screenshot is borrowed from here, then slightly altered
Just to come full circle on the scopes, as with the savings plans above, the scope option can be shared, single, RG, or Management Group level.
Before I forget to mention it, it should be noted that unlike savings plans, some reservations can be exchanged for other reservations or savings plans and can be refunded (up to $50,000 USD/yr). Again, keep in mind that savings plans cannot be traded in for reservations, nor can they be exchanged, returned, or cancelled. This is changing a bit on January 1, 2024, in that reservations will still be able to be exchanged for virtual machine instance size, but not for regions or series.
Here’s some resources for some deeper reading about Azure reserved instances/reservations:
Reservations | Microsoft Azure
Save with Azure reservations - Microsoft Cost Management | Microsoft Learn
Azure reservation recommendations - Microsoft Cost Management | Microsoft Learn
Prepay for Azure virtual machines to save money - Azure Virtual Machines | Microsoft Learn
Buy an Azure reservation - Microsoft Cost Management | Microsoft Learn
Automatically renew Azure reservations - Microsoft Cost Management | Microsoft Learn
Reserved Capacity Pricing | Microsoft Azure
Show me the money!:
So after that overview, let’s take a look at an example for a virtual machine so you can see for yourself...I just randomly picked one from the list, in this case, a D2ads v5 running Windows (not the cheapest, but also not the most expensive, so it works nicely as an example). NOTE: The savings offered by savings plans and reservations are not limited to just virtual machines!
Also, feel free to follow along in the Azure Pricing Calculator against any resources you might have to apply reservations and/or savings plans to in order to get a more “real world” feel of where you can save in your environment.
So, before I go into the visualization of everything, I thought I would provide a table outlining what's below in order to give an at a glance view (so you don’t technically have to go through the rest of this content to view it; just remember that these are examples and subject to change, and the App Service Pv3 is an outlier):
Type |
Size |
Cost (PAYG) |
Cost (1 yr SP) |
Cost (1 yr RES) |
Cost (3 yr SP) |
Cost ( 3 yr RES) |
License cost |
VM |
D2ads v5 (2 vCPU/8GB RAM/75GB temp storage) |
$75.19/mo (730 hrs) |
$51.58/mo (~31% savings) |
$44.33/mo (~41% savings) |
$34.41/mo (~54% savings) |
$28.59/mo (~62% savings) |
$67.16 |
App Service (Pv3) |
P1v3 (2 core/8GB RAM/250GB storage) |
$229.95/mo (730 hrs) |
$172.46/mo (~25% savings) |
$173.00/mo (~25% savings) |
$126.47/mo (~45% savings) |
$140.92/mo (~39% savings) |
----- |
**PAYG = Pay-as-you-go **SP = Savings Plan **RES = Reservation
And now, let’s move on to the “seeing is believing” method of demonstrating
First, let’s take a look at the pay-as-you-go rate:
Now let’s tweak that a bit to take a look at the various cost savings potentials with the savings plan first for 1 year and 3 years. First, the 1 year:
So, that’s not too bad of a reduction right there at $23.61/month. Sure, it doesn’t sound like much, but if you have 100 virtual machines of this size, it adds up quickly.... expand on that thought a bit and apply it to a more expensive VM type, and that number can become exponentially larger. If you have a keen eye and notice the dropdown list that currently says monthly, the other option is “upfront”, at which point the price becomes an upfront payment of $618.98. It should be noted that the upfront payment represents ONLY the savings plan and does not include the monthly cost of $67.16 for the OS/license.
If we expand those same views to 3 years, well now those savings increased significantly over the pay as you go cost when you look at the cost difference at scale, with it dropping by $40.78 per month, it gets much better looking to the wallet:
So this already represents $17.17/month vs the 1 year savings plan ($40.78/month vs pay-as-you-go), but where it really gets interesting, is when you take a look at the upfront pricing. Keep in mind with the 1-year savings plan, the upfront payment was $618.98 for a year. Now, looking at the upfront payment on the 3-year savings plan for the same virtual machine, we come up with $1238.84...I’ll give you about 2 seconds to do the obvious savings math right there 😊 Here’s a view:
Hopefully by this point, you can see how a LOT of money can be saved relatively easily using these savings plans.
Lets move on and take a look at the potential savings reservations at 1 year and 3 years as well, starting with 1 year:
So just like with the 1-year savings plan, there’s a decent cost savings here compared to pay-as-you-go, with a $30.86/month savings ($7.25/month savings over the 1 year savings plan) right away. Just for sake of completeness, lets take a look at the upfront as well:
Just like with the savings plan, we can make those savings even bigger if we know our resource is going to be needed for 3 years. Let’s have a look and see:
Let’s take a moment and do the math here. We started with pay-as-you-go at a rate of $142.35. We saw some big reductions from savings plans terms, as well as the 1 year with the reservations. So, compared to that starting rate, we are now seeing a reduction of $46.60/month. That’s not too bad, especially when scaled out to larger numbers or instance sizes... Like the old commercials say, “but wait there’s more!”. So let’s take a look at the upfront view:
So with the 3 year reservations, we are looking at a reduction of $209.72 for the upfront payment when compared to the 3 year savings plan. Not too much when looked at as a single VM, but again, if you have 100 VMs of this size, all the sudden you have saved nearly $21000!
If you happen to have Software Assurance, or are on the fence about whether or not to get it, let’s take a look at the difference in cost when you apply the Azure Hybrid Benefit on top of savings plans and reservations so you can see how that could potentially save you as well (3 years just to make the point hit home):
Azure Savings Plan (3 years)
Azure Reservation (3 years)
So, we started at $142.35 per month, then we make use of 3 year offers, and combine them with the hybrid benefit, and suddenly we have reduced the cost by as much as $113.76 PER MONTH. That’s pretty good savings if you ask me! Just keep in mind, that while reservations tend to have more savings over savings plans, that’s not always the case...
Let’s take a quick look at an example of an app service (breaking down the various tiers where you can utilize savings plans and reservations is outside of the scope of this content). Before we go on, if you visit the Azure Pricing Calculator, you will find that only Pv3 app service is cheaper with the savings plan, and that only Premier v3 and Isolated/Isolated v2 plans can use reservations (Pv3 or Isolated v2 for savings plans). That being said, let me give a few examples of App Service Premium V3 just to show the difference there, and also provide an example of how reservations are not always the cheapest (yet are still far cheaper than pay-as-you-go):
App Service (Pv3) Pay-as-you-go
App Service (Pv3) 3 year savings plan
App Service (Pv3) 3 year reserved instance
So, briefly looking at the savings there, the pay-as-you-go rate is $229.95, then with the 3 year savings plan, we can save $103.48/month, yet with the 3 year reservation we *only* save $89.03/month. So, as you can see, depending on the resource type, as well as the duration, savings plan can actually serve you better than reservations can, providing you stay within your commitment range. As mentioned above though, the App Service Pv3 is an outlier with its 3 year savings; if you play around in the pricing calculator, you’ll find that reservations typically provide greater savings than the savings plans.
Hopefully this helped you get a bit of a better understanding of how Azure Savings Plans and Azure Reservations can help you out, and the differences between them. Thanks for reading!!
References: