😸
AWSにおけるタグとは?
私も最初は疑問でしたが、利用してみるととんでもなく便利でした。
aws のタグとは
-
名前とは別にリソースにつけられるカテゴリのようなもの
リソースとは
- AWSで作成できるもの(vpc、ec2、サブネット、ターゲットグループ)
- 複数のリソースをひとまとめにするのに約立つ(ある環境のリソースの一覧を表示や、環境ごとにかかっている料金など)
- 「new-staging」のタグを各vpc、ec2、サブネット、ALBにつけることでnew-staging環境のリソースを一覧で確認可能
例
- 「terraform1」のタグをvpc、ec2、サブネットにつけてみる
- 下記のTerrraformを実行(Name = "terraform1")
全体コード
[mai.tf]# プロバイダーの設定 provider "aws" { region = "ap-northeast-1" # 東京リージョン } # VPCの作成 resource "aws_vpc" "main_vpc" { cidr_block = "10.0.0.0/16" tags = { Name = "terraform1" } } # サブネットの作成 resource "aws_subnet" "main_subnet" { vpc_id = aws_vpc.main_vpc.id cidr_block = "10.0.1.0/24" tags = { Name = "terraform1" } } # 最安のEC2インスタンスの作成 resource "aws_instance" "cheap_instance" { ami = "ami-0c3fd0f5d33134a76" # 東京リージョンのAmazon Linux 2の AMI (具体的には最新のAMI IDを確認すること) # instance_type = "t2.micro" # 最安のインスタンス(フリーティ ア対応) instance_type = "t3.micro" subnet_id = aws_subnet.main_subnet.id tags = { Name = "terraform1" } }
- 確認してみる(terraform1でリソース全体をフィルター)
CLI上で確認
$ aws resourcegroupstaggingapi get-resources --tag-filters Key=Name,Values=terraform1 { "ResourceTagMappingList": [ { "ResourceARN": "arn:aws:resource-groups:ap-northeast-1:xxxxxxxxxx:group/terraform1-resource-group", "Tags": [ { "Key": "Name", "Value": "terraform1" } ] }, { "ResourceARN": "arn:aws:ec2:ap-northeast-1:xxxxxxxxxxxxxx:subnet/subnet-0f8c372dfdc08dbe9", "Tags": [ { "Key": "Name", "Value": "terraform1" } ] }, { "ResourceARN": "arn:aws:ec2:ap-northeast-1:xxxxxxxxxx:vpc/vpc-048fcedd3b326b341", "Tags": [ { "Key": "Name", "Value": "terraform1" } ] } ] }
AWSコンソール上で確認
図: vpc、サブネット、インスタンスが作成されている
- 下記のTerrraformを実行(Name = "terraform1")
Discussion