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_supportenable_dns_hostnames=true値が揃う
  • リソースの区切り: リソース間およびリソース内の属性グループ間に空行
  • countメタ引数: リソースブロックの先頭に配置され、通常の属性とは空行で区切り

ネットワークトポロジーの可読性

VPC設定に10以上のリソース(VPC、サブネット、ルートテーブル、NATゲートウェイ、セキュリティグループ)が含まれる場合、一貫したフォーマットにより、すべての行を読まなくてもファイルをスキャンしてトポロジーを理解できます。

ユースケース

Terraformで本番対応のAWSネットワークインフラを構築する場合、適切にフォーマットされたコードがネットワークエンジニアのCIDR割り当て、ルーティングルール、セキュリティグループ設定のレビューを支援。

試してみる — Terraform HCL Formatter

フルツールを開く