Stage II of AWS Cost Efficiency: Cost allocation and chargeback
The FinOps Journey:
(EDITORIAL NOTE - Annotated in 2019 to show this post's role on the path to the FinOps cloud operating model.)
Tagging has always been — and still is — essential for cloud cost visibility. Under FinOps, tagging has been placed under the first stage: Inform. The goal is to understand fully loaded costs, which are the true costs for operating in the cloud. These costs are amortized, reflect the actual rates a company is paying for cloud resources and are allocated correctly within the company.
Find out more by reading FinOps: A New Approach to Cloud Financial Management. If you’re using AWS, you can also check out our AWS Tagging Strategy Best Practices e-book.
Welcome back to the Five Stages of AWS Cost Efficiency series. Now that you’ve ensured basic cost visibility by going through Stage I of AWS Cost Efficiency, it’s time to start asking the question: “Where are all those dollars going?”
In this stage, we’ll focus on splitting up your AWS bill by things like Business Units, Products, Cost Centers, and Roles. This will give your finance teams the ability to chargeback, and your operations teams the ability to optimize the appropriate areas. Perhaps most importantly though, it will give each individual budget stakeholders a view of their spending broken out from the total, and foster a culture of accountability.
Get consensus on the taxonomy
We’ll start with defining a taxonomy based upon how you want to communicate data about your spending. This can range from anything to cost by environment, to cost by product tier, to cost by department. The goal of the taxonomy is to answer questions relevant to how you need to report. For example, “how much are we spending on staging, dev, and test environments?” or “which team is most efficient with their spending?”
It’s crucial that you involve stakeholders from finance, operations, and engineering in this stage as everyone will want to track different things—for example, finance might want to split by cost centers while engineering might want to break instances down by role.
Tools for splitting costs
Once you’ve decided how you want to split the costs, you can use tags and linked accounts to get the job done. Linked accounts offer the cleanest lines in separating costs, but limit you to a single reporting dimension. You can achieve finer granularity by applying tags, but there are nuances to tagging and not every resource can be tagged. Keep in mind that tagging is not retroactive, and you only get 10 tags per resource— so it’s it’s generally a good idea to settle on 3-5 consistent tags as early as possible. You may even want to consider a tag-or-terminate rule to enforce consistency.
AWS cost allocation model
We recommend you automate tagging as much as possible using tools like Puppet, Chef, or Cloud Formation and keep an eye out for untagged resources.
Building your AWS cost allocation reports
After you’ve segmented your costs across accounts and tags, you can generate spending reports specific to the needs of individuals within your company. Folks in Operations may want AWS cost allocation reports by department split by linked department accounts; folks in Engineering may want to filter their costs by service or role tags; folks in Finance may want to do each of the above and more.
You can build the cost by tag or linked account reports right in Cloudability, or use the API to pull Cloudability data into Google Sheets.
Sit back and watch efficiency increase
Put a daily report of relevant spending in front of an engineering team, and an amazing thing happens: they start to spend more responsibly, on their own. The concrete connection between the launch of 10 large instances today and the increased bill tomorrow is a powerful thing. This accountability can mean hundreds of thousands of dollars— or millions of dollars— over a few years, depending on the size of your infrastructure. Stage II makes it all possible.
Once you’ve split up your bill, provide daily reports to all members of your team who can affect spending...then sit back and watch efficiency increase. Ideally, use something like Cloudability Views to give them access only to their portion of the bill so there’s less noise to process.
Stage II is a big one. There is a lot of planning and implementation to be done, but this really is a crucial step. The hierarchy that you put in place now is foundational for the work you’ll do in future stages of The Five Stages of AWS Efficiency. Consistency and completion are key here, as analytics are only as good as the data that fuels them.
In summary, here’s a checklist for completing Stage II: AWS cost allocation and chargeback:
- Create untagged reports
- Share tag reports in your organization
- Set up Cloudability API to pull data into other systems
- Define Account Groups of BUs, Products, Environments, Org Chart, etc.
- Group each account into the above Groupings
- Create Views based on Groups you’ve defined
- Assign and Restrict Views to Users
Phew, that's a lot. To get started, log in or start a free 14-day trial of Cloudability Pro; once you've gone through these steps, the question that brought you here— “Where are all those dollars going?”—will be answered. Congratulations! Take a quick break to catch up on everything else, and come back next week to dive into Stage III: Optimizing EC2 Usage.
For more information about the Five Stages of AWS Cost Efficiency, check out these blog posts: