Use Cases

Terraform IaC with Claude Code

Learn about terraform iac using Claude Code. Practical tips and code examples included.

TerraformによるIaC自動化をClaude Codeで加速する

Terraform はクラウドインフラをコードで管理する IaC ツールの定番です。しかし HCL の記述は独特で、リソース間の依存関係やモジュール設計に悩むことも多いでしょう。Claude Codeを活用すれば、ベストプラクティスに沿った Terraform コードを素早く生成できます。

基本的なリソース定義の生成

AWS VPC + サブネット構成

> AWS用のTerraform設定を作成して。
> 要件:
> - VPC(10.0.0.0/16)
> - パブリックサブネット2つ、プライベートサブネット2つ
> - NATゲートウェイ
> - タグ付け規則を統一
resource "aws_vpc" "main" {
  cidr_block           = var.vpc_cidr
  enable_dns_hostnames = true
  enable_dns_support   = true

  tags = merge(var.common_tags, {
    Name = "${var.project}-vpc"
  })
}

resource "aws_subnet" "public" {
  count                   = length(var.public_subnet_cidrs)
  vpc_id                  = aws_vpc.main.id
  cidr_block              = var.public_subnet_cidrs[count.index]
  availability_zone       = var.azs[count.index]
  map_public_ip_on_launch = true

  tags = merge(var.common_tags, {
    Name = "${var.project}-public-${count.index + 1}"
    Tier = "public"
  })
}

resource "aws_subnet" "private" {
  count             = length(var.private_subnet_cidrs)
  vpc_id            = aws_vpc.main.id
  cidr_block        = var.private_subnet_cidrs[count.index]
  availability_zone = var.azs[count.index]

  tags = merge(var.common_tags, {
    Name = "${var.project}-private-${count.index + 1}"
    Tier = "private"
  })
}

モジュール設計

再利用可能なモジュール構成

> 上記VPCリソースをTerraformモジュールとして整理して。
> modules/vpc/ 配下にmain.tf, variables.tf, outputs.tfを分割して。

Claude Codeはモジュールの入出力を適切に設計し、variables.tf にデフォルト値やバリデーションルールも追加してくれます。

# modules/vpc/variables.tf
variable "vpc_cidr" {
  type        = string
  description = "VPCのCIDRブロック"
  validation {
    condition     = can(cidrhost(var.vpc_cidr, 0))
    error_message = "有効なCIDRブロックを指定してください。"
  }
}

variable "project" {
  type        = string
  description = "プロジェクト名(タグに使用)"
}

状態管理とバックエンド設定

リモートバックエンドの設定もClaude Codeに任せられます。

terraform {
  backend "s3" {
    bucket         = "my-terraform-state"
    key            = "production/terraform.tfstate"
    region         = "us-east-1"
    dynamodb_table = "terraform-locks"
    encrypt        = true
  }
}

マルチ環境対応

terraform workspace やディレクトリ分割による環境管理を、Claude Codeに設計してもらえます。tfvars ファイルを環境ごとに用意し、-var-file で切り替えるパターンが実用的です。

> staging環境とproduction環境で異なるインスタンスサイズを使いたい。
> 環境別のtfvarsファイルを作成して。

planの差分レビュー

terraform plan の出力をClaude Codeに貼り付ければ、変更内容のレビューや潜在リスクの指摘を受けられます。意図しないリソースDeleteや設定変更を事前にキャッチできます。

Zusammenfassung

Claude Codeを使えば、Terraformのモジュール設計から状態管理、マルチ環境構成まで一貫して効率化できます。AWSデプロイメントガイドDocker統合も合わせて確認すると、インフラ全体の自動化が進みます。

Terraformの詳細はTerraform公式ドキュメントを参照してください。

#Claude Code #Terraform #IaC #AWS #infrastructure