Cloud computing allows businesses to “do more with less”, and spin up technology resources quick and easy. However, there’s another side to all these quick, high-availability cloud systems: Cost. In this article we are going to cover how to proactively monitor and reduce cloud spending.
In a recent CIO.com survey 94% of enterprises reported that they are over-spending on cloud resources. This includes under-using and over-provisioning of cloud resources. To add to that confusion, 60% of respondents said they currently have multi-cloud infrastructures! Multi-cloud means even more billing, more accounts, and more resources to manage!
NOTE: these tips are multi-cloud as well. But our preferred cloud provider is AWS. Some tips might be easier to implement in AWS than other tools.
One common problem is that customers can see unexpected spikes in their cloud billing. Resources that started life under the AWS free tier may be ignored until they start accruing billable time. Or a small configuration change might result in thousands of unexpected calls to a serverless function.
And what happens when that app you’re developing has a testing/review process that could take weeks? Are all your cloud resources going to remain up the entire time? Is that required? Are you even aware that those resources are still consuming budget while you multi-task with support issues?
Here are a few tips for controlling budget when you’re establishing a cloud presence.
1. Enable the Budgets Feature
The very first thing on your To Do list, as soon as you establish your cloud account, is enable the budgets feature.
In AWS the Budgets feature can be set for dollar thresholds. Budgets can send notifications when budgets hit certain levels (50%,75%, 100%) to help keep an eye on your cloud spend.
AWS also has a cost forecasting feature. They compare this month’s use versus the previous month, and highlight major increases. This will help you catch issues before the end of the month!
Always set budget alerts in all cloud instances. This single action can help your team save thousands of dollars in the long run.
2. Use Infrastructure As Code For Provisioning
Human error is a major source of resource misallocation in the cloud. Use a tool like Terraform to take remove the error factor.
Terraform is a Infrastructure As Code (IIAC) framework that allows you to:
Turn web console clicks into source-controlled reproducible terraform files.
Reduce the errors from creating the wrong resources.
Visualize your architecture.
Terraform can also help control cost. When all of your resources are under terraform templates, those resources can be torn down and recreated in minutes!
Imagine having your application architecture fully Terraform templated. You could tear down the resources and when the app needed to be tested it could be recreated again. You would be saving the cloud spend during the de-provisioned time, which can equate to hundreds or thousands of dollars.
Another good reason to use IIAC: security. If common templates are being used when creating networks, servers, etc, you can enforce security best-practices by default.
3. Resource Tagging
Resource tagging is supported in all 3 major cloud providers. Let’s be honest…it’s not everyone’s cup of tea. Engineers just want to spin up, develop, and test their software as quickly as possible. But haste makes waste: having the proper tags can allow your business to accurately measure cost and even deprovision cloud resources based on their application, project, cost-center, etc.
That’s our top 3 quick-win suggestions for avoiding getting burnt by a big cloud bill…no sunscreen required! If you would like to adopt some of the best practices mentioned here, feel free to schedule a free consultation with us!