Tagging in AWS

Cloud computing has several advantages over conventional methods such as reduced
management complexity, reliability, availability, scalability, security and cost efficiency. However, the number of resources used in a cloud project can increase quickly and it can be a challenging task to know the followings over the time;

  • which component belongs to which project
  • how much money each project costs
  • which version of a resource is deployed

Especially when multiple projects are deployed in the same account, this becomes an even
more complicated problem.

AWS tags can be very useful to help answer such questions. A tag is a key-value pair applied to a resource to hold metadata about that resource. Each tag has two parts:

  • Key such as “CostCenter”, “Environment” or “Project”
  • Value such as “111222333”, “Production” or “Billing”

Tag keys and values are both case sensitive.
Imagine you have a “Billing” project the following tags for all of its resources:

  • Project = Billing
  • Release = v1.2.0

By using Project tag in AWS Cost Explorer, you can see how much in total Billing project costs. It is possible to identify whether a resource belongs to the Billing project or not by using the same tag.

By using Release tag, you can check which version of the Billing project is deployed.

AWS tags should be set automatically by your deployment tool such as by Terraform or CloudFormation. This will guarantee that you don’t miss any resource and you set all tags correctly.

In summary, AWS tags are very useful to categorize and label your cloud resources. When used effectively, they can help monitor the cost of a project across all resources and verify the ownership or version of a resource.