Cost Management KPIs
Cost Management: Tagging
AWS Cost Allocation
Monitoring for underutilized services in AWS
The course is part of this learning path
This course covers the core learning objective to meet the requirements of the 'Implementing effective cost management solutions in AWS - Level 3' skill
- Apply a cost allocation tag strategy that allows AWS resources to map to business units
- Create a way to plan AWS costs to revent them exceeding a budgeted amount
- Evaluate a mechanism to monitor when underutilized AWS resources are present to optimize costs
Allocating costs is not just about distributing expenses across a business. It’s more about how costs and expenses are viewed and understood by everyone in the organization and who is accountable.
Establishing a cost allocation strategy is one of the essential things in a business that needs to be tackled before expenses start to stack up.
Without a consistent allocation strategy, you have a big pool of costs with no way to split them up or to identify what costs belong to which team.
In a cloud environment, it is important to ensure responsibility is shared across all users for every task and goal, where they are of a technological or a financial nature. This is important because you want to avoid a mindset of "someone else will pick it up" in your organization and instead make sure that everything has a clear owner.
The goal is to make every user aware and accountable for their individual cost and usage.
You need to establish a strategy that allows your teams to link business metrics to their spending to enable unit economics and conversations about the value of spending to the business.
The path to cost-effective products and applications, as well as rational and informed purchasing decisions, lies in a cost-conscious mindset and a distribution of responsibility among all users in your cloud.
The best way to achieve cost-awareness is by improving cost visibility.
There are different ways and strategies to accomplish that. For example, some companies put up physical screens to display the current metrics. Most of the time, a dashboard is used that shows the status of service usage, number of logs or issues, and basically every other metric that can be tabbed. This does not have to be a physical screen or a big display in the middle of the room. In most cases, the dashboard can be seen from any other device that has the right permissions.
Another strategy is to send out reports via email on a regular basis. With AWS this can be done automatically.
And then there are some who have developed a whole gamification system, tailored to their organization structure, to boost competition internally in a playful way to increase excitement.
Usually more than one of these strategies are applied at the same time, to see what works best for the individual organization and to find out what does not work so well.
One best practice method is sharing a report with the teams in charge and explaining the bills to them accordingly, the term here is the showback or the chargeback method. However, to apply this method, it requires a certain level of maturity of the business and autonomy of the teams in the company.
Talking about maturity in a business context, let's take a quick detour and clear up what it is exactly when we talk about maturity in a company.
When talking about a company, the term “maturity” is a term that many people with a technical background often encounter first when they learn about financial management strategies or FinOps.
It is not solely a FinOps term but is a crucial part of the FinOps lifecycle or any genuine cost optimization strategy, as it displays the importance of a steady and continuous implementation.
When introducing a cloud financial management strategy, or FinOps, into an organization, it is advisable for an organization to take small steps to ensure that it successfully builds its internal maturity.
As a general rule, such a strategy is not a switch that can be turned on from day one but should instead grow hand-in-hand with an organization's cloud maturity.
The maturity of an organization can be determined by the so-called crawl-walk-run framework.
This framework describes the three states of a business, which are crawling, then walking, and finally running.
I’ve prepared a table for you for a better understanding of this.
Here you see the three phases and how a business behaves on different levels.
The crawl phase is for companies that are rather immature, while the Walk and the Run phases represent the mature and even more mature organizations within this framework.
The left column contains some indicators.
The first is “visibility & allocation of cloud spend”.
A crawling company typically must rely on invoices and a cumbersome and manual allocation strategy.
A more mature company in the walking state is able to provide visibility and refine cost allocation down to the day.
And a company in the run state has its numbers sorted down to the minute and can track them precisely.
The next indicator is “Team budgets”.
The more mature the company, the more individual responsibility their teams hold.
An immature business most likely won’t be able to delegate budgets to their teams.
A walking company will provide their teams with budgets.
But a running business enables its teams to spend and track their finances autonomously.
This result can be observed directly in our next indicator, which is “committed savings”.
The more mature the company, the more likely it will achieve higher savings, as you can see by the numbers in the table.
Our last indicator is “underutilized resources and services”.
Finding those and getting rid of them is fairly hard to do if a company is at an early stage, since normally, there are many other things that require full attention.
Therefore, the best a business in the crawl state can do is find and remove underutilized services every few months.
The more often a company can do so, the more likely it can be considered a mature company.
Okay, now that we covered this, let’s get back to the previously mentioned best practice method to communicate bills to your teams.
This method breaks down into a so-called showback and a chargeback.
For visibility reasons, a company is interested in communicating its expenses and resource usage with all its teams or cost centers, usually in the form of a report.
This is done by either the showback method or the chargeback method. Both strategies use bills to analyze expenses. The difference between them is that with the showback method, your teams are looking at an already paid bill, while with the chargeback the bill is split according to each team and the team receives their own bill that needs to be paid.
In the words of Betty Whittle, Marketing Communications Writer at Appito, “Showback leaves a bill on the table for analysis; chargeback leaves the same bill, but requires payment.”
However, bills alone are only half the story. Bills display costs, but more importantly, what caused those costs.
If cost allocation is done correctly upfront, an invoice can be analyzed to determine the exact service or resource that incurred the cost in question.
This is made possible by tagging each resource in the cloud environment. Just note now that it is mandatory to tag resources and cost drivers in the enterprise before either showback or chargeback can be applied.
Driving the chargeback method requires a certain maturity of the company, as it is the most advanced method. Therefore most businesses start with the showback method and analyze their expenses afterward.
Later, they can move to chargeback once they gather enough experience and information to do forecasts and plan budgets.
The aim here is to be able to pass the bill to the teams and make them more independent and accountable for their own expenses.
The point of Cost Allocation is to gain transparency and self-determination across the company.
When talking about the maturity of a company, it means that a company has advanced to a level where teams have the freedom to self-administer their financial choices as long as they reach their goals.
Over time, expenses will not only be trackable but start to become forecastable.
The company can distribute budgets to their teams and let them make decisions on resource usage and further expenses.
This way, the company will develop a culture of more autonomous teams and more freedom to optimize expenses across the company.
Once a company can let their teams make financial decisions on their own, they can focus on business expenses that concern the whole company.
Expenses like enterprise customer support and additional IT labor costs are unavoidable when working with a cloud environment.
The best way to manage those corporate spendings is to apply a shared costs model and distribute the costs across the business.
There are typically three ways to split up shared costs.
- Proportional Split: The individual usage of each team is known, and an allocation can be made based on the relative share of total costs.
- Even Split: The total amount is spread evenly across all the teams.
- Fixed Split: Teams will be charged a fixed percentage, which in total will be 100% of the total costs, so each team gets a percentage that they have to pay.
A mature company would usually distribute company costs proportionally.
However, this requires good visibility and tracking of resource usage, as we have already explained!
Alana Layton is an experienced technical trainer, technical content developer, and cloud engineer living out of Seattle, Washington. Her career has included teaching about AWS all over the world, creating AWS content that is fun, and working in consulting. She currently holds six AWS certifications. Outside of Cloud Academy, you can find her testing her knowledge in bar trivia, reading, or training for a marathon.