Tuesday, 26 November 2019

8 Tips to Save Money in Azure

How to save money in Azure

Author by Mike Brown

Does cloud computing help you save costs? In most cases, the answer is a resounding yes. But going cloud is just step one. Here’s how you can save costs in Microsoft Azure.

Working in Azure can be challenging. On top of security, high availability and DR, you must also keep a close eye on what you and your teams are spending. In this post you'll discover Azure tools that will help you save money.

We’ll also discuss best practices that help reduce Azure costs, and study tools that give you needed visibility on how much you are spending.

Whether you're a cloud admin, solutions architect or a decision maker in your organisation, these tips will help you make the most of your money with Azure cloud.

At a glance, these are the top tips to save money in Azure:

  • Tag everything
  • Use reserved instances
  • Turn things off
  • Use Azure advisor
  • Use the cost analysis tool
  • Use auto scaling
  • Consider using low-priority virtual machines
  • Use scripting and automation

Ready to save thousands on your Azure deployment? Let’s dig deeper into each one.


1. Tag Everything


Tags allow you to add metadata to Azure resources in the form of key/value pairs. Tags themselves won’t save you money but they do allow you to:

  • Identify who created the resource
  • Identify which department / project a resource belongs to
  • Which cost centre the resource should be billed to

Tags mean that ownership of resources can easily be identified. This tends to focus people and we find that people start deploying resources more carefully – being less likely to deploy unnecessary resources. 


Azure tag view





Tags can be added manually, and you should have a list of tags that people should use. You should also consider enforcing tags by using Azure policies.

Azure polices will allow you to create a policy with suggested tags and if these tags are not used then the resource will not be allowed to be deployed.

Every Azure resource can be tagged, below is the tagging section for a virtual machine in Azure:

Azure HQDC tags examples


If you decide to create an azure policy to enforce tags, or if you want more information about tagging, you’d do well to refer to this article by Microsoft.

  • Pro: Easy to implement
  • Con: Non-tag everything 


2. Use Reserved Instances


We pay for most resources using a consumption model: we pay by the hour for resources that are deployed.

Another way to pay for resource is to use reservations. With reservations we commit to either a 1-year or 3-year reservation and pay upfront for the reservation. By making this commitment we can save up to 70% compared to the pay-as-you-go pricing model.

Savings can increase to as much as 80% if you combine reservations with your hybrid licensing benefits. Reservations can be purchased through the Azure portal - see below:

Azure purchase reservation example







You can buy reservations for Virtual Machines, Blob Storage, Database, Disks, App services and more here.

  • Pro: Big savings
  • Con: Big upfront costs 


3. Turn Things Off


By default, resources you deploy will be running 24/7.

If you are only using those resource during working hours, then there will be huge chunks of time where your resources aren’t needed yet you are still paying for them. 

If you can turn resources off when they are not needed you can make big savings.

For example, if your average working day is 8 hours you may keep you virtual machines on for 12 hours (to give your staff some leg room) and then shut the virtual machines down for the other 12 hours of the day.

But there's no need to worry about remembering to do this. With automation we can set policies that automatically shut things down and start them up again when they are needed.

In this article Microsoft’s Lee Stott discusses turning of infrastructure resources to save money in Azure.

  • Pro: Easy to configure and automate
  • Con: Not available for all resources

4. Use Azure Advisor


Azure Advisor gives you advice on how on several areas of your deployment including High availability, performance and cost savings. The cost saving advice will look at your deployments and look for:

  • Underutilized resources
  • Resource that could benefit from reservations
  • Public IP Addresses that are not used

While instructing a recent Azure course, one of my students discovered through Advisor that if they followed the advice given they could save over £65,000. Evan if his company only follows half of the advice given those are gigantic cost savings.

If there are ways to save money, they will be highlighted in the cost section. Notice the savings for the organisation in the image below. This company can save 245.52 USD per month by following Microsoft's advice

Azure recommendations example





If you are following Microsoft’s advice you should see a screen like the one below: 


Azure advisor - cost example

  • Pro: The advice given by Advisor is automatic
  • Con: Not all advice can be followed by your organisation

5. Use the Cost Analysis Tool


