Get Azure Reservations and Savings Plans Insights with the Azure Optimization Engine
Published Apr 01 2024 12:00 AM 4,609 Views
Microsoft

Introduction

 

Azure Reservations and Savings Plans commitments have been adopted by many customers with a predictable and steady Azure consumption to achieve considerable savings over on-demand prices. Depending on your on-demand Azure Compute consumption patterns, you may choose one over the other, or even have both working in tandem (see a comparison).

 

When adopting Azure commitments, customers face typically two types of challenges:

 

  • Estimating the quantities or amount to commit for – e.g., how many VM Reservations of a given size and region, what Saving Plan hourly commitment, and for how long?
  • Reviewing how effective and efficient commitments have been – e.g., which resources have been leveraging a specific commitment, is a commitment fully consumed, how many savings have been achieved over a period?

 

The Azure portal Reservations and Savings Plans user experience, together with Azure Advisor, the Cost Management Power BI App for EA and FinOps Hubs, provide great answers to some of the questions above. But if you need a more detailed analysis over your on-demand or commitment usage, the Azure Optimization Engine (AOE) provides you with additional reporting that complements Azure-native tooling for your Azure commitment purchase decision and review processes, based on a daily export of your Azure billing events to a Log Analytics workspace. On the sections below, we will cover the several AOE Workbooks available for this purpose. For guidance on how to install AOE in your environment, refer to the deployment instructions.

 

  • Benefits Usage: an overview of Azure pricing models usage.
  • Benefits Simulation: exploring different commitment scenarios.
  • Reservations Potential: deep analysis of On-Demand VM sizes usage.
  • Reservations Usage: deep analysis of your Reservations performance.
  • Savings Plans Usage: deep analysis of your Savings Plans performance.

 

For the sake of clarity, consider the short glossary below for some terms that are used throughout the article:

 

  • Reservations – Refers to any type of Azure Reserved Instance, be it Virtual Machines, Storage, Cosmos DB, and others. See what Azure Reservations are.
  • Savings Plans – Refers to any type of Azure Savings Plans. Currently, there are only Savings Plans for Compute, but other types may come up in the future. See what Azure Savings Plans are.
  • Azure commitments – Refers to Azure consumption commitments customers can make to benefit from discounts. In the scope of this article the term comprehends Reservations and Savings Plans.
  • On-Demand – Refers to Azure resources usage that is not covered by a commitment. It is also known as Pay-As-You-Go usage.

 

Benefits Usage: an overview of Azure pricing models usage

 

The Benefits Usage Workbook gives you an overview of how your Azure Virtual Machines (VMs) usage has been distributed across several pricing models (On-Demand, Reservations, Savings Plans, and Spot) over a period. The first tab shows you the pricing model proportion across all your VMs usage (in your billing currency). All Reservations and Savings Plan usage is presented at amortized prices, in the currency unit of your Azure consumption agreement.

 

Pricing model usage over timePricing model usage over time

 

The Reservations tab allows you to compare your Reservations usage with scenarios in which the VMs were being consumed in other pricing models and understand what you are saving thanks to Reservations. Reservations usage is presented at Reservation prices (i.e., amortized cost). This means that, for example, if you see 17K USD for Reservation and 22K USD for On-Demand on a specific day, you are saving 5K USD for that day against the On-Demand prices (based on your price list). Likewise for the Reservation vs. Savings Plan comparison chart. You can use the 1-year vs. 3-years Reservation Term switch to get a savings estimate closer to your reality. If you have a mix of both Reservation terms in your environment, you will need to customize the Workbook to account for both in the same chart, though.

 

Reservations consumption compared to other pricing model pricesReservations consumption compared to other pricing model prices

 

The Savings Plans tab is similar in functionality to the Reservations one. It compares your Savings Plans usage against what the cost would be if the VMs were consumed as On-Demand. Likewise, you must set the Savings Plan Term switch to the term that is most used in your Savings Plans.

 

Savings Plans consumption compared to On-Demand pricesSavings Plans consumption compared to On-Demand prices

 

The Spot tab is like the tabs discussed above. It compares your Spot usage (see what Spot VMs are) against what the cost would be if the VMs were consumed at On-Demand prices.

 

Spot consumption compared to On-Demand pricesSpot consumption compared to On-Demand prices

 

The last tab analyzes On-Demand VM usage, projecting it as if you were making Savings Plans or Reservations commitments. The first chart shows you the actual hourly cost of On-Demand usage distribution across subscriptions. You can use it as a reference to compare with different Savings Plans commitment terms.

 

Average hourly On-Demand consumptionAverage hourly On-Demand consumption

 

 

