AWS VPC Terraform設定のフォーマット
サブネット、ルートテーブル、インターネットゲートウェイ、NATゲートウェイを含む完全なAWS VPC設定をフォーマット。ネストされたリソースフォーマットとタグの揃えを実演します。
Resources
詳細な説明
AWS VPCリソースのフォーマット
VPC設定は最も一般的なTerraformパターンの1つで、通常は複数の相互接続されたリソースを含みます。適切なフォーマットにより、ネットワークトポロジーがコード自体で視覚化できます。
VPC設定の例
resource "aws_vpc" "main" {
cidr_block = "10.0.0.0/16"
enable_dns_support = true
enable_dns_hostnames = true
instance_tenancy = "default"
tags = {
Name = "main-vpc"
Environment = "production"
ManagedBy = "terraform"
}
}
resource "aws_internet_gateway" "main" {
vpc_id = aws_vpc.main.id
tags = {
Name = "main-igw"
}
}
resource "aws_subnet" "public" {
count = 3
vpc_id = aws_vpc.main.id
cidr_block = cidrsubnet(aws_vpc.main.cidr_block, 8, count.index)
availability_zone = data.aws_availability_zones.available.names[count.index]
map_public_ip_on_launch = true
tags = {
Name = "public-subnet-${count.index}"
Type = "public"
}
}
フォーマットのハイライト
- タグブロックの揃え: 各
tagsブロック内でキーと値が垂直に揃う - ブーリアンの揃え:
enable_dns_supportとenable_dns_hostnamesの=とtrue値が揃う - リソースの区切り: リソース間およびリソース内の属性グループ間に空行
- countメタ引数: リソースブロックの先頭に配置され、通常の属性とは空行で区切り
ネットワークトポロジーの可読性
VPC設定に10以上のリソース(VPC、サブネット、ルートテーブル、NATゲートウェイ、セキュリティグループ)が含まれる場合、一貫したフォーマットにより、すべての行を読まなくてもファイルをスキャンしてトポロジーを理解できます。
ユースケース
Terraformで本番対応のAWSネットワークインフラを構築する場合、適切にフォーマットされたコードがネットワークエンジニアのCIDR割り当て、ルーティングルール、セキュリティグループ設定のレビューを支援。