Best Practices for Optimizing Cloud Usage and Costs: Part I
This is Part 1 of our 3-Part series on Best Practices for Cloud Management.
The funny thing about developers is that once they get ahold of fancy new toys, there can be a tendency to play with them as much as possible. This may sound familiar if you are using Microsoft Azure or another public cloud for application development and watched the costs go through the roof.
Luckily, that doesn’t have to be the case.
While you don’t want to clip your developer’s wings, striking a balance between freedom and responsibility and making ‘cost consciousness’ a part of your company culture will go a long way to helping reduce your Azure spend and better manage your cloud infrastructure.
The decision to go beyond cost and focus on optimization is also an important step in moving towards a true cloud cost management and optimization (CCMO) program.
Start by asking yourself some key questions:
- How much is my infrastructure costing me?
- How much money am I wasting on idle infrastructure?
- What guardrails do I have in place?
Once you have made an honest evaluation of where you think you are, start implementing these best practices to put you on the road to immediate Azure cost savings.
Delete Unattached Disk Storage
It’s not uncommon to see thousands of dollars in unattached Disk Storage (Page Blobs) within Azure accounts.
That’s because when you delete a Virtual Machine, by default, any disks that are attached to the VMs aren’t deleted. This features helps you prevent data loss from an unintentional VM deletion. However, after a VM is deleted the Disk Storage remains active and you will continue to pay the full price of the disk.
Because of the dynamic nature of cloud computing, it’s easy for users to quickly spin up and spin down workloads, but that means the risk of leaving behind unattached storage is high. Check for unattached Disk Storage in your infrastructure to cut thousands of dollars from your monthly Azure bill.
Xgility Pro Tip: Delete your Disk Storage if it has been unattached for two weeks. It’s unlikely the same storage will be utilized again.
Delete Aged Snapshots
Many organizations use Snapshots on Blob and Disk Storage to create point-in-time recovery points in case of data loss or disaster. However, Snapshot can grow quickly if not closely monitored. Individual Snapshots are not costly, but the cost can grow quickly when several are provisioned.
Additionally, users can configure settings to automatically create subsequent snapshots without scheduling older snapshots for deletion. Monitoring Snapshot cost and usage per VM will help ensure Snapshots do not get out of control.
Xgility Pro Tip: Set a baseline number of snapshots that should be retained per object. Most of the time a recovery will occur from the most recent snapshot.
Terminate Zombie Assets
Zombie assets are infrastructure components that are running in your cloud environment but not being used. For example, they could be former VMs that have not been turned off. Zombie VMs may also occur when VMs fail during the launch process or because of script errors that fail to deprovision VMs. Additionally, zombie assets can also come in the form of idle Load Balancers that aren’t being used effectively, or an idle SQL Database.
Microsoft charges for these assets when they’re in a running state. They should be isolated, evaluated, and terminated if not needed. Take a backup of the asset before terminating or stopping it to ensure recovery if necessary.
Xgility Pro Tip: Identify VMs that have a Max CPU <5% over the past 30 days as a starting point for finding zombie assets.
Upgrade VMs to the Latest Generation
In 2014, Microsoft introduced the next generation of Azure deployment, called Azure Resource Manager (ARM), or sometimes v2. This update offers functionality like resource grouping, advanced tagging, role-based access control, and templates. While the prices for ARM and Azure Classic (Azure v1) are the same, the management improvements help save time.
For example, using ARM, you can easily batch deploy new VMs from a JSON template, rather than deploying them one at a time. You can tag assets so they are more easily viewable by Line of Business.
In addition, for some VM types there is the option to upgrade to the latest version. While the VM price points are the same, the performance improvements that may enable you to run fewer VMs.
For example, upgrading a D-series VM gives you 35% faster processing and greater scalability for the same price.
Xgility Pro Tip: Migrate from Azure Classic to ARM for improved performance, additional features and better manageability. Since both Classic and ARM assets can now be managed in the same console, you can migrate workloads at your own pace.
Rightsizing an Infrastructure as a Service (IaaS) offering such as VMs is the cost reduction initiative with the potential for the biggest impact.
Over-provisioning a VM can lead to exponentially higher costs. Without performance monitoring or cloud management tools, it’s hard to tell when assets are over- or under-provisioned.
Be sure to consider CPU, memory, disk, and network in/out utilization. Reviewing these trended metrics over time, can help you reduce the size of the VM without affecting VM application performance. Because it’s common for VMs to be underutilized, you can reduce costs by assuring that all VMs are the right size.
Xgility Pro Tip: Look for VMs that have an Avg CPU < 5% and Max CPU < 20% for 30 days as viable candidates for rightsizing or termination.
It’s important to remember these tips are not meant to be one-time activities but ongoing processes.
Read Part 2 of our blog series to learn five more tips that can help you save costs in Azure.
Need to Gain Control of Your Cloud Spend?
Learn how our Cloud Optimization Platform Service can reduce your Azure costs by an average of 20%-30%. Contact Us Now »
Source: CloudHealth, 10 Best Practices for Reducing Spend in Azure, 2018