Blog Image 2019

5 Ways to Help You Decrease Azure Costs

Brian Garoutte

ASCBonus

Thanks for reading one of the Bonus articles for the Azure Spring Clean! And a BIG thanks to Joe Carlyle and Thomas Thornton for putting this learning initiative together! 

One of the main motives for companies moving to the cloud is the potential for significant cost savings. While savings in the cloud vs. on-prem is achievable, it is also easy to end up spending more than anticipated due to cloud sprawl, undefined governance, and general unexpected/unbudgeted usage of Azure resources. The good news is that with some basic analysis and proper planning, you can regain control of Azure cloud costs and achieve true cost optimization. In this blog, we will highlight five ways to help decrease Azure costs and get you on track toward total optimization:

1. Reserved Virtual Machine Instances
Azure Reserved VM Instances (RI’s) are a programmatic way of committing to a fixed number of Virtual Machines (VM’s) and sizes in Azure for a period of 1 or 3 years. In exchange for that commitment, Microsoft bills at a fixed rate for compute (VM’s) that provides significant cost savings vs. a Pay-as-you-Go model. A newer benefit of this model is the flexibility to pay upfront for the committed usage OR pay monthly for better cash flow management. 

While RI’s are a great way to save costs on Virtual Machines potentially, you should first understand savings vs. risk to make proper decisions. If you don’t consider historical/forecasted runtime and resource utilization, it is going to be hard to evaluate if and which type of Reserved Instances are the best fit.

Consider the following example using 1-year Reserved VM Instance on a D4 v3 VM size. Assuming the D4v3 size provides proper compute resources for now and 12 months in the future, the breakeven point (risk) and projected savings vary based on the expected runtime of the VM.

VM

Monthly Runtime

Annual Cost Savings

Breakeven (months)

D4_v3

24 hrs X 7 days (730 hrs)

$678.84

2

D4_v3

18 hrs X 7 days (540 hrs)

$258.36

5

D4_v3

12 hrs X 7 days (365 hrs)

($162.12)

N/A

As you can see, RI’s would not make sense if you are only running 50% of the month, but definitely would at 75% or 100% runtime. While VM’s vary in breakeven points, a good rule of thumb is that if a VM is running 60%+ of the hours each month, it’s a good candidate for cost savings via Reserved Instances.


2. Azure Hybrid Benefits
Azure Hybrid Benefits (AHB) can be combined Reserved VM Instances to provide up to a 70% savings vs. the Pay-As-You-Go model. While RI’s helps achieve savings on the compute side of Virtual Machine costs, AHB can generate significant savings on the Operating System (Windows Server OS) and SQL Server side.

Anyone who owns Windows Server or SQL Server licenses with Software Assurance are eligible to run Azure VM’s at Linux-based pricing. As a result, you only pay for the hourly rate for compute of the virtual machine, eliminating the hourly cost of the OS/SQL Server license. Even for customers who don’t currently have eligible licenses, the cost savings of AHB can still be achieved by purchasing new licenses with software assurance or in a 1-year or 3-year subscription model.

The long-term cost savings is significant in most cases. But, just like Reserved VM Instances, various factors determine the actual savings. Make sure to understand the current inventory of VM’s and licenses if you are looking to take advantage of Reserved VM Instances and/or Hybrid Benefits.


3. Right-Size VMs
While Reserved VM Instances and Azure Benefits focus on programmatic savings, right-sizing VM’s focus on maximizing utilization of existing resources at the lowest possible cost. To properly right-size, you need first to understand utilization trends in your environment, then apply utilization metrics to compare with available VM sizes. This evaluation should happen before committing to specific Reserved VM Instance size/families. Tools like Azure Advisor and 3rd party apps can help identify proper sizing, and it is very easy to change sizes in real-time if you get negative feedback from users.  Make sure to avoid a “set it and forget it” mentality as new VM offerings typically offer better resources at a lower cost.


4. Schedule VMs to Start/Stop Based on Usage
This one sounds simple enough, but it does take some analysis of usage patterns and consideration of availability. Autoscaling can also be used in conjunction with schedules to provide elasticity and even more savings. There are several ways to implement automatic start/stop functions with Azure Automation Runbooks as an easy starter. Schedules can be especially effective for test/dev or environments with fixed availability.


5. Eliminate Waste
While this is a very broad/general idea, there are several ways to eliminate waste. For starters, putting in place a proper governance strategy should help define how to identify and eliminate waste. And core to a governance strategy is resource tagging. Once defined and properly implemented, it is easy to identify and actively manage resources based on metadata assigned to resources (i.e., production vs. test/dev, delete by date, and any other descriptive tags that will help manage cost). Wim Matthyson dedicated an earlier Azure Spring Clean blog to resource tagging if you are interested in a deeper dive. Another easy way to eliminate waste is by identifying idle resources. If a resource is not being used, right-size it, stop deallocate or delete it altogether. Of course, you should first consider any adverse impacts before deleting. There are many other types of waste, i.e., hot vs. cold storage, IP’s not in use, outdated backups/archives, that can all be approached differently come Spring Clean time. If you make sure to have an Azure Governance strategy in place early and ensure proper enforcement, you can minimize waste from the start.

Make sure to check out the other Azure Spring Clean articles!
https://www.azurespringclean.com