😸

AWSにおけるタグとは?

2024/09/29に公開

私も最初は疑問でしたが、利用してみるととんでもなく便利でした。

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、サブネット、インスタンスが作成されている

Discussion