Moving to the cloud can save money for your organisation by enabling you to control and optimize infrastructure spending. Azure’s cloud platform makes it easy to deploy and use compute power and services only when they are needed.
Further, removing infrastructure can be done with just a few clicks. However, if not properly managed, costs in Azure can easily spiral out of control. You’ll need to be disciplined in the way you manage, monitor, and audit the use of Azure resources. Here are the top six best practices for cost management in Azure:
1. Get serious about asset governance
As the Azure resources used by your organisation proliferate, it becomes increasingly difficult to track which workloads can be safely deleted. Ideally, you’ll have implemented an asset governance strategy from the beginning, but it’s never too late to start. For every resource you create, you should:
- Identify and tag a single person who is responsible for it (an “owner” of the resource)
- Azure’s tagging system consists of two parts: tag name + tag value, so for each resource created, you should add a tag reading something like “Contact” + “<owner’s email>”.
- Add more tags to help categorize resources based on how they are used (ie: dev, prod, test)
- Establishing an agreed-upon standard for tagging early-on will pay dividends as your Azure usage expands.
- Set expiration and/or revisit dates for each resource
- Using ExpiryDate for the tag and YYYYMMDD for the value, you can easily add a script that, for example, flags all resources when their deadline is up. Then it’s just a matter of mailing the tagged “Contact” to see if the resource is still needed.
2. Optimize deployment of virtual machines
In general, you should try to use a VM as close to its full capacity as possible. However, there are other aspects that you need to be considering. Most people need the machine to be constantly running at a low capacity. But it can have a high capacity for short periods of time, too.
Thankfully, the types of VMs that can be deployed in Azure grows year-by-year, and there are now options to optimize for almost every use case. The B-Series family of virtual machines, for instance, are specifically designed for predictable, always on, low-capacity workloads that sometimes need to handle high-capacity spikes. Utilizing B-series VMs offers savings in the range of 30% compared to equivalent D-series VMs.
Azure Advisor can be used to identify virtual machines with low CPU and network utilization. Since instance sizes in Azure double with each tier, if you notice that usage statistics for CPU and RAM on a given VM instance are below 50% for a sustained period, you can confidently downsize that instance without hindering performance.
3. Delete unused diskUnused disks should be deleted and any data that is no longer in use should also be archived to save space.
Since Azure doesn’t automatically delete associated data when you remove a VM, overtime it’s easy to end up paying for more and more disks that are no longer needed. The Azure portal makes it easy to delete those disks, but you’ll want to establish regular intervals to check contents and remove when safe.
Additionally, there’s potential to cut costs by moving data from “warm” to “cold” storage. Rarely used data should be moved to cold storage, where monthly costs are significantly lower. However, you’ll need to be sure that such data isn’t accessed regularly because access costs for cold storage data are much higher than warm storage data.
4. Leverage containers
For less resource-intense workloads, “containers” are a cost-saving alternative to VMs. By providing a virtual OS instead of a whole virtual machine, containerized apps consume drastically less resources. Utilizing containers can enable you to combine multiple tasks to fewer servers while also spinning up and deploying at a faster rate than VMs. Deploy and manage containers at scale with Azure Kubernetes Service.
5. Be smart about pricing plans
You can save a lot of money (like 50%!) by committing to a three-year plan, but you’ll need to be smart about calculating the resources you need. If you’ve clearly established the infrastructure needs of your cloud deployment, the Azure pricing calculator can help you to estimate costs, but there are some additional pricing hacks to be leveraged.
For instance, pre-paying for VM or SQL Database compute capacity through Azure Reservations can save up to 70%. If you have some low priority workloads, another option is using Batch to secure lower rates offered by Azure when they have unused bandwidth.
6. Consider a Cloud Management Platform
Having taken the above steps to streamline your usage of Azure cloud services, leveraging a cloud management platform can provide further optimizations.
A good cloud management platform should have the capacity to analyze your setup then provide optimization recommendations for storage, compute power and app footprint. We reccomend the Kloudily cloud management platform for reducing Azure costs and deploying cloud infrastructure.