AWS Best Practices: Tagging
As part of our Best Practices series for architecting on AWS we will touch on several different topics. Today we will discuss the importance of tagging.
It is good practice to tag all your AWS resources. Tagging allows you to add one or more name-value pairs to resources in AWS. Most resources including EC2 instances, S3 buckets, Security Groups, and RDS instances can be tagged.
Tags can be used in many different ways. You can use tags to group resources that belong to the same application or the same client, to track costs, to automate certain tasks, etc. You can use tags to differentiate resources belonging to different environments. You may have a ‘development’ environment and a ‘test’ environment in the same account. If the resources are tagged appropriately it is easy to see what resources belong to what environment.
Another useful use of tags is for EBS snapshots. By tagging snapshots you can set up scripts to delete old snapshots so that you don’t have to pay for snapshots you don’t need.
You can also use tags to trigger specific actions on a resource by using CloudWatch and Lambda functions – we will dive deeper into these two technologies in a future article.
In addition, the AWS Cost Explorer allows you to break things down by tag so having tags on all your resources can make reviewing your monthly bill easier.
A good tagging strategy uses consistent tag patterns so that they can be controlled programmatically and enforced using AWS Config (we will discuss AWS Config in more detail in a future post). Keeping the tag names all lower-case with words separated by underscores makes the names easy to read and consistent. The same applies to the value of the tags.
As always, feel free to comment below with your thoughts or ask any questions.