Today, I’ll be covering how AWS tags can help you keep track of and monitor your AWS billing costs with the granularity and depth needed to reduce and optimize your AWS costs.
Best Practices for Managing and Tracking AWS Costs
Most organizations define and implement some sort of cost allocation model to account for and understand their spending associated with their AWS resource usage. Common models, include:
- Account-based: A model that requires the least amount of effort and provides high accuracy for showbacks and chargebacks. This is suitable for organizations that have a defined account structure (and are consistent with the recommendations of the Organizing Your AWS Environment Using Multiple Accounts whitepaper).
- Business Unit or Team-based: Cost are allocated to teams, business units, or organizations within an enterprise. This model requires a moderate amount of effort, provides high accuracy for showbacks and chargebacks, but is only suitable for organizations that have a defined account structure (typically those using AWS Organizations), with formalized delimitations between various teams, applications, and workload types.
- Tag-based: This model requires more effort compared to the previous two but can highly accurate and granular analysis suitable for showback and / or chargeback. In practice, the accounting structures and workflows of organizations and teams using AWS rarely maps directly to the AWS structures associated with other models. In practice, most organizations find a tag-based cost allocation model offers the best choice if showback and chargeback are core to a cost management strategy.
Read more on the cost allocation strategy choices for AWS: Building a cost allocation strategy – Best Practices for Tagging AWS Resources.
AWS Costs Can Spiral – Tags Offer Granular Insight
A well-structured tagging strategy allows businesses to have deeper cost visibility, allocate expenses accurately, and enhance accounting governance. However, beyond day-to-day cost control management, AWS tags offer a simple yet powerful way to categorize resources, track usage, and optimize costs long-term.
Many organizations are increasingly taking a hybrid-cloud and/or multi-cloud approach to their IT usage – mixing their AWS, and other public cloud usage, with on-prem infrastructure and other alternatives. Workload repatriation (moving apps and workloads from public cloud to on-prem) is currently a hot topic, there can be many drivers beyond cost for this such as performance or data security needs. However, cost is often a significant factor.
The granular visibility AWS tags provide on AWS billing costs can help organizations make data driven decisions on cloud-exit, multi-cloud, hybrid and repatriation strategies. Tags offer a mechanism to get the granular insights on the costs associated with individual workloads necessary to evaluate workload repatriation, migration or modernization.
What are AWS Tags? The Details
AWS tags are key-value pairs that you assign to AWS resources to help organize, manage, and track them. Tags provide additional metadata about the resources allowing better resource management and cost tracking. Each tag is a label consisting of a key and an optional value. Not all services and resource types currently support tags (see Services that support the Resource Groups Tagging API).
It should also be emphasized that tags are not encrypted and should not be used to store sensitive data, such as personally identifiable information (PII).
Tags can be used in many different ways to optimize AWS environments and assist automation workflows, for example: you can use AWS Lambda and tag EC2 instances with AutoShutdown=True and then configure a Lambda function to stop instances after business hours, reducing unnecessary costs automatically. Today though I’ll focus on cost allocation tags.
Cost Allocation tags are a subset of tags used by AWS to help filter and track costs within tools such as AWS Cost Explorer.
AWS Cost Allocation Tags – in Brief
AWS uses “Cost Allocation” tags to organize resource costs on your cost allocation report so that you can categorize and track your AWS costs at ease.
Types of Cost Allocation Tags
- AWS-generated tags
- User-defined tags
While you can use the same key across multiple resources, the value of the tag should be unique. There are usage requirements and limits on the number of user-defined tags that can be added to an AWS resource (see: Tag naming limits and requirements in the AWS General Reference guide). AWS generated tags do not count against the user-defined tag limits.
You can learn more, here: Organizing and tracking costs using AWS cost allocation tags – AWS Billing
AWS Cost Allocation Tags and AWS Cost Explorer
AWS Cost Explorer offers users a primitive overview of their costs and some filtering based upon Cost Allocation tags, see: Getting started with Cost Explorer – AWS Cost Management for details. IT Admins manually checking AWS Cost Explorer can access a Cost dashboard showing:
- Their estimated costs for the month to date
- Their forecasted costs for the month
- A graph of their daily costs
- Their five top cost trends
- A list of reports that they recently viewed
Those looking for more detail usually invest in custom development using the AWS Cost Explorer API, see: Using the AWS Cost Explorer API – AWS Cost Management or leverage an out-of-the-box integration available within enterprise monitoring tools such as eG Enterprise.
What’s the Difference between AWS Budgets and Cost Allocation Tags
What is Showback vs Chargeback?
Showback is a process that reports IT costs, while chargeback is a process that bills departments for those costs. Showback is basically the practice of reporting and visualizing costs by department, team, or project without necessarily enforcing actual chargebacks.
Showback data is particularly useful input for negotiating service level agreements and establishing chargeback policies.
Showback is sometimes termed “Shameback” as the visibility can encourage a culture of cost-control and scrutiny by exposing high and overspending workflows, teams, projects and so on.
AWS Cost Allocation Tags help you track costs by team, project, or environment, providing detailed cost breakdowns via custom reports in AWS Cost Explorer or an enterprise product such as eG Enterprise. They are essential for chargeback, showback, and granular reporting.
AWS Budgets, on the other hand, are for setting spending limits and alerts, helping you monitor and control costs rather than analyze them in detail. AWS Budgets can alert you when cumulative spending is high but don’t directly help with internal cost distribution. An introduction to AWS Budgets is available, see: Best practices for AWS Budgets – AWS Cost Management.
How to Configure eG Enterprise to Monitor Costs Using AWS Tags
The ”AWS Billing by Tag” test within eG Enterprise can be controlled by a number of parameters. See Figure 1.
Note that this test can be scheduled to run at customized frequencies. Beyond simply collecting current costs for the month, eG Enterprise also collects the costs during each measurement period. This means that IT admins can get proactive alerts on cost changes, without waiting for the total bill to reach a threshold (which could be several days away).
Automated Alerting for Resources Tagged with AWS Cost Allocation Tags
Using an enterprise monitoring platform such as eG Enterprise allows you to get alerts on billing by tag without having to invest in AWS API integrations and by incremental increases on costs rather than a single maximal threshold. Moreover, these alerts can be proactively pushed and sent to IT teams or management via all the standard mechanisms supported by the platform, so you can get alerts on billing by a project tag via:
- The monitoring tool itself
- Pushed to a browser
- SMS, Email or ChatOps (Slack, MS Teams and so on)
- As tickets in ITSM and ticketing systems such as ServiceNow, JIRA, Autotask and so on. See: Integration with multiple ITSM tools at the same time
eG Enterprise is driven by a powerful AI-engine that continually benchmarks and auto-baselines real service usage allowing both dynamic and static thresholds to be defined together so you can set alerts (including anomaly detection) to warn you when a project is costing 200% of normal usage and also if a project costs exceed a specific (hard limit) defined cost.
In comparison, billing alarms via AWS CloudWatch do not offer project or workload level granularity and are complex to setup and maintain and only alert on the currently projected monthly estimate of the total bill, see: Create a billing alarm to monitor your estimated AWS charges – Amazon CloudWatch.
Monitor and Compare AWS costs to those on Microsoft Azure or Google GCP with eG Enterprise
eG Enterprise is a multi-cloud, hybrid and on-prem observability solution and as such can monitor and track costs on comparable public clouds such as Google’s GCP and Microsoft Azure.
eG Enterprise is an Observability solution for Modern IT. Monitor digital workspaces,
web applications, SaaS services, cloud and containers from a single pane of glass.