The second chart shows the average hourly On-Demand usage in your currency (at Savings Plans prices) for each Azure subscription. For example, if the sum of all subscriptions On-Demand average hourly usage for a specific day is ~30 USD (let’s consider February 19th in the first chart), you need a ~19 USD/hour (see same date in the chart below) Savings Plan commitment to totally cover the On-Demand usage for that day with Savings Plan discounts (see how Savings Plans discounts work). This chart depends on you setting the Savings Plan Term switch to the term that you would more likely use when buying a new Savings Plan.

 

Average hourly On-Demand consumption (at Savings Plan prices)Average hourly On-Demand consumption (at Savings Plan prices)

 

The last chart shows the average hourly On-Demand usage in vCPUs for each VM size family (at Reservation prices). Using an example from the chart sample below, if VM size family Dv5 in West Europe has 48 vCPUs of average hourly On-Demand usage, you need a Reservation commitment of 24 instances of the D2_v5 size (24x2=48 vCPUs) to fully cover its On-Demand usage with Reservation discounts.

 

Average hourly On-Demand consumption (vCPUs at Reservation prices)Average hourly On-Demand consumption (vCPUs at Reservation prices)

 

Benefits Simulation: exploring different commitment scenarios

 

Now let us say you have a portion of your Virtual Machines on-demand usage you want to optimize with Azure commitments. Besides the built-in Reservations and Savings Plans purchase experience, which provides you with accurate purchase recommendations, you can also use the Benefits Simulation Workbook to confirm those recommendations with additional details or explore different commitment scenarios. The Workbook has two tabs – Savings Plans and Reservations. Both look at your On-Demand VM usage (grouped by subscription) and allow you to simulate a commitment scenario and analyze how much you would save based on the selected lookback period.

 

For Savings Plans, you just need to select the commitment term and enter the amount of hourly usage, in the currency of your Azure consumption agreement. In the example below, despite having an hourly On-Demand usage of ~12 EUR across all subscriptions (at Savings Plans prices), we were conservative and entered a commitment of 5 EUR/hour for a 3-year term. Once we enter the value, the remaining charts are updated to reflect the estimated savings over the lookback period. In the example below, we would save a total of 1.98K EUR (around 70 EUR/day in a 30-day period).

 

Simulation of the benefits obtained from a 5 EUR/hour Savings Plan commitment (for 3 years)Simulation of the benefits obtained from a 5 EUR/hour Savings Plan commitment (for 3 years)

 

 

If we were less conservative and simulated a higher commitment, we could also see on which days the Savings Plans efficiency would have been less than 100%, potentially resulting in unused savings plans.

 

Savings Plan suboptimal efficiency with a larger commitmentSavings Plan suboptimal efficiency with a larger commitment

 

It is important to note that these estimates only cater for Virtual Machines usage – other Savings Plans-eligible meter categories (App Service Plans, Container Instances, etc.) are not being considered. Also, if you are a customer that negotiated with Microsoft a considerable discount in On-Demand prices, it may happen that hourly usage at Savings Plans prices is more expensive than On-Demand (more likely in 1-year Savings Plans terms) – in this case, you would see a negative savings amount and percentage.

 

For Reservations, we get a similar experience, but, now, instead of committing to an hourly usage amount, we commit to a VM size, region and whether we leverage Instance Size Flexibility (ISF) or not. VM sizes and regions are based on your on-demand usage. In the example below, we chose Standard B1ms VMs in West Europe, with ISF, for 3 years. Note that we did not select a quantity yet. The chart below shows what the VM sizes usage distribution (within the same ISF group) per day was. The amount of VMs of sizes other than B1ms is proportional to the core ratio. For example, a value of 11.4 for B4ms means that we need to commit for 11.4 B1ms instances to cover the B4ms (ratio 8) needs. We can clearly see in the example below a pattern of lower usage on the weekends. Although we are using on average ~13 VMs across all sizes, a cautious approach would be to commit a lower amount of VMs that would be 100% consumed.

 

On-Demand usage of Standard B1ms machines at Reservation prices with Instance Size Flexibility (3 years commitment)On-Demand usage of Standard B1ms machines at Reservation prices with Instance Size Flexibility (3 years commitment)

 

 

If we go ahead and enter 7 VMs, the remaining charts will be populated with estimated savings, savings percentage, and commitment efficiency, similar to what we got in the Savings Plans tab.

 

Reservation simulation of the savings achieved with a 7 Standard B1ms machines commitment for 3 years (with Instance Size Flexibility)Reservation simulation of the savings achieved with a 7 Standard B1ms machines commitment for 3 years (with Instance Size Flexibility)

 

Reservations Potential: deep analysis of On-Demand VM sizes usage

 

If you need a deeper analysis of your On-Demand VM usage with the goal of purchasing Reservations, you can leverage the Reservations Potential Workbook, which allows to explore each VM size (or ISF group) and region combination to get a usage profile over a lookback period.

 

The workbook loads all VM sizes (or ISF groups) and regions, showing the average number of VMs that had On-Demand usage per day. When clicking on one of the lines, the remaining charts are populated with additional information, such as the Reservation potential for that selection and how On-Demand usage has evolved over the lookback period.

 

Analyzing the Reservation potential and historical On-Demand usage for a specific Instance Size Flexibility groupAnalyzing the Reservation potential and historical On-Demand usage for a specific Instance Size Flexibility group

 

VMs count for each ISF Group is proportional to the VM size with the lowest ratio (e.g., D2ads v5 has the lowest ratio for the Dadsv5 Series). The “Fragmentation” column gives a hint about the risk of having a Reservation being used only on small portions of the day. For example, in the above chart, the DSv2 Series has an average On-Demand daily usage of ~29 VMs but has “some to high” fragmentation. This means that the number of VMs for that size that had On-Demand usage was much higher, because many VMs were running only for a few hours per day and there is a substantial risk of ending with unused reservations. This is confirmed by the table below – a typical Databricks usage profile, with lots of short-lived instances.

 

List of VMs that have On-Demand usage of a specific Instance Size Flexibility groupList of VMs that have On-Demand usage of a specific Instance Size Flexibility group

 

 

The Workbook also allows for setting a resource “Aggregator Tag” that groups On-Demand usage by the chosen VM tag (in the example below, the chosen aggregator tag had technology types as values).

 

List of tag values (for the Aggregator Tag name) that have On-Demand usage of a specific Instance Size Flexibility groupList of tag values (for the Aggregator Tag name) that have On-Demand usage of a specific Instance Size Flexibility group

 

Reservations Usage: deep analysis of your Reservations performance

 

After you committed to Reservations, it is important to keep an eye on how effective and efficient they have been. The Reservations Usage Workbook allows for that and helps you charging back Reservations usage by a specific cost center or resource owner. Unlike the other Workbooks, it is not exclusive to VMs.

 

The first tab – “Reservations Usage Analysis” – lists all Reservations you purchased together with its usage percentage over the lookback period, the average discount over the on-demand price and how much you are saving (savings % = discount % – unused %). If the “Savings” column shows a low or negative value, then maybe you should plan for a Reservation exchange (beware of the July 1st, 2024, exchange policy changes).

 

Reservations usage details with achieved savingsReservations usage details with achieved savings

 

When you click on the line for a specific reservation on the table above, additional charts are populated with information such as instance count usage over time (compared with the instances purchased), which instances have been consuming the Reservation, and usage grouping by a chosen aggregator tag.

 

Historical perspective over a specific Reservation usage across VM sizesHistorical perspective over a specific Reservation usage across VM sizes

 

The second tab – “Usage by Tag”– allows you to list all Reservations usage by a chosen aggregator tag, which may be useful for charge back purposes (export to Excel is available also). In the example below, the chosen aggregator tag specifies the instance workload’s type.

 

Reservations usage distributed across VM tag values (for a given Aggregator Tag name)Reservations usage distributed across VM tag values (for a given Aggregator Tag name)

 

The third tab – “Full Usage Report” – allows you to list all Reservations performance data, with information like the first tab but with additional details, such as term, expiration date and remaining commitment (in the currency of your Azure consumption agreement).

The last tab – “Unused Reservations Analysis” – provides you with insights into the causes for underperforming Reservations, with multiple perspectives, such as SKU or region, and with the option to export all the details per unused Reservation.

 

Cost of unused Reservations over time, across VM sizesCost of unused Reservations over time, across VM sizes

 

Savings Plans Usage: deep analysis of your Savings Plans performance

 

Finally, with the Savings Plans Usage Workbook you can get Savings Plans reporting capabilities like what you get with the Reservations Usage Workbook. It considers your Savings Plans hourly commitments and provides multiple perspectives over your Savings Plans performance, such as Savings Plans usage analysis, savings performance details, tag-based charge back, and unused Savings Plans analysis.

 

Savings Plan usage over time across compute SKUsSavings Plan usage over time across compute SKUs

 

Final considerations

 

This article covered multiple Azure commitment insights reporting solutions made available by deploying the Azure Optimization Engine (AOE). These solutions are meant to be complementary to the Azure-native ones, not a replacement. Furthermore, given the nature of AOE, which depends on a well-functioning billing events ingestion pipeline, there may be data accuracy problems due to upstream issues. It is also important to note that Reservations and Savings Plans purchase simulations are based on average hourly On-Demand usage observations, which may not reflect your real usage profile during the day in highly dynamic workloads (Azure Advisor commitment recommendations are always the most reliable source of truth). As a general advice, start small with your commitments (less than what is suggested by tools), observe their positive impact on your Azure bill, and gradually increase commitments to achieve the optimal savings with confidence.

 

Special thanks to Gregor Wohlfarter for his thorough review and suggestions.

6 Comments
Co-Authors
Version history
Last update:
‎Apr 01 2024 12:00 AM
Updated by: