27 September 2023
Are you paying too much for the cloud? Here is your cloud cost optimization checklist [download]
In a recent project, The Software House team managed to reduce a client’s cloud bill from $30,000 to $2,000 a month. This experience made me realize just how many companies struggle with cloud cost optimization. Today, I am sharing a checklist of cloud optimization tactics that will help you control cloud costs and save a lot of money. Some of the tactics are easy to implement, some harder, and some definitely require expert help. But you’ve got to start somewhere.
Interested in that cloud cost optimization checklist? You could skip all the way to the end and download it and there is nothing I could do to stop you, but stick with me for a minute before you start scrolling.
The checklist is free, but your cloud bill isn’t
There are two important things I need to tell.
First, the checklist itself is only useful if you know the full context of each of the tips. I go over these tips in detail below. Among others, you will learn that:
- some tools can make a big difference and not just to DevOps engineers,
- that you can get savings just by asking for them,
- or that at some point during your app lifecycle you will be making decisions that take a minute to make but will cost you tons of time and money if the choice is wrong.
And the second thing – you might think that cloud cost optimization is only a gradual process, a grind that allows you to slowly lower costs – little by little, piece by piece, step by step. And you’re largely right. That’s how it often is. And that’s what the checklist is all about. But sometimes, a major breakthrough happens in an instant. Just like that – one decision, one change and 50 percent is shaven off your cloud bill!
If you continue to follow the article, you will also get to read about a real-life story like this. Don’t you think that your cloud bill is well worth the time it takes to do that?
Come with me, there’s much to go through!
Cloud cost optimization matters more than ever
If you are here, chances are that you suspect that your cloud infrastructure costs more than it should. You are not alone. As the complexity of the cloud fueled by service-oriented architectures and ever-growing third-party integrations intensifies, companies look for a way to manage it all better. COVID and related economical factors made companies even more conscious of the tiniest savings they could do in order to improve their bottom line or even just survive. According to Crunchbase, VC funding for cloud cost management initiatives adds around $1.0 billion to its evaluation every year.
From my practice as a DevOps engineer, I can tell you that cloud cost optimization is one of these areas in which intuition really goes a long way. In other words – yes, if you think you could pay less for your cloud, you probably could pay less.
Thanks to a strong and growing DevOps team, we’ve got to work on some incredibly interesting cloud infrastructure projects.
One project, in particular, motivated us to write a well-received cloud cost case study, which had our team reduce the client’s bill 15-fold.
Reducing cloud-bill from $30,000 to $2,000 a month – a case study
We highly recommend you read the whole case study later. But just to quickly recap:
- A team at The Software House developed a virtual graduation app for a UK-based company using React and Node.js.
- The app’s popularity contributed to a big surge in traffic, which affected parts of the system that were not created by us.
- The infrastructure consisted of 25 servers running 1,000 WordPress pages, which consumed a great number of cloud resources. It caused the monthly bill to skyrocket.
- We identified the problem and developed a single highly customized Next.js app to replace all of the WordPress instances.
As you can see, sometimes all it takes is to fix one problem in order to greatly improve cloud cost management. However, most commonly your cloud cost optimization strategy will depend on a well-planned process of gradual improvements.
When it comes to the world of cloud computing resources, shortcuts such as the one above are indeed possible, but not guaranteed, especially when you don’t start from square one or your architecture does not leave that much to be desired in the first place.
The cloud cost optimization process should ideally start even before you go live with your project.
Cloud cost optimization checklist – early phase & planning
1. Check out the specialties of potential providers
Early on, you will definitely need to choose a cloud provider. We have no intention of suggesting a particular vendor. However, one thing that you should keep in mind is that your choice is not limited to the services offered by the biggest players on the market, such as AWS, Google Cloud, or Microsoft Azure. Smaller cloud vendors may be better fit in terms of price/performance ratio, as they depend on fewer factors and have more defined target audiences.
For example, some cloud providers may offer managed solutions (which are cheaper to maintain in some cases for particular types of clients such as enterprise-level companies, or startups) that are unavailable at other vendors’. There are even those that specialize in helping businesses with migrating complex systems from their own data centers to the cloud.
2. Use cost calculators & other tools
Ideally, your research should combine conversations with experts with output obtained from a variety of automatic tools.
Some cloud providers offer powerful tools that make performance and security recommendations. A good example of that is AWS Trusted Advisor. If you already know what kind of technologies and how many instances you will need, you can also benefit from using cloud price calculators.
3. Choose the right technology
You can potentially use a number of different cloud services to achieve the exact same goal. You can choose a microservices-based approach and run containers or use standard monolith applications run by virtual machines.
However, it’s vital to know that different cloud services offer different scalability and optimization solutions. In the case of virtualization, you get multiple operating systems on a single physical server. With containerization, you get multiple apps running on the same operating system on a single virtual machine or server. Your cloud cost plan should take that into account, weighing the pros and cons of all solutions against the nature of your project.
Cloud cost optimization checklist – active cloud usage & monitoring
4. Rightsize proactively
Rightsizing refers to various ways of making sure that your system’s workload matches the type and size of your instances. The goal, of course, is to ensure that your system works smoothly at the lowest possible cost. There are many ways to go about this.
- Checking on the size of your instances proactively. In some projects, the set-and-forget mentality leads to needlessly big instances.
- Managing redundancies is also important. Data redundancy has its pros and cons. When done correctly, it improves the security of your data by providing backups and safe storage. When done badly, it can really drive up your cloud storage cost.
- Automate as much as you can. The bigger your project is, the more sense it makes to make rightsizing a big part of your continuous integration or deployment process your infrastructure is to fully automate the management (CI/CD) process.
- Through autoscaling, you can automatically increase or decrease the availability of computational resources. When you notice clear trends in your usage, you can schedule autoscaling way ahead and save yourself a lot of money.
- Consider vertical and horizontal scaling. For example, when you add new machines or nodes to your system (horizontal scaling), you might run into problems when each of your nodes has a particularly large overhead (e.g. as a result of using multiple tools system-wide). In that case, a smaller number of larger nodes might be a better idea.
5. Look for saving plans
No matter how well you rightsize your system you will eventually hit a wall. In a way, it’s good news, because it’s a sign that your cloud optimization efforts have really advanced. To improve your cost efficiency even further, obtain information about the saving plans of your provider.
If your system is big enough, the vendor may not want to lose you. In that case, they might even have an offer just for you. Reach out to their consultants and get all the information you can.
Your provider of development services can often assist you with that as well. As a company certified to conduct the AWS-Well Architected Framework review, we can help you gain up to $5,000 in AWS credits, should you complete the review and implement the recommendations in your AWS infrastructure.
If your system and business are predictable enough, you can consider purchasing reserved instances – that way you can get resources at a discount in return for a commitment to pay over a specific period of time.
6. Use monitoring tools
When it comes to cloud monitoring tools, there are many options, but they are not always interchangeable. A lot of vendors have their own monitoring and security tools, which are available to their customers only. There are also third-party cloud cost management tools such as Datadog, New Relic or Prometheus. It’s important to make sure that your third-party tool of choice is actually better than the one you get for free from your vendor. Once you get your tool, there are a number of things you can use them for.
- Diagnosing unexpected traffic spikes – not everything can be predicted through seasonality. Unexpected events that cause a major increase in traffic (e.g. randomly viral social media posts, events of social or political nature).
- Tagging your resources increases the amount of data your monitoring tools can obtain. You track which instances and clients used the most resources and why,
- Increasing the potency of your monitoring tools by opting for infrastructure as code – that way, you can version or reuse your monitoring setups and processes. Your new components are created largely automatically, which spares you a lot of time and hassle (less error-prone than manual setup). Infrastructure as a code goes extremely well with monitoring. Your tools can use all the available data to make cost recommendations and forecasts more precisely.
In addition to that, there are a lot of other tools that you can use. Those will be relevant to your devs. But you should be aware of the possibilities. Some of the tools are part of larger products such as Kubernetes – the well-known container orchestration system, used to make apps that are easy to deploy and manage at scale.
One is called Infracost and it is made for Teraform, software used for developing infrastructure-as-code (IaC). It shows in advance how much a given change in code will cost you. A very handy thing during your dev’s day-to-day work.
The other is OpenCost. This one is a monitoring tool that divides apps on Kubernetes by category, making it easier to see how much they cost to run. For example, you might find out that this one QA tool costs 50$ a month and is hardly even used!
Cloud cost optimization checklist – strategic decisions
Other than optimizing and monitoring, cloud cost optimization is all about making big high-level decisions that really matter in the long run.
7. Build a culture of cost awareness
So your system is in the cloud – but is your organization really in the cloud?
- Do your developers understand how your cloud infrastructure works?
- Do you have a well-developed process for monitoring and optimizing your cloud?
- Are your CD/CI processes automated as much as possible to avoid repetetive manual and potentially costly work?
- Do you avoid the set-and-forget attitude?
- Do your business and DevOps exports work together (i.e. FinOps or Cloud Financial Management) to ensure cloud efficiency?
If you can’t honestly answer “yes” to all of these questions, it means that there is still work for you to do in order to achieve optimal cloud architecture performance in the long run.
8. Embrace serverless
Serverless computing is all about outsourcing the management of servers to the cloud provider. The resources are allocated on demand. While you still need to monitor and optimize to get the best results, serverless has the potential to decrease significantly your cloud cost bill due to a number of factors:
- You pay only for the resources you use – no need to pay the full price for physical servers that may not always work at their full capacity.
- Your provider takes care of security, making it possible for you to find savings in this important area.
- Outsourcing the management of the cloud in the serverless model means that you can keep your cloud team rather small.
Of course, all solutions have their pros and cons. With serverless, you have to rely on the provider to fix all kinds of issues. Furthermore, you might rack up costs accidentally by misconfiguring your Lambda functions.
9. Create efficient app architecture
It’s not all about what kind of cloud services you choose and how you configure them. The way your application is developed is going to have a major impact on how much you will spend too. A good example of that is the case study mentioned right at start of the article, in which it was the application’s architecture that racked up cloud costs.
But that’s just one example. Another is the issue of data egress. It refers to situations when your data leaves your vendor’s infrastructure, typically traveling back and forth between different cloud regions. That incurs extra costs. Perhaps there is a way to set up your app to limit such interactions?
10. Get experts on board
One thing is for sure – you’re not going to do all that without developers skilled in cloud infrastructure. You can choose to create a team like this in-house or go for a seasoned team of DevOps experts from an external vendor. If you opt for the latter, make your due diligence. Once you have a good vendor, your cloud optimization needs could be taken care of for years to come.
Cloud cost optimization – download the infographic
And that’s the gist of it! If you want to make sure that you follow all of the cloud cost optimization strategies, make sure to bookmark this article or download the infographic below.
By the way, if you made it this far by actually reading and didn’t just skip to the checklist, you should also take a look at the video below. This CTO Roundtable event was all about optimizing cloud costs and has some unique insights from real projects. Hosted by our CTO Marek Gajda – always in search of new ways to make cloud a better place to do business.
Cloud cost optimization takes patience!
It would be great if we could optimize costs of our cloud infrastructure, generating savings and slashing the bill several times fold in the process every time. But the truth is that most of the time your results will be neither that quick nor that jaw-dropping. Cloud spending is a hard issue. However, if you stick to the three-step cloud spend plan:
- planning the optimization of your cloud environment carefully right from the beginning – starting with the choice of a provider and storage type,
- actively monitoring and optimizing during usage, looking for unused resources with the help of top cloud cost optimization tools,
- and making strategic decisions regarding your infrastructure and organization as a whole,
you will eventually optimize cloud costs and achieve optimal cloud usage. You will not be spending a penny more than you should and you will be happy to know that your system is scalable, efficient, and ready to be further expanded.
Does this prospect sound good to you?
If it does, follow through with the plan and make sure that you have some skilled DevOps engineers on board to help you out! If you want ours, just click the button below, contact us and schedule consultations.