The Azure cost analysis tool gives you very detailed information about how much money you are spending.

It covers all resources, shows how much money you have spent during the month and even makes a prediction on how much you might spend during the rest of the month if you continue on the same spending track.

Using the Cost Analysis tool you can also create alerts that can alert you when you your spending goes above a certain threshold. 


Azure cost analysis example




Using the export option we can export all of this information into other business tools, using the Cost Alerts section we can create alerts, and using the budgets section we can create granular spending reports.

  • Pro: Spending information delivered to your inbox so you don’t have to be technical to see spending information
  • Con: The information given in the predictions is an estimate and might increase or decrease by the end of the month

6. Use Auto-Scaling

With on-premise architecture, we plan for the worst.

We design allocation of physical and virtual resources so that we can satisfy peak demand. This often means that we have expensive resources that are idle for most of the time.

In the cloud we plan for what we need now, we provide (pay for) resources we need for current demand and then add resources dynamically when demand for our service increases.

These resources can then be removed so they don't cost us money when they're not needed.

Virtual Machine Scale Sets, Web Apps and other services support autoscaling based on various metrics. These tools can scale up your resources when they are needed and reduce them when they are no longer required.

Below you can see the Autoscale section viewed when creating a Virtual Machine Scale Set.

You would create both a scale out policy that will add new resources when needed and a scale in policy to remove instances when they are not required. 

Azure auto scaling image




















  • Pro: Easy to configure on the resources that support auto-scale
  • Con: Not available for all resources


7. Consider Using Low Priority Virtual Machines


When you deploy a virtual machine, Azure makes an assessment based on the type and size of the virtual machines you have chosen and decides where it should be launched before launching it.

If you choose a low priority virtual machine, Azure will also asses how much spare capacity they have available in the region you have selected.

Based on this assessment your virtual machine might be launched or it might not. If there is enough spare capacity, your virtual machine is launched with a potential 80% saving based on standard virtual machines.

Of course if there isn’t enough spare capacity your virtual machine will not be launched, also if you do have a low priority virtual machine running and Azure needs the capacity back they will terminate your virtual machine.

This means that Low Priority virtual machines can only be used for workloads that can be reallocated in case of termination and that are not time sensitive.

At the time of writing, Low Priority virtual machines are only available with virtual machine scale sets and Azure Batch.

  • Pro: Huge 80% saving.
  • Con: Only available for Scale Sets and Azure Batch and not viable for all workloads.

Take a look at the following resources to learn more about using low priority virtual machines: public preview of azure batch announcement and low priority scale sets.


8. Use scripting and automation


When we allow administrators of our subscriptions to configure resources manually over a long period of time the following can occur:

  • Administrators will often accept defaults as they run through wizards, these defaults will often deploy features that cost money.
  • Even if administrators remember to delete resources that they have deployed when they are no longer needed, they often leave things behind such as public IP addresses and virtual disks that will still be costing you money.

Because of this we should restrict who can deploy resources manually and force people to use scripting and automation

By enforcing the use of scripting and automation we can make sure that only approved resources and configurations are deployed and importantly when we use scripting and automation we can cleanly remove resources when they are no longer needed meaning we are not wasting money on resources we are not using.

  • Pro: Offers the potential for big savings by enforcing deployment standards that allow us to control the type and size of resources used by our organisation
  • Con: Might require a change in the way your business works with Azure, this will might mean a change in mid set and that can take time.

Follow this link to learn more about automation and scripting.


Spend what you need and nothing more


Moving to the cloud offers huge advantages for start-ups, SMEs and large enterprise organisations: quicker time to market, huge feature sets and managed services to name a few.

But if moving to the cloud means that spending gets out of control, then the move may not bring all the expected results. 

Controlling your spending is vital - and by using some of the tools and techniques in this article, you'll be on the right track to a successful deployment in Azure.


Mike Brown is a lead instructor at Firebrand Training. He has more than 20 years’ experience in Microsoft and Cisco-focused certifications. Mike loves working with new cloud technologies and virtualisation. When he’s not teaching, he spends time making videos on Microsoft technologies and writing books on virtualization.


No comments: