AWS VPCネットワークHCLをJSONに変換する
サブネット、インターネットゲートウェイ、ルートテーブルを含むTerraform VPC設定をHCLからJSON形式に変換します。
Resources
詳細な説明
VPCネットワークインフラストラクチャ
VPC(Virtual Private Cloud)設定は通常、相互に依存する複数のリソースを含みます。これをJSONに変換すると、クロスリソース参照と複雑なネットワーキングセットアップがどのように変換されるかが分かります。
HCL設定
resource "aws_vpc" "main" {
cidr_block = "10.0.0.0/16"
enable_dns_hostnames = true
enable_dns_support = true
tags = {
Name = "main-vpc"
}
}
resource "aws_subnet" "public" {
vpc_id = "aws_vpc.main.id"
cidr_block = "10.0.1.0/24"
availability_zone = "us-east-1a"
map_public_ip_on_launch = true
tags = {
Name = "public-subnet"
}
}
resource "aws_internet_gateway" "main" {
vpc_id = "aws_vpc.main.id"
tags = {
Name = "main-igw"
}
}
クロスリソース参照
HCLではaws_vpc.main.idのような参照はTerraformがプラン時に評価する式です。JSON変換では、コンバーターが構造的な変換を行うため、これらは文字列値になります。
複数のリソースタイプ
JSON出力はリソースをタイプ別に整理します:aws_vpcはVPC定義、aws_subnetはサブネット設定、aws_internet_gatewayはゲートウェイを含みます。
CIDRブロック表記
10.0.0.0/16のようなCIDR値はHCLでもJSONでも文字列のままです。サブネット範囲を計算するTerraformのcidrsubnet()関数はJSON出力では文字列式として表示されます。
ユースケース
AWS上でのマルチティアネットワークアーキテクチャの構築、Infrastructure as Code移行のための既存VPC設定の変換、JSONを出力するネットワーク図ツールからのネットワーキングTerraformの生成。