Ask the experts: Tagging in AWS to improve cost allocation and usage optimization
This week, we tackle questions about tagging AWS resources and its benefits. Let’s explore how tagging in AWS can deliver huge value from a cloud cost management and optimization perspective.
Our team answers a lot of these cloud cost and usage-based questions daily with our customers. We believe these answers can assist different roles across an organization. It could be IT, operations, finance, or anyone empowered with cloud cost management decisions. So, we’re going to start publishing answers to these burning questions within this series to help as many folks interested in improving cloud cost management as possible.
A bit about tagging in AWS
Tags can be used to identify a source of cost or usage by any variety of reportable dimensions, like environment, department, customer, etc. They use a key and value structure to give a little more information and context behind resources.
You can tag each AWS resource with up to 10 trackable dimensions. When you combine tagging data with billing data provided by AWS, you can run cloud cost management tools, like Cloudability, to create reports showing AWS spending according to each of those dimensions.
For example, tagging each EC2 instance in reference to a specific department lets users connect the costs of running those instances to the departments responsible for them. So, the production team can see how much it costs to run their apps, while separately, development teams can know what it costs to run their prototypes and staged products.
Tags can be used to identify any reportable dimensions that an organization needs to better understand their cloud spending. The more users can tag their resources, the more granularity they gain toward reporting. We’ve surfaced additional tips on tagging in AWS with our free eBook.
That all said, let’s get to answering some questions from our customers and community.
Question 1: How can I use tags to tie my AWS costs into my business KPIs?
Tags allow users to associate different dimensions to AWS resource’s cost or usage data, giving users more context to relate AWS resource costs and usage back to the business. Tying AWS costs to a particular KPI (Key Performance Indicators) requires thorough tagging of resources that belong to teams that are being evaluated by said KPIs.
Here’s an example of EC2 instances tagged by environments that they are associated to, like production and staging. This single dimension starts to add color to each EC2 instance, telling folks who might be responsible for its usage, cost, and upkeep.
If a KPI for your app is to create net new users per month, a properly tagged environment can allow you to pull up all costs related to running that app (a tag for the product or app name), the team responsible for the app (a tag for the department or team), and where those resources exist within your cloud (a tag around infrastructure).
This granular look at AWS spending can shed a lot of light on how much it costs, cloud-wise, to generate new users on the app for the department. If the department were to make adjustments to those AWS resources, environment-related tags lets them know where those resources live and relate among others being used by the business.
Here’s an example of EC2 costs differentiated by environment tags. With a solid cloud cost management tool, like Cloudability, in place, users can click on a particular tag to dive deeper into investigating those costs.
The rule of thumb here is to try and tag as many AWS resources as you can, whether through a stringent policy, or via programmatic means, as we’ll cover below. It’s a fundamental way of understanding how AWS resources costs and usage relate to the business and can lead to generating meaningful reports that can start the right conversations about optimizing AWS to improve KPIs.
Question 2: What’s a good way to ensure AWS tagging automatically?
As hard as we try, humans are prone to error. So, with AWS tagging, we are in favor of automating tagging as much as possible. Encourage teammates to tag their newly-created AWS resources as thoroughly as possible. There are up to ten key/value pairs, so make the most of them!
Before going tag-crazy, be sure to build the tagging strategy and policy with the input of decision makers and stakeholders. This could include DevOps, engineering leads, product leaders, finance, and more. Gut check here: if the bill goes up, who’s going to care? These folks should be involved.
For those who don’t have the time to program in-depth tagging scripts, you can rely on tools like Puppet and Chef to help tag your AWS environments.
Some resources can be difficult to tag, such as AWS EBS volumes. For folks who are struggling with those, we have two solutions that we recommend when tagging EBS volumes. Here’s another bit of documentation that dives deeper into other challenging AWS spending to tag.
Question 3: What’s the best way to allocate AWS costs and usage properly for shared resources?
By shared resources, this user is likely talking about AWS resources that might be used by multiple teams within an organization. If this is the case, cost allocation is only as accurate as the tagging involved.
There are really basic cases, where costs of a single AWS resource, like a single S3 bucket, can be split amongst participating teams tagged to that resource. In a similar example, operations folks can pre-plan to spin up multiple S3 resources, tagged by specific, billable teams, assuming they know how many different departments, projects, environments, and other organizational factors are involved.
Our recently-updated Cost & Usage Analytics measures can help users get down to the gritty detail of shared resources as well. Check out our introductory article on these measures to learn more about digging into cost and usage data at the resource level.
The bottom line here is for folks managing the usage and costs of AWS resources to plan ahead to employ a detailed tagging policy to capture all the different use cases and teams to allocate costs to. AWS resource usage data can also be associated with the teams responsible and, depending on how that usage data looks in relation to business goals, usage optimization conversations can start on the right foot.
Submit your cloud cost management questions
AWS tagging is just one part of the greater cloud cost management challenge. We’ll cover more topics, like optimizing AWS resources, AWS products, Reserved Instances, and more in future articles.
If you have any questions for the crew to answer, feel free to let us know on Twitter
We’re looking forward to exploring more of the ins and outs about cloud cost management with everyone. Stay tuned.