19 May 2022
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 us realize just how many companies struggle with cloud cost optimization. Today, we’re 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.
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.
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 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.
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.
Cloud cost optimization takes patience!
It would be great if we could optimize our cloud infrastructure, generating cost 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. However, if you stick to the three-step 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 with the help of top cloud cost optimization tools,
- and making strategic decisions regarding your infrastructure and organization as a whole,
you will eventually 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.