The cloud offers on-demand computing resources, the ability to increase or reduce usage as needed, and the flexibility to pay only for what you use. But if you’ve been building on the cloud for some time, you know that last part isn’t exactly straightforward.
For example, leaving aggressive product features, engineering sessions, or testing projects unchecked can quickly waste thousands, even millions of dollars in a matter of days.
What Is Cloud Cost Optimization?
Cloud cost optimization is a combination of strategies, techniques, best practices, and tools that not only help reduce cloud costs but also maximize the business value of using the cloud.
It involves enhancing cloud cost efficiency by identifying and reducing mismanaged or excess resources, taking advantage of discounts to reserve higher capacity, and rightsizing computing resources to specific applications and workloads in your cloud environment.
What is the difference between cloud cost optimization vs. cloud cost management?
While cloud cost management focuses on allocating, tracking, reporting, and analyzing cloud spend, cloud cost optimization uses those insights to inform how to maximize business value at the lowest cost.
Optimizing cloud costs isn’t just about reducing costs; it’s also about aligning costs with business goals. An increase in costs is not necessarily a problem if it’s accompanied by an increase in revenue.
An increase in cloud costs is often driven by growth indicators like onboarding more customers or releasing additional features. Yet, these business activities also generate higher revenue — or at least they should. Higher revenue can often translate into higher margins, profitability, and investor appeal in Software-as-a-Service (SaaS).
In cloud cost optimization, one of the most important goals is to ensure that costs correlate with productive and profitable activities. For this proactive approach to work, we need meaningful data –- what we call cloud cost intelligence.
Yet, how you use that intel could be the key to success or failure of your cloud cost optimization strategy.
In the next section, we will examine best practices for cloud cost optimization and discuss how cloud cost intelligence can help you gain a strategic advantage.
Why Cloud Cost Optimization Matters
Practicing cloud cost optimization delivers a number of powerful benefits both in the short- and long-term.
1. Understand your cloud costs
It’s one thing to know how much you spent on your AWS or Azure infrastructure last month. It is entirely another to pinpoint how much you spent on supporting an individual customer, a team, a product, a software feature, a service, a project, an environment, etc.
Gaining this level of granular cost intelligence is the first step in cloud cost optimization. Once you do that, you’ll be able to tell where you’re spending unnecessarily and where you can invest more to get higher returns.
2. Cost savings
Once you’ve established the people, products, and processes driving your cloud spend, it becomes much easier to see two things.
- You can reduce your cloud costs by eliminating cost centers you don’t need. For example, you may decide to decommission an unpopular or unprofitable product or feature to cut costs.
- You can identify areas where you can improve efficiency. As an example, you can refactor the unpopular/unprofitable feature, or the entire application, to improve its price-performance ratio.
You are likely to reduce your cloud costs in either case. You can find out how we recently discovered $1.7 million in annualized cloud savings here.
3. Improve your margins
An important part of cloud cost optimization is evaluating your Cost of Goods Sold (COGS). Generally, the higher your COGS, the lower your gross margins and profits.
Analyzing your COGS can allow you to benchmark your performance against industry peers. Then you can tell if you are spending more than you should. This can help you embark on a cloud cost optimization path that leads to higher margins.
In SaaS, healthy margins are crucial for funding growth, attracting quality investors, and obtaining favorable financing terms.
4. Open up new revenue streams
We’ll use two examples here.
With CloudZero’s cloud cost optimization platform, you can find out which products, services, and features are popular among your users. By providing that as a service, you can generate new revenue sources you may not have known existed.
You can also use CloudZero to determine which segments of your customers deliver the highest margins. Using this intelligence, you can then refine your marketing strategy to attract similar customers to increase your margins.
5. Improve performance in the cloud
The goal of cloud cost optimization isn’t just to reduce cloud costs. Instead, it is a holistic approach to maximizing your cloud investment.
In other words, it involves slashing costs without compromising your cloud security, system performance, or engineering velocity.
6. Align costs to value
Cloud cost optimization helps you map your costs to the business dimensions you care about.
These can include specific teams, departments, products, and services. This enables you to maximize cloud utilization by prioritizing the areas that are delivering positive results.
7. Cost-conscious culture
Optimizing cloud costs is an ongoing process. By treating cost as a first-class metric, your organization can cultivate a continuous improvement mentality.
CloudZero, for instance, allows your engineers to see in real-time the effects of code changes on costs, so they can determine what technical changes reduce costs without negatively affecting performance, security, and other aspects.
8. Improve cost allocation
Moreover, implementing cloud cost optimization improves showbacks and chargebacks. With a robust platform like CloudZero, you can collect cost data on tagged, untagged, and untaggable resources.
In addition to AWS, Azure, and GCP, it can also capture cost data across platforms such as Kubernetes, MongoDB, and Databricks. This gets you a complete picture of your costs as well as who, what, and why they change.
9. Improve engineering productivity
By improving cost visibility, allocation, and budgeting, cloud cost optimization helps reduce the amount of time, effort, and resources needed to keep track of cloud costs.
With time, your engineers and FinOps team will be able to focus on their primary responsibilities, such as releasing better features to attract and retain more customers.
17 Best Practices To Optimize Your Cloud Costs
Follow these best practices to create a cloud cost optimization strategy that links costs to specific business activities so you can tell who, what, why, and how you are spending your cloud budget.
That cost visibility will then empower you to make trade-offs or pull strings so that you can allocate more to cloud resources with higher ROI and reduce unnecessary costs — or to eliminate cloud waste to the bare minimum.
1. Set up your account for monitoring
If you haven’t already, set up a master AWS organization payer account. As you create new account members, ensure their cost data rolls up into that master account. Then there will be a single source of truth for the company’s total cloud spend. Separate accounts make it very hard to track cloud costs down the road.
Next, work to capture context. There is a lot of telemetry coming out of AWS, from sources like CloudWatch, CloudTrail, and VPC flow logs. These all provide context as to what’s happening in the system. Your team needs to be sure they’re collecting this context in order to be able to tie it to billing.
Finally, start tracking your cost history. Enabling cost and usage reporting allows review of past spending, and helps create context for identifying anomalous costs.
2. Align your internal budgeting and escalation processes with business goals
A major factor in controlling costs is making sure everyone understands their budgets and goals for each project. Instead of picking an arbitrary number, engineering leaders should have conversations with executives and product leadership to understand cost requirements.
Requirements should be based on how the products or features will be packaged and delivered (e.g., Will they be a part of a free trial or enterprise plan?). These requirements will need to be referenced as tradeoffs throughout planning and development alongside other requirements, such as speed and resiliency.
3. Make cost a first-class metric
You can do this by promoting the idea of cloud cost within the organization and making it easy for everyone on the development team to see and understand actual costs. Keep cost top-of-mind as engineering decisions are made. To make cost data easy to understand, make sure:
- It is current.
- It has context.
- It can be measured.
- There is a clear definition of good and bad.
There are several key metrics that pertain to cloud cost:
- Unit cost – Understand what your unit cost is — is it cost per API call or cost per report? Whatever the unit, everyone should understand what factors affect cost and how unit cost impacts your bottom line. This metric helps inform decisions about how to spend resources in the cloud and how to charge customers, and will help you understand the ROI on your cloud investment. Spending a lot in the cloud isn’t a problem if the return on unit cost is strong.
- Idle cost – Determine the baseline cost of your system with zero customer load. This is a general measure of your efficiency. Knowing your idle cost can help you determine whether an architecture change is worth the effort in terms of the savings you can realize.
- Shared infrastructure – Shared systems can offer cost savings or engineering efficiencies, but make it challenging to split costs across multiple teams. Large organizations should consider how they will chargeback or account for shared costs.
- Cost/load efficiency curve – Calculate your cost/load curve. Do unit costs grow at the same rate as your customer base, or do they grow exponentially as you add customers? If you have an exponential growth curve, you may reach a crossover point where the system is no longer profitable. It’s important to recognize this before it occurs, so you can think through and weigh the solutions for addressing it.
- Innovation/cost ratio – Determine the ratio of R&D costs to production operations costs. Although there is no expectation of revenue for products in the R&D phase, those products will eventually go to market. If cost has not been considered during R&D, moving to production can be challenging.
4. Define other metrics important to business goals.
It is crucial that everyone in the business whose work impacts cost understands the fundamentals of the business and uses this information to drive decision-making processes.
Everyone should understand the most important goals of the organization at any given point in time. For startups, the goal may be customer growth above all else. For more mature organizations, the goal may be to increase margins.
When DevOps understands what these goals look like, it’s possible to make day-to-day and high-level decisions that center around what is best for the business alongside what is valuable to customers.
Questions To Ask / Questions It Can Answer
Cost per feature
Cost per customer and segment
Cost per app
(or cost of platform, etc.)
Cost per team
Cost per unit*
*the definition of “unit” varies based on what you are selling and how; see Unit Cost section above
Time to market
Cost per cloud service
Cost of R&D
5. Get the right data to the right people at the right time
More data is not always better; in some instances, too much data is part of the problem. For this reason, it’s worth understanding what types of data are most useful to which team members and find ways to decrease the noise of extraneous data.
For example, engineers need to be able to compare and contrast. With baseline data and the ability to look backwards, DevOps can understand whether something is broken or where an anomaly has arisen. DevOps organizations also need to be able to slice and dice data by resource and by team, as well as by feature and service. With this type of granular data, they can fix problems faster.
Finance, on the other hand, often cares more about forward-facing projections. For example, they may want to know: “How much will our cloud bill increase if we add six new customers this month?” or “How much can we expect to spend on the cloud before the fiscal year is over?” Finance will care most about return on investment — in other words, how much revenue are we getting from our investment in the cloud?
Ultimately, engineering and finance are looking at the same data, but they need to see it in different formats and be able to organize it in different ways in order to answer the questions that are most important to them in their roles. When you think about surfacing data, you also need to make sure that data is relevant — that you are able to give the right people the right data at the right time.
6. Use data to optimize cloud costs at each stage of the software development lifecycle
Too often, cost only becomes a consideration after a product has been built and launched. Ideally, cost optimization should be a concern throughout the software development lifecycle.
- Planning stage – Teams should be able to justify the budget they need and use cost data to inform product roadmap and technical debt-related decisions. This enables them to reduce unexpected spend and quickly adjust the budget when necessary.
- Deployment and operation – Teams should be able to quickly identify unpredicted spend and adjust.
- Design and build stage – Teams should have the data they need at hand to make cost-effective architecture decisions. They should be able to report on planned spend and understand their cost of goods sold (the unit cost).
- Monitoring stage – It should be possible to reassess cost by team, product, or feature and report on operational expenditures and ROI, segmented by business initiative.
Remember, every engineering decision has an associated cost. By shifting cost optimization left, each stage becomes an opportunity to maximize your cloud ROI at the earliest possible.
7. Make timely cost decisions with real-time analytics
Team members who have access to the right data at the right time can make timely changes that impact the bottom line and product quality. You don’t want to discover cost-saving opportunities too late.
Rather, you want to observe cost indicators as they change. You’ll be able to determine if your costs are trending normally, or if there are any anomalous activities that could lead to overspending.
If you don’t like what you see, you can take immediate action to prevent further losses. Alternatively, you can devote more resources to support the associated workload if it leads to higher earnings.
You will need a cost platform with real-time reporting and anomaly detection to accomplish this.
8. Weaponize cloud costs for business strategy
Most organizations default to charging customers based on the metrics they already have access to. In other words, they “back themselves into” their pricing strategy.
Instead of picking the metrics that are best for the business, they pick the ones they can already track. This makes sense on the surface, but it often becomes an issue when pricing strategies are not tied directly to cloud costs.
For example, a business that offers code scanning might charge by megabyte of code scanned, but maybe charging by line of code would make more sense in terms of business outcomes. Customer growth may lead to nonlinear cost increases in the cloud, and leave the business struggling to make up for the margins.
All features of a product should have a dollar cost associated with them.
If DevOps starts by setting up the application to measure the metric mentioned in this guide from the very beginning, then it’s possible to develop a very keen sense of how much individual features and transactions cost the business.
That gives product teams flexibility to creatively price offerings, since they will have a very clear and direct sense of how much it costs to run and scale.
Ultimately, this level of visibility enables companies to create an ideal business model and to unlock new opportunities. If you use cloud cost transparency to your advantage, you can turn price into a competitive weapon that can help you outpace competitors.
9. Capture the big picture in one platform
With multiple dashboards monitoring petabytes of data from multiple cloud vendors, it is tough to make the right decisions. Instead, use a single source of truth for your most critical information.
The unified view provides teams with complete, end-to-end visibility into costs. In addition, it makes it easier to zoom in on a specific resource. With this visibility, teams can slice and dice cloud spend and usage per resource to gain granular insights such as cost per customer, cost per feature, and cost per deployment.
10. Rightsize your cloud computing resources
Right-sizing involves finding, reviewing, and modifying cloud resources to fit the unique requirements of individual workloads and applications. You can rightsize servers for processing, storage, memory, throughput, graphics, databases, and more.
Because rightsizing in AWS offers more than 1.7 million combinations, you can use a number of cost tools to get advice on the best instance type for a given use case. While the process might take a bit of time, the results go beyond cost savings to improve performance, thereby improving customer experiences.
11. Gradually optimize tomorrow’s costs today with cloud-native design
Most organizations migrate to the cloud by rehosting (lift-and-shift migration). The move involves transferring on-premises systems into a cloud environment without modifying them. Rehosting is a fast and cost-saving option, but it may lead to moving on-premises inefficiencies to the cloud, which can lead to runaway costs.
If time, funds, and skills aren’t available to refactor your legacy applications and mission-critical workloads, you can still make incremental design changes to rid them of inefficiencies that could increase cloud waste.
12. Call and keep engineering at the cloud cost optimization table
Engineers can’t help save money if they aren’t responsible for costs. In SaaS, engineering projects, including development, deployment, testing, and issue resolution, often generate the bulk of cloud costs.
Without engineers’ involvement, it is also impossible to tag resources properly, rightsize them, or eliminate unused ones. As such, it is wise to involve engineering in all cost discussions.
When engineering has the right cost data, like cost per product feature or cost per deployment, it can determine which architectural decisions maximize business value at the lowest cost to the company.
13. Scoop volume discounts by reserving capacity
Reservation Instances (RIs) are a discount program for businesses that commit to using AWS for one or three years. These discounts can amount to up to 75% savings. Depending on your previous usage and costs, you can estimate whether long-term commitments will result in cost optimization.
14. Roll with spot instances to optimize costs even more
You can save up to 90% when you choose Spot Instances over AWS On-Demand Instances. However, Spot Instances are not cost-saving for all workloads. A few ideal use cases for Spot Instances include distributed databases, processing big data/machine learning, running CI/CD operations, and powering stateful applications.
There’s also this. Spot Instance prices and availability change. For this reason, you’d need someone or a team to monitor and select the best combination of price and volume to maximize savings and system efficiency.
15. Automate cloud spend optimization
It is both time-consuming and labor-intensive to identify, review, and monitor ongoing rightsizing and cost-optimization opportunities. Manual processes make it easy for teams to overlook opportunities. This is where automation can help. A good example is AWS Auto Scaling.
Modern cost platforms can rapidly scale down resource usage, thus costs, as your application requires fewer and fewer resources. In addition, some tools can terminate EC2 instances based on predefined times or capacity limits. Both measures are hard to take in real-time and manually without compromising performance.
16. Make continuous cloud cost optimization the new normal
Once you make cost a first-class metric, the next thing to do is nurture a cost-awareness culture. You can do this by making cost optimization a continuous process along the entire DevOps lifecycle. How?
Standardizing best practices for operating on the cloud can help with this. You can then assign cost governance responsibilities to a specific person or group to ensure accountability, consistency, and continuous improvement.
The goal is to maintain an efficient cloud system that does not rack up unexpected costs without anyone noticing until they receive a surprise cloud bill.
A Modern Cost Optimization Strategy: Cloud Cost Intelligence
The above best practices for cloud cost optimization all require a lot of data — data that is linked to specific teams and cloud features.
While many cloud cost optimization tools can help you reduce cloud spend to some degree, few have the ability to provide the detailed data needed to reasonably administer these best practices. Most cloud cost optimization software products essentially look backwards, and lack the ability to map costs directly to the activities that generate them.
They may reveal when a cost spiked yesterday (after it has already resulted in an unanticipated expense), for example. But typically, they will not be able to pinpoint the precise event or feature that produced the spike.
Instead, it’s up to your developers to pore through a lengthy report to determine what caused the spike. The cost anomaly may continue until the source is detected, and developers will waste time looking for the cause instead of focusing on more valuable work.
When you can automatically connect costs to the specific teams, events, features, or even customers that generate them, you will have moved beyond traditional cloud cost optimization to cloud cost intelligence.
Cloud cost intelligence tells you where you’re spending your money and (more importantly) what that means in the context of your business. It continuously delivers the data stakeholders need to detect and fix anomalies — and design and build cost-efficient products — automatically correlated to the activity generating the cost.
Cost data is connected to individual features, events, and teams, so there is no need to search for the cause of unexpected cost spikes. In short, cloud cost intelligence represents the ultimate in transparency, giving finance, developers, engineers, and any other relevant parties the information they need, when they need it, to control cloud costs.
You can achieve cloud cost intelligence with the help of a solution like CloudZero. CloudZero is the only cloud cost intelligence platform that empowers engineering to understand and control cloud costs. CloudZero aligns costs to teams, customers, unit cost KPIs, product features, and more — so you can stop guessing and know precisely where to pull strings to balance cost and system performance.
To ensure that the right people on your team get the right data at the right time, CloudZero:
- Pulls in both billing and resource data from across your AWS account to automatically group costs and surface insights.
- Aligns cost to business metrics, without manual tagging effort.
- Updates continuously, to give you real-time cost data.
- Sends automatic anomaly reports to the appropriate teams.
- Runs cost and resource data through a powerful data normalization and machine learning engine to associate costs with the activity or teams that produced them.
- Gives a clear picture of how your costs are trending and where you need to focus to control nonessential costs.