Until now in Azure, if we talked about how to save costs in computing services, we had two alternatives (without going into software discounts):
- Azure Reservations: They help us save money by booking a particular VM size for 1 or 3 years. The cost savings can be up to 72% (official figures from the manufacturer, which in my experience of 40% has not passed) compared to Azure prices in PAYG format. In this case, when we made a reservation of an instance, it does not affect the state of our resources, but we made the reservation against a specific size, obtaining the discount automatically if it matches our resources.
- Spot Virtual Machines: This type allows us to have a machine for computing at a lower cost than normal, but with one condition: We do not have SLA, when Azure needs computing capacity, the first thing that will be rescinded are the Spot type machines, with which we would be left without the ability to have computing resources for this type of sizes.
But during Ignite ’22, a third avenue for computing resources was announced: Azure Saving Plans
And what does it provide me?
It allows us to save computing costs based on a fixed price per hour. In this case, a Saving Plan can save up to 65% the price compared to an Azure price in PAYG format (manufacturer figures, which in my experience of 30% has not exceeded), always depending on the term we choose (from 1 to 3 years).
And what is the main difference?
Basically in the way of reserving the resource, if for an Instance Reservation, for example, we reserve a size D4v4 in West Europe for one year, with Azure Saving Plan, what we do is set a fixed spending rate for a certain term (from 1 to 3 years without the possibility of cancellation), so that any computing resource that falls within the scope we have chosen can make use of that commitment and This saves us computing money from these resources.
How does it work?
Basically, we have to specify the amount of fixed money we want to spend per hour of computing, and automatically, all the resources that are contained within the scope of creation
Therefore, it is extremely important to keep in mind that this type of solutions do not fit with everyone, since not all of us have a large amount of computing resources that involve a fixed cost for our organization.
Likewise, we must specify how long we want to have this commitment (1 or 3 years) and the form of payment (monthly or annual)
When trying to create an ASP, the portal will offer us different alternatives to configure our ASP depending on the computation consumption we have, from the most conservative to the most aggressive strategy (although manually, we can also configure how much we are willing to pay per hour)
Once we have created the ASP, the party begins: How do I know that I am applying the ASP to my resources? The answer is simple, you must trust 😛
A sample of how it works is the following image:
If you look, the green line represents the amount of money I am paying in a fixed way every hour (remember that this is 24×7, so if we put € 5 / h they end up being approximately € 3600 per month), whether or not I use computing resources.
This last sentence is very important, whether or not you use resources, what does this mean? That, if I use 100% of my computing resources, and the price / hour is less than those € 5, I will pay € 5 / h yes or yes. On the other hand, if my 100% of computing resources / hour is greater than those € 5, I will pay € 5 in fixed format (which already contains a certain discount), and the remaining € 1, I will pay it at PAYG price (remember depending on the contract I have).
So here, we enter different price scales:
- Scenario 1: In a certain time slot, I go below my set price à I pay my price per hour
- Scenario 2: In a certain time slot, my computing consumption is what I have set in the ASP à I pay my price per hour
- Scenario 3: In a certain time slot, my computing consumption is greater than the ASP created à I pay my price per hour + PAYG price not covered by the ASP
This is important to understand, because savings are automatically applied every hour, regardless of region, instance series, or OS.
What resources are contained in this type of solution?
As I write the article, different Azure resources are coming into play such as:
- Azure VMs (excludes A, G, and GS series)
- Container instances
- Azure Functions con Plan Premium
- Azure App Service with Premium v3 or Isolated v2 Plan
- Azure Dedicated Hosts
This does not mean that other resources will be included in the future, but I do not have more information.
And can I combine it with instance reservations?
Yes, without problem, in fact it is the most suitable formula to save costs, in this case, the instance reservations would always enter first, and everything that does not cover the instance reservation, would be subject to be covered by an ASP:
As we can see, everything that is not covered by the instance reservation or an ASP, would be paid at the normal compute price that we have established in Azure (here it will depend on the type of contract we have with Microsoft EA / CSP / PAYG)
And this ASP thing appears in Azure Advisor?
Yes, it should already appear in the Advisor as a saving measure for the compute services contained in Azure along with the reserves of instances
We must even realize that this option already appears in the Azure calculator:
Once I have made a commitment with ASP, do I have the possibility to cancel and/or change it?
No, it is not possible to cancel an ASP commitment, or change it for another, we will have to endure 1-3 years what we have configured, and if we fall short, we will have to configure a new ASP to cover the new demand (with the increase in time of this new ASP that supposes)
What you can do is switch from an Azure Instance Reservation to an Azure Service Plan Self-service trade-in for Azure savings plans – Microsoft Cost Management | Microsoft Learn But not from ASP to RI.
Any recommendations for creating an ASP?
My personal recommendation is to always go to a more conservative configuration, more than anything because of the non-possibility of being able to cancel this type of commitments, so this will give us the opportunity to “play” with other configurations.
Reservations only apply to computing resources that have been identified and to a specific region
Azure Saving plan applies to all compute resources that are contained within that scope, so they provide us with greater flexibility and automatic optimization against reservations.
When to choose one or the other?
- For compute resources with dynamic loads: Azure Saving Plans
- For resources that are stable over time and run continuously, or don’t think about resizing: Azure Reservations
There is no one-size-fits-all formula, but the FinOps perspective is like this 😊.
Additional information about Azure Service Plan at: What is Azure savings plans for compute? – Microsoft Cost Management | Microsoft Learn