Every year, an exorbitant amount of money is wasted on idle cloud resources. That is – resources that are provisioned, and being paid for, but not actually being used. This is a huge problem that clogs up cloud environments and drains budgets.
Note: a version of this blog was originally published in 2018. It has been completely updated and rewritten for 2020.
Even the Cloud Providers are Talking About It
The issue of idle resources is something that is recognized even by the cloud providers themselves. This may sound counterintuitive. Doesn’t AWS just want as much money from you as it can get? Well, maybe, yes: but the best way for them to do this is by providing you with a positive experience and the most value for your money.
Case in point: at the AWS re:Invent keynote this week, Andy Jassy spoke about a few core guidelines for organizations to follow to ensure organizations are on the path for successful technology financial management. “Start early and start small…The key is to start experimenting with what matters the most to your organization” Jassy said. He shared that a great place to start is by deleting or stopping idle resources in your cloud environment. Small changes like this can have huge impacts and benefits can increase as time goes on. Idle resources are eating at your cloud budget causing you to spend money on resources that aren’t even being used.
AWS’s cloud financial management framework mentions this among the myriad ways your organization can improve practices to reduce usage waste and optimize costs.
The Cost of Idle Resources
The typical “idle resources” that come to mind are instances purchased On Demand that are being used for non-production purposes like development, testing, QA, staging, etc. These resources can be “parked” when they’re not being used, such as on nights and weekends, saving 65% or more per resource each month. In order to fully understand the problem of idle cloud resources, we have to expand this scope beyond just your typical virtual machine.
Most non-production resources can be parked about 65% of the time, that is, parked 12 hours per day and all day on weekends (this is confirmed by looking at the resources parked in ParkMyCloud – they’re scheduled to be off just under 65% of the time.) We see that our customers are paying their cloud providers an average list price of $220 per month for their instances. If you’re currently paying $220 per month for an instance and leaving it running all the time, that means you’re wasting $143 per instance per month.
Maybe that doesn’t sound like much. But if that’s the case for 10 instances, you’re wasting $1,430 per month. One hundred instances? You’re up to a bill of $14,300 for time you’re not using. And that’s just a simple micro example. At a macro level that’s literally billions of dollars in wasted cloud spend.
4 Types of Idle Cloud Resources
So what kinds of resources are typically left idle, consuming your budget? Let’s dig into that, looking at the big three cloud providers — Amazon Web Services (AWS), Microsoft Azure, and Google Cloud Platform (GCP).
- On Demand Instances/VMs – this is the core of the conversation, and what we’ve addressed above. On demand resources – and their associated scale groups – are frequently left running when they’re not being used, especially those used for non-production purposes.
- Databases – there’s no doubt that databases are frequently left running when not needed as well, in similar circumstances to the On Demand resources, particularly non-production. The problem is whether you can park them to cut back on wasted spend. AWS allows you to park certain types of its RDS services like Neptune and Redshift databases, RDS instances and Google Cloud SQL. Make sure you review your database infrastructure regularly and terminate anything unnecessary – or change to a smaller size if possible.
- Load Balancers – AWS Elastic Load Balancers (ELB) cannot be stopped (or parked), so to avoid getting billed for the time you need to remove it. The same can be said for Azure Load Balancer and GCP Load Balancers. Alerts can be set up in Cloudwatch/Azure Metrics/Google Stackdriver when you have a load balancer with no instances, so be sure to make use of those alerts.
- Containers – optimizing container use is a project of its own, but there’s no doubt that container services can be a source of waste. It’s important that you regularly review the usage of your containers and the utilization of the infrastructure, especially in non-production environments. In the last few months, ParkMyCloud has released support for Amazon EKS, Azure AKS and Google Cloud GKE so customers can make sure their idle resources are parked.
Cloud waste is a billion-dollar problem facing businesses today. Make sure you’re turning off idle cloud resources in your environment, by parking those that can be stopped and eliminating those that can’t, to do your part in optimizing cloud spend.