What is cloud cost optimization? 16 best practices to embrace
Cloud pricing is complex, and there are lots of ways to waste money on services you don't need. Here's how to ensure you have just the right amount of cloud resources.
Hosting workloads in the cloud can be more cost-effective than using on-premises infrastructure. But, when poorly designed and managed, cloud computing can have the opposite effect and lead to higher overall costs.
That's why cloud cost optimization plays such an important role in effective use of the cloud. Without a cloud cost optimization strategy in place, businesses typically struggle to ensure that they're getting the most bang for the bucks they spend on cloud infrastructure -- and that their cloud environments remain cost-effective as their workloads and cloud architectures change over time.
Keep reading for guidance on implementing an effective cloud cost optimization strategy, including explanations of what cloud cost optimization means, why it matters and why it can be difficult. Then, read about 16 actionable practices for reducing and optimizing cloud spend.
What is cloud cost optimization?
Cloud cost optimization is the practice of achieving the best possible balance between cloud spending and workload performance.
To dive a bit deeper into what that means, let's examine the fundamentals of cloud pricing models. Workloads require compute, storage and networking resources to run. In most cases, cloud providers charge for the amount of cloud resources allocated to workloads, even if the workloads don't consume all of them. For this reason, it's easy to overspend in the cloud by choosing configurations that lack cost efficiency.
This article is part of
What is cloud management? Definition, benefits and guide
Cloud cost optimization helps businesses avoid this mistake so they don't waste money on cloud services.
Cost optimization vs. cost minimization
Importantly, the goal of cloud cost optimization is not necessarily to minimize total cloud spending. If it were, workloads would be at risk of failing to perform adequately due to aggressive reductions in resource allocation in a bid to minimize spending.
Instead, cloud cost optimization focuses on sustaining the workload performance levels that a business requires at the lowest possible cost. The goal is, again, to get the most bang for your buck, not to spend the fewest total bucks.
Cloud cost optimization and FinOps
These days, it's hard to mention cloud cost optimization without also mentioning FinOps, a concept and set of practices associated with managing cloud costs. Despite its name, which is short for financial operations or a combination of finance and DevOps, FinOps focuses specifically on cloud cost management. The FinOps Foundation, which advocates for effective cloud cost management and offers guidance on keeping costs in check, is an important resource for pursuing cloud cost optimization.
There is a lot of overlap between FinOps and cloud cost optimization, and the relationship between the two is a bit muddled. Arguably, however, they're different in that cloud cost optimization is a broad set of practices that can improve the cost efficiency of the cloud, while FinOps refers to a narrower framework. In addition, FinOps tends to emphasize the importance of building an organizational culture that prioritizes cloud cost management, whereas culture is not necessarily a key focus of cloud cost optimization in general.
Why is cloud cost optimization important?
Cloud cost optimization is important because cloud resources can be expensive. Indeed, a majority of IT leaders report that the cloud accounts for at least 30% of their organizations' total IT spending, according to a report by Aptum, a cloud MSP.
This means overspending in the cloud can bloat IT budgets significantly. But it also means that optimizing cloud expenditures is a powerful way to free up money that the business can reinvest in other areas, like hiring more IT staff to address the tech talent shortage or deploying AI and other new technology.
Why is cloud cost optimization difficult?
Optimizing spending in any IT domain is rarely easy. But, when it comes to the cloud, cost optimization can be particularly difficult for several reasons:
- Complex cloud pricing. Pricing for cloud services tends to be complicated. It involves many variables, such as the cloud region you choose, and some fees, like network egress costs, can be easy to overlook. For this reason, it can be challenging to gain an accurate understanding of what exactly you're paying for in the cloud.
- Variable pricing. Cloud vendors can change their cloud billing and pricing policies at any time. They might raise or lower the cost of a certain service, for instance, or change the pricing model by introducing a new type of fee. This is another reason why predicting and assessing cloud expenses can be hard.
- Lack of built-in cost controls. Most cloud service providers (CSPs) offer basic cost reporting and billing tools. Some also provide basic recommendation engines, such as Google Cloud Recommender, that can help improve the cost efficiency of workloads. But, beyond this, cloud vendors don't tell you when you're overspending or offer tips on how to reduce your cloud bills. They don't automatically alert you, for example, about unused resources that you're paying for but don't need.
- Disconnect between engineers and finance. At most organizations, the people who deploy and manage cloud workloads -- engineers -- lack deep understanding of financial concepts. This isn't to say they can't learn them, but it means that, by default, it can be challenging to enforce cost management best practices among cloud engineering teams.
In short, the cloud is an especially complicated place when it comes to managing expenses.
Cloud cost optimization best practices
Fortunately, businesses can implement a variety of steps to get ahead of these cost management challenges. Here's a look at key best practices. The list starts with basic ways to reduce cloud spending and then moves on to discuss more complex or advanced practices.
1. Monitor cloud spending in real time
You can't optimize your cloud spend unless you know what you're spending. To that end, make sure to regularly track your cloud expenses.
Ideally, you monitor spending not just once a month when the bill arrives, but on a continuous, real-time basis. You can typically do this by logging in to your cloud provider's console and navigating to the billing portal, which provides up-to-date information about your costs -- or estimated costs -- incurred to date.
2. Check for cost anomalies
As you monitor cloud spending, look for unusual costs, such as spikes in the cost of a particular cloud service compared to previous months. Deviations from baseline spending patterns could be a sign of cost inefficiencies, such as idle resources or the deployment of unauthorized resources -- a form of shadow IT described in more detail below.
3. Centralize cloud billing data
Consider aggregating billing data in a central location if you use multiple clouds. Doing so enables you to track cloud spending from a common vantage point, instead of having to log in to each cloud platform separately to view expenses.
4. Identify unused resources
Because you pay for any cloud resources that are allocated to workloads even if the workloads aren't actively using the resources, identifying unused resources is a key step toward reducing cloud spending.
For example, if you have a storage volume that isn't attached to any VMs, it's likely that the volume is not being used and could be turned off to save money. Likewise, a cloud server that is running but not hosting any active workloads could be shut down. You can always turn these resources back on later when you need them.
5. Review cloud server instance types
Most cloud platforms let customers choose from a variety of instance types when configuring cloud servers. Each type provides a different CPU and memory configuration at a different price point.
Ideally, every instance you choose provides the minimum amount of CPU and memory resources necessary to support the workloads you intend to run on the server without providing an excess of resources you don't need.
To determine whether you have any overprovisioned instance types, look for cloud servers that are consuming a fraction of their available CPU and memory. Consider switching those servers to a lower-cost instance type.
6. Use reserved instances
Reserved instances are a category of cloud server instances that provide discounted pricing. The caveat is that you must commit to using the instance for a fixed period of time, typically at least a year.
Reserved instances aren't ideal if you're not sure whether a workload will run for a long time. But, for applications that you intend to deploy for an extended period, hosting them on reserved instances can be a good way to save money.
7. Use spot instances
In a similar vein, spot instances can reduce costs for certain types of workloads. Spot instances offer deep pricing discounts for cloud servers with the caveat that the servers may shut down at any time with almost no notice.
As such, spot instances aren't good for workloads that need to run uninterrupted. But workloads like batch data processing or AI model training, which can typically be disrupted and restarted later, can work well on spot instances.
8. Tag cloud resources
In the cloud, you can tag resources with labels that help identify their purpose. Doing so is a best practice for cost optimization because it helps teams determine quickly whether a resource is needed. For example, they could reasonably conclude that a cloud server with a "testing" tag is not a critical resource and should be turned off to save money if it's not being actively used.
9. Monitor for shadow IT
In the cloud, shadow IT means cloud resources that employees have deployed without the IT department's authorization or knowledge. Since these resources contribute to cloud spending but may not be actively tracked or managed to ensure cost efficiency, it's important to identify them. You can do this by looking for resources that aren't tagged, which is often a sign of shadow IT, or that are owned by accounts that don't normally create new resources.
10. Minimize egress costs
In most cases, CSPs charge for egress, which refers to data that flows out of their platforms or, in some cases, between different cloud regions in the same platform. To minimize these costs, look for ways to change your cloud architecture or service configuration to reduce external data movement.
For example, if you currently generate data in one cloud, move it to an on-premises application for processing and then send it back to the cloud. Also, consider migrating the on-premises application to the cloud. That way, the data never has to leave the cloud, thus eliminating egress costs.
11. Use lower-cost storage tiers
Many cloud storage options are available in different tiers. Higher-priced tiers provide faster access to data, which is needed for some use cases. But, for data that you don't need to access frequently, such as archived log files, you can typically save money by switching to a lower-cost tier.
Some clouds provide intelligent storage management features that can automatically move infrequently accessed data to more cost-effective tiers. If yours doesn't, you have to move the data manually.
12. Enable cloud scheduling
Some cloud platforms and service types support automated scheduling. For example, you can often schedule cloud servers to turn on and off automatically based on preconfigured schedules.
Scheduling can save money by automatically turning off cloud resources when they're not needed. For example, if you have a cloud server that only needs to run during business hours, you can schedule it to shut off at night and turn back on in the morning.
13. Migrate to alternative cloud service types
Sometimes, you might be able to achieve equal or better performance for a given workload, while lowering your costs by switching to a different type of cloud service.
For example, an application that is currently hosted on a cloud server might cost less to operate as a serverless function, especially if the application is not continuously active. This is because, with serverless functions, you typically only have to pay for the time that a function actively runs, whereas, with a cloud server, you pay for the period the server is up, even if it's sitting idle for much of that time.
Migrating to a new service type might require making changes to your workloads in some cases. For instance, you might need to refactor a monolithic application so it can run as microservices inside containers. But the development effort necessary to make these changes could be well worth it if it reduces cloud spending over the long term.
14. Negotiate discounted cloud pricing
Large organizations with annual cloud spending in the millions of dollars can often negotiate pricing discounts with CSPs. This can be a great way to optimize spending because it reduces costs across the board.
15. Reuse software licenses
In some cases, you might be able to save on software licensing costs by reusing licenses you own for on-premises resources. For example, if you buy Windows-based cloud desktops -- cloud servers that host desktop environments -- it might be possible to apply Windows licenses you've purchased for traditional desktops to your cloud desktops. That way, you don't have to pay for additional software licenses in the cloud.
16. Implement cloud cost showbacks
To gain more granular visibility into what each team or department spends in the cloud, consider implementing showbacks. Showbacks identify which unit in your business was responsible for launching a cloud resource and, hence, is responsible for the costs associated with it. With such visibility, you can determine more easily if any groups or units are overspending.
Most cloud providers don't offer built-in tooling for configuring showbacks, but you can set them up yourself by using tagging to associate cloud resources with different parts of the business and then disaggregate cloud billing data based on tags.
A variation on showbacks is cloud chargebacks, which entail billing groups or departments inside your business for what they spend in the cloud. That's different from a showback, where you simply track spending in a granular way, while paying for cloud resources from a generic budget.
Chris Tozzi is a freelance writer, research adviser, and professor of IT and society who has previously worked as a journalist and Linux systems administrator.