I’ve seen that 20% – 40% of cloud spend is waste! In this post I’ll cover cost savings ideas for your Azure environment that will help you “get more with less” from your cloud spend.
Idea #1. Properly Tag and Visualize Your Azure Costs
The most critical requirement to address Azure costs is to know who is spending them. If you don’t know that, you really can’t engage the right owners in the business (or even small groups) to take action. Even a small Azure environment without the right tagging is next to impossible to intentionally reduce costs and take the necessary action. This means you need to:
- Create the tagging requirements (likely a policy that forces it at the resource group level) that apply to all resources owned by the application
- Visualize tags across the organization in Azure Cost Management or Power BI
- Engage the target teams in cost reduction exercises as noted below
Idea #2. Leverage Reserved Instances
I’ll say the dependency on this one is first knowing you’ll actually be using the resource. Provided that, applying reserved instances to target resources can save 20% - 72% alone. The tricky thing is they are purchased and applied (they can be moved) and need to be jived with the actual spend. That said, they are the most obvious cost savings measure that MANY companies do not apply at the level they should.
Azure Reserved Virtual Machine Instances | Microsoft Azure
Idea #3. Apply Azure Hybrid Use Benefits
The same as reserved instances applied to Azure Hybrid Use Benefits and works by applying your existing Software Assurance licenses to cloud resources. This can have as much as 85% savings in select workloads, but certainly provides benefits for almost any where a license exists.
Azure Hybrid Benefit - Hybrid Cost Calculator | Microsoft Azure
Idea #4. Right-size Key Resources
The primary benefits of cost in the cloud come via the correct sizing of resources vs. the hard-setup that an on-premise environment would have. The on-premise environments need to buy for their max capacity and have zero-agility (especially lately with year long waits for hardware). That said, many companies lifted-and-shifted resources and never adjusted the sizing based on the actual needs. The action to right-size the resources is a critical tasks needed in most Azure environments and represents a serious amount of available optimization.
Idea #5. Auto-Shutdown Resources not in Use
This is a frequently talked about opportunity in the cloud, but infrequently implemented. Simple Azure Functions can automate the shutdown or start-up of lab environments vs. continuing to run the bill every evening. Most lab environments have at least 50% savings potential just by selectively applying auto-shutdown procedures.
Idea #6. Create “Lab” Landing Zones that Automatically Delete the Contents
This idea was implemented at a large customer of mine and was very successful. The lab environments were placed in a self-destruct box (like Mission Impossible) and were available for a set period of time. After that period they were shut off, then automatically deleted. This was an internal SLA expectation of that environment and was very useful at reducing un-used spend across employee playgrounds. This is where subscription sprawl is not a bad thing at all and provides both the control and autonomy, combined with guardrails.
Idea #7. Enable Auto-scaling on Critical Resources
The idea of auto-scaling is to build the VM environment at a smaller scale level, then quickly move it up as capacity demands require. Auto-scale is a capability that allows this to happen on an automated fashion, although scale-down takes a bit more work. Check it out here:
Idea #8. Use Lab Rights for Certain Resources (such as Cosmos DB)
There are a variety of areas where lab rights are granted to users based on a setting or can use licenses like MSDN to reduce the cost of the environment. An example of this is Cosmos DB, which has a “free tier” that you can apply once per subscription (another reason to break out subscriptions).
Optimizing for development and testing in Azure Cosmos DB | Microsoft Learn
Idea #9. Shift Costs Directly to Business Unit
The relationship between responsibility and authority looms large in Azure cost reduction. The team doing the reduction needs to have a close partnership between performance and cost reduction and be accountable for both outcomes. If they are not, there is finger pointing, or even not optimizing costs at all due to risk attached. The best way to influence this is to ensure costs are shifted entirely to the application team and business unit they reside in. To do otherwise would be a cloud governance anti-pattern and actively works against optimization.
Idea #10. Apply Direct Staff to Cost Reduction Exercises
This idea is really about people capacity to influence change. A primary reason why cost optimization doesn’t happen is because it requires people to work on it. I recommend every company apply some level of staff that has a direct responsibility of cost optimization and measure its impact. The requirement is that any investment in optimization dollars needs to pay off double in results.
Idea #11. Spot Instances
This relatively new capability is a way for the cloud provider (Microsoft) to use open capacity across available hardware and for you to benefit from that by reduced pricing. This comes with availability and capacity limitations, but it works well for testing, QA, etc.
Idea #13. Reserved Capacity
The reserved instances used to be limited to just for VMs. Now you can apply capacity reservations for various compute and non-compute resources. This is particularly useful for storage, Synapse, Cosmos DB, and other predictable cost areas.
Reserved Capacity Pricing | Microsoft Azure
Idea #14. LRS vs. GRS
The use of different storage types has a significant cost savings affect due to the duplication or type of storage being used. A shift from GRS to LRS for testing, pilot, or QA workloads would have a positive impact and is frequently mis-configured.
Another storage scenario that has a big impact is the use of less expensive storage vs. premium SSD disks, although this change requires a re-deployment. A good thing to watch for with perhaps even Azure Policy that if the environment is for test/dev/qa, then using less expensive storage could be required.
Storage Account Archive
Enabling the archive of storage accounts to less expensive storage options as a result of its usage profile and capabilities. The goal being to optimize the cost of storage, especially for rarely accessed data.