A Step by Step Guide to Reduce Cloud Costs
This is a detailed step-by-step guide to help you reduce your cloud costs in a structured and methodological manner.
Introduction
Cloud computing is one of the most impressive technologies in the information era. It made it possible to kick start IT initiatives at considerably low costs than ten and 15 years ago. If we look back in time, we see that serious IT initiatives were only feasible by large IT corporations with a deep pocket and strategic needs that make it possible for them to afford high IT infrastructure costs.
However, nowadays, all that hassle was removed, and the barrier entry became significantly lower. Thanks to cloud computing, which made it much cheaper to spin up, operate and decommission IT infrastructure at a lower price and faster time to market.
The Cost Challenge
That being said, there is no free lunch! Cloud computing does have its challenges and concerns as well. These challenges mainly revolve around data sovereignty, cost management, and staff upskilling.
In this article, I'd like to discuss the cost challenge, which is considered the most worrying concern among IT executives. Let me be honest with you, cloud costs can quickly creep your budget and mess up your expected cost savings. Even worse, exceeding the on-premises costs, you promised your management to save and justified using the cloud in the first place!
I'll share a seven-step process that you can easily apply and guide your engineers to follow to reduce your cloud costs. Those steps are designed to be generic and platform agnostic. Therefore, it does not matter if you use Azure, AWS, or GCP.
Step 1: Understand Your Current Situation
I am a firm believer in the wisdom "What Gets Measured Gets Managed." The first step in a successful cost management journey in your cloud is to understand your current situation. And by your current position, I mean your cloud costs. It does not mean just looking at how much cloud resources cost you under the monthly statement expenses section. I mean a detailed look at the project level.
You'll need to understand how much each project/initiative at your organization cost. Most importantly, that cost should be clear and visible to your development team in a real-time portal. By getting them engaged on how much their product costs in cloud resources, you ensure their buy-in into any cost reduction efforts.
Thankfully, all cloud providers provide robust ways to segment, manage and track costs. So, just consult your technical team and ask them to prepare accurate reports for both of you. These reports are usually quite comprehensive and detailed. You can see costs down to the resource type used in the cloud, whether it is a virtual machine, storage spaces, or more advanced serverless components.
Step 2: Identify Big Elephants to Reduce Cloud Costs
The Pareto principle states, "for many outcomes roughly 80% of consequences come from 20% of the causes" (Wikipedia).
This principle works perfectly when it comes to cloud costs. When you start inspecting your cloud costs, you'll notice that few resources eat the majority of your cloud cost. For example, resources such as virtual machines, API Gateways, and messaging technologies are well known for being particularly expensive. On the other hand, resources such as storage areas, monitoring services, and configuration storage tend to be cheaper. Of course, your mileage may vary based on many conditions. But you can consider it as a rule of thumb when evaluating the 20% eating 80% of your cloud invoice.
Step 3: Do Your Research
After you have figured out which resources are actually boosting up your invoice. It is now the time for the technical team to research and analyze how these costs can be reduced if possible. In the majority of the cases, it is possible.
The type of research and questions your team needs to conduct depends on many factors such as the capacity of provisioned resources, partnership offerings, and readiness to refactor and redesign parts of the IT solution you would like to cut down costs for. Let us have a brief discussion about each item.
The capacity of Provisioned Resources
Over-provisioned cloud resources are one of the highest cost inflation reasons. I have seen teams provisioning unnecessary databases, virtual machines, and messaging technologies capacities or tiers without a clear business justification. The overprovisioned capacity is usually an extra caution from speculated high demand, which rarely realize. Use cloud metrics to compare what being used vs. what being provisioned. From there, you can find the waste to cut away.
Partnership Offerings
Corporations and enterprises tend to have special agreements with cloud vendors. These agreements can have discounted costs for specific resources, free licenses for specific operating systems, and volume discounts in exchange for reserved capacities (commit longer, pay less). Research your organization for such agreements. They tend to be buried under the sand!
Solution Redesign
I have seen some simple solutions that perform recurring background jobs being deployed on the expensive virtual machine. These solutions can be easily refactored to more serverless style cloud services that only charge during execution time. These are much cheaper than virtual machines. However, keep in mind these types of changes usually require solution redesign, which can be time-consuming.
You need to be innovative and patient to implement this step. And most importantly, knowledgeable in your cloud provider specifics.
Step 4: Craft an Action Plan to Reduce Cloud Costs
After you figured out what are the main cost eaters are in your project and how to optimize them. It is now the time to craft an action plan to start implementing the required cost reduction changes. Remember, this topic can quickly turn political. You'll be changing critical infrastructure components without a clear business justification at the beginning. Thus, stakeholder management skills are a must.
I'd recommend preparing an exact list of action items with the cost reduction changes to be performed. The following is a suggested example template I use.
Table 1 Cost Reduction Action Plan
Action | Expected Saving | Risk | Time frame |
Reduce virtual machines capacity | 5000 USD/month | Slower user experience | 2 weeks |
By going to your stakeholders with a clear implementation plan with expected time frames, cost, and expected saving, you'll make life easier. The decision is made more comfortable at their end for approval or denial. And you depict yourself as an IT professional who knows what he is talking about.
Step 5: Execute the Action Plan
After you have agreed with your stakeholders and got a formal OK to go with cost reduction actions. You'll need to follow a gradual change strategy instead of a big pang change strategy. I recommend sorting Table 1 by costs risks first from lower to higher, then sorting the table by savings from higher to lower. This way, you start picking the less risky and most profitable action items.
There are two reasons why you want to do that. Number one, you want to minimize the risk of any unexpected surprises. When you change fewer things, you'll have more control to revert things back if something goes wrong. Number two, you want to build trust gradually. As your stakeholders start seeing the impact slowly, they will feel more confident and become more cooperative for future changes.
Step 6: Measure and Update
As you change your environment and cut down costs, make sure to measure and document the cost-saving as you go. This can be done by writing down the actual saved numbers from your cost reports and comparing them to what you initially expected. Try to find out the cause behind any divergence to optimize future action plans.
Most importantly, make sure to keep your stakeholders in the loop and give them a regular update on how things are going as you cut costs. Obviously, Communication is critical during these times. You want to make sure that they understand you spend your time on something valuable.
Step 7: Present Final Report and Spread
Finally, after you have done all your changes and reduced what can be reduced. Create a presentation showing briefly what happened, the original cost, and the new one. Present that to your stakeholders and hear the claps 🙂
Make sure to spread the knowledge about this in your organization as much as possible. You want to be a leader by word and action. This way, other teams will be encouraged to follow a similar path and multiply your return-on-investment orders of magnitude.