Growth Challenges
You probably know how it goes when you put AWS to work for your company. You start small -- one Amazon S3 bucket for some backups, or one Amazon EC2 instance hosting a single web site or web application. Things work out well and before you know it, word of your success spreads to your team, and they start using it too. At some point the entire company jumps on board, and you become yet another AWS success story.
As your usage of AWS grows, you stop charging it to your personal credit card and create an account for your company. You use IAM to control access to the AWS resources created and referenced by each of the applications.
There's just one catch -- with all of those departments, developers, and applications making use of AWS from a single account, allocating costs to projects and to budgets is difficult because we didn't give you the necessary information. Some of our customers have told us that this cost allocation process can consume several hours of their time each month.
Cost Allocation Via Tagging
Extending the existing EC2 tagging system (keys and values), we are launching a new cost allocation system to make it easy for you to tag your AWS resources and to access billing data that is broken down by tag (or tags).
With this release you can tag the following types of AWS resources for cost allocation purposes:
- S3 buckets
- EC2 Instances
- EBS volumes
- Reserved Instances
- Spot Instance requests
- VPN connections
- Amazon RDS DB Instances
- AWS CloudFormation Stacks
Here's all that you need to do:
- Decide on Your Tagging Model - Typically, the key name identifies some axis that you care about and the key values identify the points along the axis. You could have a tag named Department, with values like Sales, Marketing, Development, QA, Engineering, and so forth. You could choose to align this with your existing accounting system. You can use multiple tags for cost allocation purposes, each of which represents an additional dimension of usage. If each department runs several AWS-powered applications (or stores lots of data in S3), you could add an Application tag, with the values representing all of the applications that are running on behalf of the department. You can use the tags to create your own custom hierarchy.
- Tag Your Resources - Apply the agreed-upon tags to your existing resources, and arrange to apply them to newly created resources as they appear. You can add up to ten tags per resource. You can do this from the AWS Management Console, the service APIs, the command line, or through Auto Scaling:
You can use CloudFormation to provision a set of related AWS resources and easily tag them.
- Tell AWS Which Tags Matter -Now you need to log in to the AWS Portal, sign up for billing reports, and tell the AWS billing system which tag keys are meaningful for cost allocation purposes by using the Manage Cost Allocation Report option:
You can choose to include certain tags and to exclude others.

- Access Billing Data - The estimated billing data is generated multiple times per day and the month-end charges are generated within three days of the end of the month. You can access this data by enabling programmatic access and arranging for it to be delivered to your S3 bucket.
Data Processing
The Cost Allocation Report will contain one additional column for each of the tag keys that you selected in step 3. The corresponding tag value (if any) will be included in the appropriate column of the data:

In the Cost Allocation Report above, the relevant keys were Owner, Stack, Cost Center, Application, and Project. The column will be blank if the AWS resource doesn't happen to have a value for the key. Data transfer and request charges are also included for tagged resources. In effect, these charges inherit the tags from the associated resource.
Once you have this data, you can feed it in to your own accounting system or you can slice and dice it any way you'd like for reporting or visualization purposes. For example, you could create a pivot table and aggregate the data along one or more dimensions:

In The Works
We are planning to make this feature even more useful over time. We want to give you the ability to tag more types of AWS resources and we are thinking about allowing you to use more than ten tags per resource. We also want to include the upfront fee for Reserved Instance purchases. Your suggestions for other features are always welcome too!
-- Jeff;


Awesome. Hope you support tagging ELB soon
Posted by: Sebastian Edwards | August 21, 2012 at 10:36 PM
This is really awesome - we'll be using it at CopperEgg (http://copperegg.com) since we use lots of AWS and really need to split it between dev, marketing, and cogs.
Thanks!
Eric
Posted by: Eric Anderson | August 22, 2012 at 05:57 AM
Thanks! I big time saver.
Posted by: Mike Kavis | August 22, 2012 at 06:21 AM
This is great - will it eventually make it to the basic activity reports or cloudwatch as well?
Posted by: Chris Adams | August 22, 2012 at 06:29 AM
That's great!!
Can we do step 3 (Tell AWS Which Tags Matter) programatically ? I mean, every time we create a new tag, do we have to go to the portal ?
Posted by: Reynald | August 22, 2012 at 07:35 AM
Lots of kudos to the AWS team for this feature - finally! Lots of multitenancy app running on top of AWS will be very grateful for that. No more hassle with lots of account and phone activations!
By the way, is this also integrated with consolidated billing? What happens if you add an account with tagged machines to a consolidating billing account?
Posted by: Thomas_witt | August 23, 2012 at 05:00 AM
Hi,
We are please to announce a new version of Bucket Explorer includes the newly released feature of S3 for Bucket Tagging - You can download the latest version from Bucket Explorer's download page - http://www.bucketexplorer.com/be-download.html
As always - we value your feedback for improvements - we can be contacted at http://www.bucketexplorer.com/contactus.html
Thanks
Posted by: Tej Kiran | August 24, 2012 at 10:38 PM
Thats a really good enhancement.
Wish we could allocate costs according to the IAM Users.
Also it would be so good to see more granular report if a resource is automatically tagged with IAM user id that created it.
Its difficult to understand who launched/created which resources and if the bill is as expected.
Reblogged at my blog site :
http://thecrystalclouds.blogspot.in/2012/08/aws-cost-allocation-for-customer-bills.html
Posted by: Rohini Gaonkar | August 28, 2012 at 04:44 AM
Dear Aamazon, IMHO, CloudFront needs some love here, could you please charge bills based on different distributions? It's quite important for an SaaS business.
Posted by: Felix | September 10, 2012 at 08:40 PM
This is a very valuable feature. Given wide variety of services and varied pricing and purchasing options within each service, greater clarity for cost assignment is always helpful.
For those interested, CloudCheckr (www.cloudcheckr.com) is a complimentary cost solution. Besides offering high level best-practice cost guidance, CloudCheckr allows AWS users to quickly identify underutilized/overexpensive AWS resources, suggest licensing purchasing suggestions to generate optimal purchasing decisions, and further refine the AWS cost analysis.
Posted by: aaron klein | September 11, 2012 at 11:17 AM
CloudFront and SQS would be very helpful, too.
Posted by: Jacob Elder | October 15, 2012 at 08:47 AM