As organizations continue to move to the cloud, Azure cost optimization, and managing overall cloud costs continues to increase in priority. There are multiple ways to reduce your azure spending, if you know how to identify them. We will cover resources available to you; starting with the Azure Portal, the Azure advisor, and other Azure cost management tools, as well as some general insight on how you can optimize cloud spending without sacrificing functionality or overall availability.
All of these resources can be leveraged to help you make cost management recommendations around your cloud environment. We understand that cloud cost management, and cost optimization is on everyone’s mind. Our goal is to help reduce your overall cloud spending. Some of these reductions may come in the form of moving traditional workloads or services into Azure services. We will talk about this more later, but Azure services provides a great way to save money, thus reducing your infrastructure by moving these workloads into Azure resources.
Ways to reduce your Azure Virtual Machine costs
Right Sizing VMs
When we talk about azure cost optimization, ensuring that your Azure virtual machines are not larger, or smaller than needed can have one of the largest impacts on your Azure spend. There are numerous ways to “right size” virtual machines. Azure provides the Azure Advisor; this will help you identify idle or underutilized virtual machines. The goal is to ensure your virtual machines are properly utilized. Proper utilization means ensuring all of the resources within your virtual machine are being utilized to their fullest potential. You must ensure that one resource is not a bottleneck while leaving other resources idle. Some of the areas of focus when looking at right sizing your virtual machines are:
Is your CPU utilization too high, while memory and disk activity are underutilized?
Is your memory utilization too high, while other resources like CPU and disk activity is too low?
And of course, could disk activity be too high, resulting in a disk bottleneck while under utilizing your CPU and memory. Keep in mind that high Azure disk IO can also generate additional charges.
While these ideas may sound simple, these three areas typically account for most of your utilization issues. When one or two of these three indicators are showing abnormal utilization, this should be one area of focus. Azure offers a large assortment of virtual machine sizes that provide additional CPU, memory and storage optimized capabilities. By leveraging one of the CPU, memory or storage optimized VMs, to match the needs of your virtual machine, you will be much closer to right sizing your virtual machine performance and cost. As you look at these different VM sizes, look at them from within the Azure pricing calculator. It does a great job of describing not only the resources available to each virtual machine, but also the hourly cost of running that azure virtual machine within your environment.
Turn off your VMs when not needed
Everyone assumes every workload must run 24x7, but does every workload really need to run 24x7? I agree that some workloads need 24x7 availability, but that does not mean every VM must run 24x7. Consider Domain Controllers; During the day, you may need all of your domain controllers to handle authentications and permission management, but after hours, most of your Domain Controllers can probably be taken offline. For those Domain Controllers that remain on 24x7, there are a few ways we can still reduce their expense:
This may be a great place to leverage the B-Series VM sizes. After hours demand is typically negligible, and leveraging the B-Series VM size provides the availability with a reduced cost.
You may consider Azure Active Directory Domain Services. Depending on the after-hours demand, this may be an adequate solution for the reduced demand of after hours.
When it comes to turning off your VMs, Azure offers the capability to start and stop VMs at specific times, or even scale up resources based on demand.
Can you scale out instead of scaling up?
Most people assume that the need for more resources means you must increase the size of the VM. Depending on the workload, you may be able to add additional VMs to spread out the load. This means that instead of taking an outage to increase a single VM size, you can add additional VMs to spread out the load. By adding more VMs during peak times, you now have the ability to take these additional VMs offline during lower demands. Domain Controllers have utilized this capability for decades, but other workloads like Remote Desktop Services and even Azure Virtual Desktops are workloads that can leverage this scale out capability to increase availability as well as capacity.
We mentioned B-series VMs earlier and they have made a significant impact on VM cost reduction for some popular workloads. I’ve even seen B-series VMs leveraged for Remote Desktop Solutions and other user facing workloads. To be honest, we have seen mixed results on B-series VMs in user facing workloads, but it is worth a look. The B-series VMs are designed to be used for workloads that are typically idle and have bursts of utilization. For workloads that typically require low CPU utilization, the B-series VM is worth considering.
Changing a VM size
While we’ve talked about Right Sizing VMs by leveraging different VM sizes, changing a VM size does require an outage. Typically, the outage is less than 15 minutes, but it could be longer if your VM has to be moved from one physical cluster to another. Consider if you are moving a workload to a different CPU series, or from a standard VM size to a high memory VM size. You may see a longer migration time due to the time it requires to move your VM to the new cluster hardware. I call this out because most of the time, a business can withstand a 5 to 15-minute outage for a normal VM resize during the day. But if you must resize a VM and are making a significant VM size change, your outage window could be larger since Azure does not provide an SLA for VM resizes.
Do you really need Virtual Machines?
Containers have seen an increase in popularity because they typically have less overhead than VMs. You can run multiple containerized solutions on a single host, but the cost of re-architecting these solutions to move from VMs to containers must be considered. I do think containers will remain a long term solution, but like every newer technology, they are not a one size fits all solution.
Azure Savings Plans
Azure savings plans are one of the newest ways to reduce your runtime costs by allowing you an easy way to pay less for predictable utilization. This plan is more flexible that the traditional Azure Reserved Instances because it does not restrict you to a specific Azure Region, or even VM size. Azure Savings Plans allow you to leverage a lower cost by committing to a minimum amount of Azure utilization per month while being able to leverage multiple VM sizes and multiple Azure Regions.
Azure Reserved Instances
Azure Reserved Instances have been around a long time, but have been under-utilized because of the restrictions around them. You must define the VM size and Azure Region to be used before you can leverage Azure Reserved Instances. The savings are significant for clearly defined resources that will remain in the same Azure region with the same VM size for a fixed period of time, but customers have been hesitant to make a long-term commitment like this. If you have workloads that will not change over the next 1-3 years, take a hard look at Azure Reserved Instances. They can save you a significant amount of money. If you are hesitant to make such a firm commitment, take a look at the Azure Savings Plans. The new Azure Savings plans make it easier to reduce costs without the restrictions of the Azure Reserved Instances.
Move your VM based Databases to cloud-based Databases
Azure offers many database solutions, thus making it much easier to move your traditional Database VM solution to an Azure managed database instance. This not only lets Azure optimize the database performance, which allows Azure to automatically adjust the database size and compute capacity as needed, but it also allows Azure to fully manage updates, provisioning, and backups. When you look at the cost of managing your databases, keep in mind that High Availability and Backups add to your overall costs. Having Azure manage these capabilities allows your team to focus more on the business and less on managing the infrastructure. Azure allows you to migrate both your single host database VMs as well as your highly available database clusters to the Azure cloud. You can even distribute loads across your on-premises infrastructure and into the Azure cloud at the same time. If you have built a highly available database cluster, Azure allows you to move that database into the azure cloud and span multiple Azure regions. This capability gives you the ability to handle not only a single VM failure, but geographical failures as well. Azure can provide this capability because it leverages the redundant Azure storage to store your databases. As you can see, once you move a workload like a SQL server into Azure, the scale and redundancy possibilities increase exponentially.
Ways to reduce Licensing costs
Azure Hybrid Benefit
If you already own the on-premises licenses, you may be able to leverage them in the cloud and reduce your costs by up to 85%. Licensing is still a significant cost and leveraging existing licenses is a smart way to manage your costs.
If you have a Visual Studio subscription, you can Leverage Azure Dev/Test Pricing
Azure offers significant discounts for development and testing scenarios. Of course, resources leveraging the Dev/Test pricing do not offer an SLA; this model is built for development, not production environments. But for your development teams, this model works well and can reduce Azure costs by up to 55%, depending on the service. One of the biggest ways the runtime costs are reduced is by leveraging the Visual Studio licensing model as opposed to paying for the licensing as part of the workload runtime cost. Your Visual Studio subscription offers VM, database and other cloud services with Azure Dev/Test pricing discounts.
Ways to reduce your Storage Costs
Review your disk allocations
When you use virtual machines, Azure typically charges for the amount of storage reserved, as opposed to the storage utilized within your pool. This model can lead to excessive storage waste if it goes unchecked.
For Example: If you’ve allocated a 2 TB storage volume, but are only utilizing 500 GB of the storage, you are paying for the 1.5 TB of unused storage, by reducing the unused storage, you can easily reduce waste associated with your virtual machine.
Between over allocating storage and leaving unused storage within Azure, storage can account for a significant cost, especially when you consider the cost of SSD storage. Customers need to think more about shared resources and storage tiering, while moving away from the traditional siloed resource mindset. Shared resources, like storage, allows multiple workloads to directly access the same storage pool, thus reducing duplicates of the same data while also reducing contention for that data.
Leverage Storage Tiers
Azure offers Hot, Cool and archive tiers for blob storage. Like most companies, all of your storage does not need to be associated with a particular VM. For data that needs to stay around, but does not need to be stored on the more expensive VM storage, consider storage tiering. For data that is accessed frequently, the Hot storage tier provides quicker access but at a higher cost than the other storage tiers. This allows your most frequently used data to be readily available at a lower cost that the traditional virtual disks.
If you have data that must be retained, but is rarely accessed, you may consider moving that data to the Cool or Archive storage tier. The Cool storage tier provides a lower storage cost than the Hot storage tier, but has a higher access cost. This is good for data that is accessed infrequently.
For that data that must be retained, but is rarely ever accessed, the Archive tier may be the best storage solution. Azure will ensure the data is retained, at a much lower storage cost, but this data will have a much higher latency when accessing the data. Azure warns that data retrieval from the Archive tier could take days. Azure guarantees to retain your data, but the reduced cost does come with a longer wait to retrieve your data.
How can you move forward?
While we have offered a number of recommendations, each of these recommendations will no doubt require additional research and testing on your part. Partners like MyCloudIT can help you assess your current Azure spend and automate the actions that will lead to a cost reduction without the typical research and testing required. MyCloudIT has built their business around identifying cost reduction solutions like the ones we’ve discussed and automating the changes necessary to achieve these cost savings.
Tags: Microsoft Azure, Cost Optimization