Picture this. Over 90% of organizations use the cloud in one form or another, according to O’Reiley’s research.
Cloud computing is so popular because of its flexibility. Because you can access cloud computing resources on-demand, you can automatically increase or decrease resource usage depending on your workload, which is incredibly appealing — and quite different from traditional IT infrastructure.
In 2023, controlling cloud spend is one of the greatest challenges for cloud users today. Only three out of ten organizations can identify exactly where their cloud spend goes, according to the latest CloudZero State of Cloud Cost Intelligence report.
This screams that cloud cost allocation has failed somewhere. Here’s what we mean.
Table Of Contents
What Is Cloud Cost Allocation?
Cloud cost allocation is the practice of assigning cloud costs to the specific business units, such as a department, team, or individual, within an organization. This helps organizations understand where their cloud spending is going, which enables them to make better decisions about their cloud budget.
Cloud cost allocation is an essential process for organizations that use cloud services for several reasons, including:
- Supports cloud financial management – It enables cloud users to proactively calculate, track, and report cloud resource usage and associated costs
- Increases cloud cost visibility – Practicing it enables an organization to have better visibility into the specific people, products, and processes that influence their cloud spending.
- Fosters accountability – Cost allocation in the cloud holds specific people, products, and processes responsible for cloud resource usage and related costs.
- Encourages a culture of cloud cost optimization – Through cost-awareness and treating cost as a first-class metric, teams learn to build cost-effective solutions from start.
- It helps shift cloud cost management left – For example, by helping engineers understand the cost impact of their technical decisions, they can make cost decisions that prevent overspending at the technical level — before it becomes a finance, CFO, or board-level problem.
- Helps reduce unnecessary cloud costs – By exploring who, what, and why cloud costs are changing, teams and leaders can identify cost-saving opportunities.
What Is AWS Cloud Cost Allocation?
This simply means practicing cloud cost allocation within the Amazon Web Services (AWS) environment.
Ultimately, practicing accurate cloud cost allocation can help you understanding where your AWS cloud budget is going.
You can better understand the AWS Cost and Usage Report, Cost Explorer data, and other cost insights in terms of your organization’s cost centers — not just by AWS services.
For example, you can more confidently answer questions such as:
- What is our cost per individual customer, per AWS service, per internal team, per project, etc.?
- How much does it cost to build and deliver this product feature with this AWS service?
- Which product (or service) has a higher margin so we can focus more of our market efforts towards it?
- Which team or department is incurring the most AWS cloud spend and why?
In the next section article, we share some straightforward cost allocation best practices for the cloud that you use right away.
Cloud Cost Allocation: 3 Best Practices To Practice Right Away
By implement the following cloud cost allocation best practices for AWS, you can begin seeing better cloud financial management results.
1. Establish a cost structure using accounts
On its own, your cloud infrastructure is just that — infrastructure. To start accounting for your cloud spend at a unit level, you have to put it into business context.You can do this by linking the resources you use to key business metrics.
One way to achieve this is with account segmentation — using multiple accounts to establish cloud cost structure.
Some years ago, all AWS resources owned by an organization had to be managed in one account. As resources increased, it became incredibly difficult to monitor the use of those resources.
Today, Amazon allows (and encourages) the use of separate accounts as a best practice for keeping costs and resources streamlined.
We recommend creating separate accounts for each product, environment, and/or team.
Segmenting accounts in this way improves visibility into your cloud costs. That means you can easily pinpoint how each environment, product, team, or feature is contributing to your total cloud spend.
2. Use tagging to connect key business metrics
Another way to add business context to your cloud costs is by tagging, or categorizing your cloud resources. Tags are the main vehicle for imparting business logic onto cloud resources.
By using the tagging function, you can categorize, filter, and sort resources based on keys and values. As examples, you can tag resources according to their environment, the team or department using them, or the features they support.
Amazon introduced tags to AWS in 2010 and the function has become even more robust since then.
In fact, you can use native tools such as the AWS Resource Groups, AWS Tag Editor, AWS Cost Categories, and Service Control Policies to add, edit, and delete your AWS cost allocation tags.
Yet, here’s what you’ll want to do to implement an effective tagging strategy:
Define compulsory cost allocation tags.
Tagging only works well if your team is using a global tagging policy across AWS accounts and across multi-cloud environments.
At a minimum, you need to understand three things about every single resource that’s deployed into your environment:
- The purpose or function of the resource. It’s not enough to say that a resource is a database. Instead, identify the service that is using the data in the database. That is, what service does the resource support?
- The owner of the resource. If something goes wrong with the resource, what team or department should be responsible for it?
- The environment in which the resource is used. Is the resource a production system, QA system, or other system?
Each resource should have cost allocation tags that provide information about these three things, at the very least.
Plan for containerized workloads
Containerization offers a lot of benefits, such as reduced overhead, greater efficiencies, and more consistent operations.
One big downside is cost visibility. So, make sure you utilize whatever tagging constructs your containerization platform provides (e.g. labels for Kubernetes).
Not only should you ensure workloads are “tagged” within the containers, but these tags or values should align with the compulsory AWS tags described above.
This will enable you to not only understand your spend within the containers, but will also let you more easily combine it with your non-container spend for greater business alignment.
Create a corporate tagging policy
Ensuring that tags are created consistently in the same format and with the same keys and values is critical for effective tagging.
One reason for doing so is that AWS tags are case-sensitive. The same tag name in uppercase and lowercase letters will be read as distinct tags.
For example, “devops” is a different tag from “DevOps” in AWS. This is why your policy should include clear rules for adding new tags.
A global tag template is also important if you work in a multi-cloud environment because, although all cloud platforms allow tags (or labels), there is no uniformity between platforms.
For example, whereas AWS tags are case-sensitive, only lowercase characters can be used on the Google Cloud platform, and case-sensitivity is mixed on Microsoft Azure.
Similar variations exist for key and value lengths and the use of special characters, as you can see in this table:.
Amazon Web Services (AWS)
Google Cloud Platform (GCP)
Keys are case-insensitive
Values are case-sensitive
Lower case only
Max key length in characters
Max value length in characters
Supports numeric characters as well dashes and underscores
All, except >, <, ?, &. /.
The solution is to use the lowest common denominators across platforms:
- Lowercase letters
- Maximum key length of 63 characters (if you use Google Cloud) or 128 characters if you use AWS
- Maximum value length of 63 characters (if you use Google Cloud) or 256 characters if you use AWS or Azure
- Letters, numbers, and the special characters +, -, =, ., _, :, and @
Here’s one more.
Publicize and enforce the tagging policy
Once you have defined the required tags that must be added to any resource, it’s important to get all engineers and developers on board with the tagging policy.
Be sure to explain why it’s important to use these tags and how they help you understand cloud spend. Also, do give your team some time to adjust to the new rules before enforcing the policy.
You can use automation to enforce those tags by automatically quarantining or removing untagged resources after a specified period. This way, developers and engineers are reminded to adhere to the policy and best practices at all times.
3. Establish a shared understanding and responsibility for cost
Beyond tagging and implementing structures through accounts, having a shared understanding and responsibility for cost is important.
Organizations that successfully manage their AWS investment usually have some type of metric — budget or a unit cost perhaps — to gauge performance, but there’s a clear expectation that everyone is responsible for costs.
Like any other operational metric performance, such as security, for example, each team should be required to meet cost objectives when building systems.
Achieve Accurate And 100% Cost Allocation In AWS With CloudZero
Shared AWS costs. Multi-tenant environments. Untagged and untaggable resources. Hybrid cloud and multi-cloud costs. Understanding, controlling, and optimizing your cloud costs can be challenging.
You may also have non-uniformly tagged resources spread across multiple AWS accounts.
How do you structure and organize such an environment in the least resource-intensive way?
You are not alone. Other cloud users like you told the 2023 State of FinOps report that they want to empower engineers to take cloud cost action, use unit economics, accurately forecast spend, and fully allocate cloud spending.
Credit: 2023 State of FinOps – FinOps Foundation
In that case, CloudZero can help. With CloudZero’s AI-powered, Cost Intelligence approach, you can:
- Map costs to the right cost centers – CloudZero adds context to your cloud costs so you can easily link costs to the specific people, products, and processes that incurred them.
- Perform unit economics – Automatically break your AWS costs into unit cost insights, such as cost per customer, per team, per project, per service, per product, etc.
- Empower engineers to take cost management action: Your technical team can view cost per software feature, per environment, per deployment, per dev team, etc.
- Get cost allocation intelligence by role – View your cloud cost insight in the language of Finance, engineering, and FinOps.
- Accurately allocate 100% of your cloud spend – Perform robust showbacks and chargebacks to help teams use cloud resources more responsibly
- Encourage continuous cloud cost optimization – Empower engineers to innovate, experiment, and release better products without sacrificing profitability as a business.
- No tagging is required here – View the costs of tagged, untagged, and untaggable resources in one place to get a complete picture of your AWS costs.
- Accurately allocate shared costs in AWS – Understand your costs per tenent in a shared environment, services, and more.
- Budget and forecast your cloud spend – You get robust planning tools, real-time cost anomaly detection, and context-specific alerts via Slack.
Want to spend less time digging and stressing and more time making informed cloud cost decisions? With CloudZero:
- Remitly allocated 50% more cloud costs without manual tagging
- MalwareBytes and SeatGeek save 6-10 hours per week allocating cloud costs
- SmartBear used Cost per Customer to revise its pricing strategy and successfully raised its revenue
- Drift reduced its cloud costs by $2.4 million while DemandBase used its 36% drop in cloud costs to justify $175 million in funding.