Insights

Azure Cost Optimisation Best Practices

Doing more with less in Azure

Organisations are rapidly adopting Azure as their chosen cloud platform. The scalability and elasticity of cloud computing allows organisations to adjust to rapidly changing priorities.

However, governance of your Azure resources is as important as ever. Organisations are being asked to “do more with less”, meaning that choosing the right resources, the right type of resource, and optimising costs are all key if you’re to achieve this.

In this article, we’ll discuss Azure cost optimisation best practices to help you optimise and manage costs, as well as common pitfalls to avoid when deploying resources into Azure—so you and your organisation can do more with less.

Azure Rightsizing

Rightsizing might sound simple but is commonly overlooked. With Azure and other public clouds, you pay for what you consume. This provides great flexibility, as you can scale up/down your resources as demands change, such as the holiday season or busy times in the year. However, it’s important to size your resources appropriately. After all, Microsoft will happily charge you more for a high SKU, regardless of whether you use it or not.

Rightsizing is an ongoing activity—you should be constantly monitoring your workloads to determine if you’re getting the most bang for your buck.

One way to achieve this is using Azure Monitor metrics. You may also have 3rd party monitoring software to do this. Using a virtual machine as an example, you can leverage metrics to understand how much your VM is used. You can monitor its CPU usage, RAM usage, disk storage utilisation, disk latency times, network throughput and more, as well as store this information to allow you to build up a view of the performance of the virtual machine over a given time.

As an example, you may find that you have an E4s_v5 virtual machine – providing 32GB RAM, but the metrics indicate that over the past 90 days, the maximum RAM the virtual machine has consumed is 12GB. In this scenario, you could reduce the size of the virtual machine to an E2s_v5, which would provide 16GB of RAM, while reducing your cost.

Azure Start/Stop Automation

Start/stop automation is another useful cost optimisation technique. This section primarily focuses on virtual machines, but it can also apply to serverless compute such as Azure SQL.

We’ve already mentioned that you pay for what you consume with Azure. Does your organisation work or provide services to customers on a 24/7 basis? If the answer to that is no, then why are you running your infrastructure and virtual machines 24/7?

Some infrastructure should remain left on, such as crucial identity infrastructure. However, if you only need a system to be available from 7AM-7PM, for example, then you can configure automation to shut down and start-up your virtual machines automatically.

With virtual machines, you’ll still pay for storage even if the virtual machine is offline, but you won’t pay the compute costs while the virtual machine is deallocated. This can result in significant savings, however you should make sure that the organisation is aware that a given system will be unavailable outside of the hours you choose, as most organisations are familiar with leaving their on-premises infrastructure running 24/7 because the hardware costs are calculated using CapEx, rather than OpEx.

Azure Storage Redundancy & Performance Tiers

Azure storage is a common area where we see higher costs than necessary. This is usually split into two sections:

Storage Redundancy

Azure offers multiple levels of storage redundancy, and while it may be tempting to always chose geo-redundant storage, or geo-zone redundant storage, you should remember that the higher the redundancy level you choose, the more copies of your data. You will pay for these additional copies. Depending on your workload and its redundancy requirements, you may find that you can actually meet the organisation’s redundancy requirements by using zone-redundant storage, and in some scenarios you can even use locally redundant storage.

Storage Performance Tier

Azure offers extremely fast storage with items such as Premium SSD v2 disks, or Ultra Disks, Azure NetApp Files Premium, and more. However, you should use the performance tier that most closely aligns to the requirements of your workload.

If you have a SQL server that is performing a lot of IO operations, then a premium SSD disk may make sense, however in contrast, a domain controller is a workload that usually doesn’t require much IO. While you can assign a premium SSD to your domain controller, consider if it’s needed.

Also, don’t be afraid to use Standard HDD disks. While Standard HDD disks do not provide as high of an SLA as Premium SSD disks, they are great for test/dev workloads, or workloads where the data is protected from the lower SLA that comes with the lower-tier SKU, by another solution such as Azure Backup.

Lastly, it’s important to try to keep an open mind and don’t apply the same assumptions or expectations that you have for on-premises storage arrays when migrating to Azure. Regardless of the disk tier you choose, you will receive guaranteed throughput and IO for that tier. This is achieved through Microsoft-managed storage quality of service (QoS) rules on the Azure storage pools. While it’s possible to configure storage QoS on most storage arrays, it’s commonly not configured by administrators, meaning you may feel that a given storage type is too slow – but you should try to remember that it may have felt ‘slow’ with the on-premises storage array because it was in contention with numerous other workloads at the same time.

Azure Compute Cost Optimisations

While PAYG is a viable payment option for your compute costs, you should be aware that there are other options available, such as saving plans or reservations. With either of these options, you commit to Microsoft for a given period (1 or 3 years) or a minimum spend and in return, Microsoft will give you a significant discount in the charges.

Let’s use a virtual machine as an example. In the Azure pricing calculator, I’ve selected a D8s_v5 virtual machine in the UK South region. The PAYG price is £255.56. If I choose a 1-year reserved instance, I get a 41% discount, with my compute cost reducing to £150.80. If I choose a 3-year reserved instance, I get a 62% discount with my compute cost reducing further, down to £97.11.

Similar savings are available for savings plans.

Example:

Note: Pricing was retrieved at time of publication and therefore may not be correct at time of reading. You should use the Azure pricing calculator to retrieve latest pricing.

Azure Licensing Cost Optimisations

In addition to compute costs, you will likely be subject to operating system licensing costs, such as Windows Server licence costs. By default, any virtual machine you create will charge your subscription on a PAYG model.

While PAYG does provide flexibility, if your workload is guaranteed to be around for 1 or 3 years, you may find cheaper licensing via your CSP. While CSP licensing must be paid upfront, when calculated over a 1 or 3-year period, CSP licensing is often cheaper than PAYG. If you’re a large enterprise, you may also be able to work directly with your Microsoft contact regarding Volume Licensing.

Azure Advisor

Microsoft offer Azure Advisor within the Azure Portal. Azure Advisor will analyse your resources and provide you with insights and recommendations, ranging from configuration and performance to cost optimisation/management recommendations. Remember to frequently check Azure Advisor for any new recommendations.

Budgets and Budget Alerts

Any deployment of resource in Azure should be reviewed and approved, as after all, it will impact cost. During the planning stages of any resource deployment, cost should be understood and accepted before being deployed. These costs then feed into your budget for Azure consumption.

Let’s say you have Subscription 1, with an expected cost of £700 per month. You’ll want to be made aware as soon as anything changes that could result in your budget being breached. Azure supports budgets and budget alerts, providing you with an alert as soon as Azure forecasts that your current resource consumption will breach your budget before the next billing cycle. This data can then allow you to immediately respond and resolve. Without budgets and budget alerts, you’ll find out about that cost increase at the end of the billing cycle, when payment is due, rather than being proactive and avoiding higher costs.

Using AI to help with cost management

There’s a lot to consider with cost optimisation, and it can be difficult to keep on top of it. Microsoft recently announced Copilot for Cost Management. Copilot in Azure can help you understand your cost by allowing you to talk to it in natural language. Copilot will then review your query using the large language model (LLM), review your Azure consumption, and provide you with specific data in language that you understand. Details of the pricing for Copilot for Cost Managment, and release date, are not yet available.

Next steps

Want to better manage costs and do more with less in Azure? If so, Chorus can help you configure and maintain your Azure environments for optimal performance, cost, and security.

We’re a leading UK Microsoft Partner, with the accreditations, expertise, and experience to help you get the most out of Azure.

Whether you are just starting your cloud journey or already using Azure, we offer services to help you at every step. From readiness assessments and migration services to ongoing Azure cost optimisation assessments.

To do more with less in Azure, get in touch with Chorus today.