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の生成。

試してみる — HCL ↔ JSON Converter

フルツールを開く