Tips to track and optimize Azure costs

10 tips to track and optimize Azure costs

Posted by
Estimated Reading Time: 5 minutes

Microsoft Azure offers a very powerful set of services to help organizations make the shift to the public cloud. The portal makes it so easy to deploy resources so that you forget about it easily and costs can get out of control.

Fortunately, nowadays there are quite some free and paid tools to keep these costs monitored and in control. Luckily, you can already start saving costs on Azure by following my tips below, without needing any 3rd party tools.

Note! Keep in mind these tips will only help fixing cost efficiency in short-term. To prevent recurrence, I recommend working with a cloud governance plan which allows you to stay on top of required actions to keep your cloud environment(s) clean and compliant.

Tip 1: Use the most appropriate type of subscription for each group of resources

Seems obvious, right?
This is really one of the most simple ways to reduce costs and obtain discounts without touching any configurations of your resources. However, keep in mind this should be the first step at the moment you start building your corporate Azure environment. Moving resources between different kind of subscription afterwards might cause some headache – mind you.

Enterprise Agreement (EA)

An Azure EA is designed for organizations who are willing to deploy Enterprise-scale resources and commit to Microsoft for a minimum 3 years period. This type of agreement offers savings ranging from 15 up to 45 percent, depending on the type of resoure. Let’s sum up some facts:

  • Microsoft offers options to spread payments to 3 annual periods, instead of one big up-front payment, which can help reduce initial costs.
  • An EA is not an subscription itself, but can hold multiple subscriptions which can help orchestrate billing and administrative access, i.e. by using so-called departments and Management Groups.
  • EA customers are able to deploy Dev/Test subscriptions which offer special rates on VM’s, Cloud Services, SQL databases and so on.
  • Software assurance is included which provides a range of benefits to use the latest Azure technologies. For example, it includes 24×7 problem resolution support which could be required for your Azure-hosted solution.

Cloud Solution Provider (CSP) hosted subscription

Consider working with an Azure CSP partner. CSP’s are known to benefit from discounted purchase rates in able to deliver turnkey solutions.

Developer subscriptions

Depending on the type of subscription you can receive a certain amount of monthly Azure credits for free.
For example, MSDN subscribers receive a monthly credit of $100, and Visual Studio Enterprise even more: $150 each month.

Note! You cannot carry over remaining credits to each subsequent month. Every dollar not spent is lost at the end of each billing period. Also keep in mind these benefits may change or get discarded at any time.

Besides, all of the following subscription types will provide discount rates on numerous kind of workloads. For example, Microsoft currently charges Linux compute hours rates for Windows VM’s.

  • Pay-as-you-go Dev/Test
  • Visual Studio (Test) Professional
  • MSDN Platforms
  • Visual Studio Enterprise
  • Visual Studio Enterprise Bizspark

Tip 2: Pre-pay to get discount on services that you intend to run for a long while

Did you know you can save up to 80% of costs by committing to a long-term deployment of specific resources? This offer is also known as Azure Reserved Instances (RI’s). Check out this webpage to learn more.

Tip 3: Consider deploying to other Azure regions

Azure pricing rates varies from one data center region to another. In some cases rates even differ up to 50%! I regularly use the website azureprice.net to calculate compute hour rates and compare them across regions. Always keep in mind that the choice of region can have a major impact on latency (performance) and laws and regulations.

Tip 4: Consider Burstable (B-series) virtual machines

This type of VM SKU is specifically designed for workloads that needs to be available 24×7 but are idle most of the time. B-series VM’s offer significant reduced rates, approximately 40% of an equivalent A-series VM. Also, B-series VM’s are charged for baseline performance and the instance builds up credits when it’s consuming less than it’s baseline resources.
You can learn all of the benefits of B-series VM’s by reading this webpage.

Tip 5: Identify idle and rightsize resources

A common challenge when deploying new resources is figuring out the right instance size to configure. It’s not always easy to figure out machine sizing ahead of time.

As a result: If you’re sizing too small, you’ll end up with slow or non-responsive resources. On the other hand, sizing too big will cause increased charges for resources you don’t need.

The easiest way to determine when you need to down- or upscale resource is by checking the resource utilization graphs at resource level. However, when you have a significant amount of resources, Azure Advisor cost recommendations is a good starting point for quick analysis. It will detect recommendations regarding to:

  • Unassociated public IP’s
  • Underutilized VM’s
  • Idle VNET gateways
  • Unprovisioned ExpressRoute circuits
  • and so on…

You can also use the built-in Azure Cost Analysis tools to track and identify resource costs. I’ll write more about this subject soon.

Tip 6: Configure auto shutdown on VM’s

In most cases this is a quick win for cost efficiency. Critically review which VMs really need to be up 24×7, and configure auto shutdown to reduce compute hours. Especially non-productive workloads can benefit from bigger SKU sizing when using shutdown policies since your workload budget runs out less quickly.

Tip 7: Combine Web Apps on Azure App Service Plans

Try to combine as many Web Apps as possible on each App Service Plan, as long as it fits, performance is acceptable and there are no other technical implications or requirements.
I do see a lot of separation between App Service Plans for even the simplest apps. It’s really a waste of credits. Sounds obvious, right? However, in some cases you just might want to avoid consolidating multiple apps in one plan for scaling or comparable benefits. Always aim to start with a decent architecture and design before building to overcome cost-savings being more important than functionality.

Tip 8: Leverage Azure SQL elastic pools in stead of paying for single databases

Instead of reserving a fixed amount of servers for your Azure SQL database workloads, Elastic Pools let you reserve an amount of resources (DTUs) and share them across multiple databases. As a benefit, this model allows you to properly handle spiky load across the databases and therefore raises DTU consumption efficiency. I hear you say: “what the heck is a DTU? ” Go check it out here.

Tip 9: Use auto-scaling during off hours

Identify workloads that are required to be available 24×7 but are underutilized during off hours, for example back-end software which is only used during office hours.
Take advantage of auto-scaling on supported Azure resources, for example:

  • VM Scale sets
  • Containers
  • Service fabric
  • App Services / Web Apps
  • Cloud Services

Tip 10: Leverage PaaS and SaaS features where you can

Last but not least, don’t just “lift and shift” your workloads to Azure (or competitive Public Cloud platforms).
Always aim to modernize your application architecture to benefit and leverage Cloud-native capabilities.

I regularly visit people whose vision of Azure is about hosting VM’s and then complain that Azure is expensive. You’re doing it wrong :-), because you’re missing out on a lot of capabilities to increase cost efficiency. Try to leverage SaaS or PaaS features before even thinking about migrating your workloads towards IaaS platforms. This includes Azure SQL for your database, storage accounts for your storage servers, service bus for your API message handling, etc.

Microsoft offers a very nice overview of their Azure PaaS services on this webpage.

Final thoughts

I hope this was informative for you and would like to thank you for reading. If you have any additions, questions or ideas, please feel free to use the comment section below.

Leave a Reply

Your email address will not be published. Required fields are marked *