setting-up-terraform について
Terraform プロジェクトの構成を整え、AWS、GCP、Azure 向けのインフラストラクチャ構成を案内するスキルです。再利用可能なモジュール、状態管理、CI 検証ワークフローを扱います。
主な機能
- 01Terraform プロジェクト構成
- 02プロバイダーと変数の設定
- 03再利用可能なインフラモジュール
- 04リモート状態とロック
- 05CI チェックとデプロイワークフロー
活用シーン
- 01クラウドインフラプロジェクトの開始
- 02開発・ステージング・本番の状態分離
- 03Pull Request への Terraform チェック追加
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ revitalb-port/ skills-registry-demo --skill setting-up-terraformインストール後、Claude Code で/setting-up-terraformを入力して読み込まれたか確認します。
詳細
Terraform のセットアップ
ユーザーから Terraform、Infrastructure as Code、クラウドのプロビジョニング、または IaC のセットアップを依頼された場合に、このスキルを使用します。
手順
-
プロジェクト構成を初期化します
infra/ ├── main.tf ├── variables.tf ├── outputs.tf ├── terraform.tfvars # (gitignored) ├── providers.tf └── modules/ -
プロバイダーを設定します —
providers.tf内で設定します。terraform { required_version = ">= 1.5" required_providers { aws = { source = "hashicorp/aws" version = "~> 5.0" } } backend "s3" { bucket = "my-terraform-state" key = "prod/terraform.tfstate" region = "us-east-1" } } provider "aws" { region = var.aws_region }ユーザーのクラウド(AWS、GCP、Azure)に合わせてプロバイダーを調整します。
-
変数を定義します —
variables.tf内で、型、説明、デフォルト値を指定して入力を定義します。variable "aws_region" { type = string default = "us-east-1" description = "AWS region for resources" } variable "environment" { type = string description = "Deployment environment (dev, staging, prod)" } -
リソースを作成します —
main.tf内で、ユーザーが必要とするインフラストラクチャ(VPC、RDS、ECS、S3、Lambda など)を定義します。再利用可能なパターンはmodules/配下のモジュールに切り出します。 -
リモートステートを設定します — ステートには S3 バケット(AWS)、GCS バケット(GCP)、または Azure Storage を使用します。DynamoDB(AWS)でステートロックを有効にします。
-
.gitignoreに追加します*.tfstate *.tfstate.* .terraform/ terraform.tfvars *.tfvars -
CI パイプラインを追加します — PR で
terraform fmt -check、terraform validate、terraform planを実行し、承認ゲートを設けて main へのマージ時にterraform applyを実行する GitHub Actions ワークフローを作成します。
注意事項
- ステートファイルや、シークレットを含む
.tfvarsは絶対にコミットしないでください。 - ワークスペースまたは個別のステートファイルを使用して、dev/staging/prod を分けてください。
- 破壊的変更を避けるため、プロバイダーのバージョンを固定してください。
- コミットする前に
terraform fmtを実行してください。