Many companies have learned the hard way that moving to the public cloud doesn't always achieve the cost savings they expected. This doesn’t mean that moving to the public cloud is a mistake. The public cloud provides huge benefits in agility, responsiveness, simplified operations, and improved innovation. What has often happened in the past is that organizations have moved to the public cloud without implementing the necessary management, governance, and automation measures that will lead to cost savings.
A further reason organizations overspend in the cloud is the misconception that you only pay for what you use in the cloud, whereas in many cases, you pay for what you provision. This means that if an organization over-provisions resources with more capacity than required, or fails to deprovision resources once they’ve finished using them, they will continue to pay for what has been provisioned whether the resources are being used or not.
While there are many scenarios where you can overspend with Azure, here we will highlight the eight most common scenarios, along with best practices organizations can adopt for cloud cost optimization. See the complete guide to reducing spend in Azure here.
1. Delete unattached disk storage
Because of the dynamic nature of cloud computing, it’s easy for users to quickly spin up and spin down workloads, but that means a higher risk of leaving behind unattached disk storage. Microsoft will continue to charge the full price of the disk despite the fact that it's not being used.
By continuously checking for unattached disk storage in your infrastructure, you can cut thousands of dollars from your monthly Azure bill. As a best practice, consider setting automated policies that delete disk storage when it's been unattached for two weeks.
2. Delete aged snapshots and images
Many organizations use snapshots and images to create point-in-time recovery points in case of data loss or disaster. However, snapshot and image costs can quickly get out of control if the number of retained recovery points isn't closely monitored.
Keep the storage costs of aged snapshots and images in check by monitoring cost and usage per VM to make sure they do not spike out of control. Set a standard or implement policies in your organization for how many snapshots or images should be retained per object and for how long. Remember that the majority of the time, a recovery will occur from the most recent snapshot.
3. Terminate zombie assets
Zombie assets are infrastructure components that are running in your cloud environment but not being used for any purpose. They can come in many forms, including those we’ve already mentioned—unattached storage volumes and aged snapshots—but they can also be in the form of compute infrastructure, databases, disassociated IPs, and more.
No matter the cause, Microsoft will charge for zombie assets as long as they are in a running state. They must be isolated, evaluated, and immediately terminated if deemed nonessential. Take a backup of the asset before terminating or stopping it to ensure you can recover the asset if it is needed again.
4. Upgrade to the latest generation
Microsoft has announced that it will be retiring Azure Service Manager (ASM)—commonly referred to as classic assets—and completely replacing it with Azure Resource Manager (ARM), the latest Azure control plane responsible for creating, managing, deleting services, and performing other control plane operations. Any Azure customers who are still using classic assets should plan on migrating to ARM as soon as possible to avoid potential business impacts.
In addition, every so often, Microsoft releases a next generation of VMs—or new versions of the existing generation—with improved price for performance or additional functionality. While the newer versions of Azure VMs typically have the same price points as their predecessors, they usually come with performance improvements that may enable you to run fewer VMs and thereby reduce costs.
5. Rightsize infrastructure
Rightsizing is an optimization initiative with the potential for a significant impact to performance and costs. It’s common for developers to spin up new VMs that are substantially larger than necessary. This may be intentional to give themselves extra headroom, or accidental since they don’t yet know the performance requirements of the new VM. Regardless of the reason, failing to rightsize resources can lead to exponentially higher costs.
Rightsizing can be achieved by downsizing, terminating, or upgrading resources. Learn more about how to rightsize your Azure infrastructure with the following resources:
- Guide: 8 Best Practices for Reducing Spend in Azure
- Article: How to Optimize Azure SQL Database
- Article: Rightsizing: The Foundation for Optimizing Your Cloud Infrastructure
- Solution Brief: Drive Efficiency by Rightsizing Your Cloud Resources
6. Buy reservations
Purchasing reservations is an extremely effective cost savings technique that can be applied to more than 15 different Azure services, including select VMs, storage, and database services.
Azure Reserved VM Instances allow you to make a one- or three-year commitment to a predetermined VM utilization. In return, you get a discount on compute costs of up to 72% compared to pay-as-you-go pricing. What makes Reserved VM Instances even more of a no-brainer is that you don’t have to pay upfront for the period of time you committed to. While you can pay all upfront, the option exists to pay monthly for the committed amount of utilization.
While Reserved VM Instances are some of the most popular Azure reservation purchases, there are several other services where you can save with reservations. See four of the most overlooked Azure reservation options in our article here.
7. Stop and start VMs on a schedule
Azure will bill for a VM as long as it is running. Inversely, if a VM is in a stopped state, there is no charge associated with that VM. By dynamically stopping and starting VMs based on a set schedule, you can save hundreds of hours and thousands of dollars a month from your Azure bill.
8. Move object data to lower-cost storage tiers
Microsoft offers several tiers of storage at different price points and performance levels. A best cost management practice is to move data between the tiers of storage depending on its usage. For example, Cold Locally Redundant Storage (LRS) is ideal for long-term storage, backups, and disaster recovery content, while Cold Geographically Redundant Storage (GRS) is best suited for archival.
It’s important to remember that these best practices are not meant to be one-time activities, but ongoing processes. Because of the dynamic and ever-changing nature of the cloud, cost optimization activities should ideally take place continuously and be part of a greater cloud financial management practice.
For more details on cloud cost optimization with Azure, see our in-depth guide: 8 Best Practices for Reducing Spend in Azure