TerraformでAWSリソースを作成する際、VPCやサブネットなど複数のリソースに同じタグ(例:Env、Owner)を設定することはよくあります。
しかし、各リソースに個別にタグを設定していると、リソースが増えたときに設定の手間が大きくなります。
Terraform 1.3以降では、default_tags を使うことで、プロバイダー単位で共通タグを一括管理できます。
provider "aws" {
region = "ap-northeast-1"
default_tags {
tags = {
Env = "terraform-practice"
Owner = "<自分の名前>"
}
}
}
🧩 各フィールドの意味
| フィールド | 意味 |
|---|---|
region |
AWSリソースを作成するリージョンを指定します。 |
default_tags |
このプロバイダー配下の全リソースに自動で適用されるタグを定義します。 |
tags |
キーと値のペアで共通タグを設定します。 |
🌀 運用イメージ
- providerに
default_tagsを設定 - 各リソースの
tagsにはリソース固有のタグだけを記述(例:Name) - Terraform plan/applyを実行
- 全てのリソースに共通タグが自動で付与される
例:VPCとサブネット
resource "aws_vpc" "tf_test" {
cidr_block = "10.1.0.0/16"
tags = {
Name = "tf-test"
}
}
resource "aws_subnet" "tf_test" {
vpc_id = aws_vpc.tf_test.id
cidr_block = var.subnet_cidr
tags = {
Name = "tf-test-subnet"
}
}
-
EnvとOwnerタグは自動で適用されるため、リソース側では繰り返し記述不要です。
🎯 メリット
- 共通タグを一括管理できるため、設定の手間が減る
- リソースが増えてもタグ管理が容易
- 個別タグと組み合わせて柔軟に運用可能
📝 まとめ
Terraformのdefault_tagsを活用すると、AWSリソースの共通タグを効率的に管理できます。
VPCやサブネットなど複数リソースを作成する場合は特に便利な機能です。