インフラの変更をコードで管理する IaC(Infrastructure as Code)は、クラウド運用の標準手法として定着しました。しかし、Terraform や Pulumi のコード記述・レビュー・テストには依然として多くの工数がかかり、特に複数環境への展開や状態管理の複雑さに悩むチームは少なくありません。私自身、デジライズでの導入支援を通じて「モジュール設計の標準化が進まない」「ドリフト検出の自動化が後回しになる」といった課題を多くの現場で目にしてきました。本記事では、Claude Code を活用した Terraform/Pulumi コード生成・運用自動化の実践手順と、現場で直面しがちな落とし穴への対処法を解説します。
本記事の結論: Claude Code は IaC コード生成・モジュール設計支援・ドリフト検出スクリプト作成を通じて、インフラ運用の品質向上と属人化解消に寄与する。ただし生成コードの検証責任は人間に残る。
Claude Code が IaC 運用に適している理由
Claude Code は、大規模コンテキスト処理と複数ファイル横断編集が得意な AI コーディングツールです。IaC の文脈では、以下の特性が実務上の利点となります。
コンテキスト理解の範囲
Terraform のモジュール構成や Pulumi のプロジェクト構造を一度に把握し、変数定義・outputs・依存関係を整合させたコードを生成できます。既存の .tf ファイル群や Pulumi.yaml を読み込ませることで、命名規則やタグポリシーを学習し、新規リソース追加時も一貫性を保ちやすくなります。
変更箇所の特定と影響範囲の提示
例えば「VPC の CIDR を変更したい」という要求に対し、関連するサブネット定義・セキュリティグループルール・ルートテーブルへの影響を列挙した上でコード変更案を提示します。これは手動レビューの負担を軽減し、見落としリスクを下げる効果があります。
ポリシーチェックスクリプトの生成
OPA(Open Policy Agent)や Sentinel のポリシーコードを Claude Code に生成させることで、タグ付けルール・リソース命名規則・セキュリティグループのポート制限といった組織ルールの自動検証が容易になります。
Claude Code が生成したコードは必ず terraform plan / pulumi preview で検証してください。特に state ファイルへの影響や破壊的変更(リソース再作成)の有無は人間の目で確認する必要があります。
Terraform コード生成の実践手順
ここでは AWS 上に ECS クラスターを構築する Terraform コードを例に、Claude Code を活用した生成・レビュー・適用のフローを示します。
1. 要件の整理とプロンプト設計 — まず構築したいインフラの要件を箇条書きでまとめます。「ECS Fargate で Web アプリを起動、ALB でロードバランス、RDS MySQL を DB として使用、VPC は既存のものを参照」といった粒度で記述します。この要件を Claude Code に渡す際は、既存の variables.tf や terraform.tfvars も併せて読み込ませ、命名規則や環境変数の構造を学習させます。
2. モジュール構成の指示 — 「modules/ ディレクトリ配下に ecs-service モジュールを作成し、main.tf / variables.tf / outputs.tf に分割してください」のように、ディレクトリ構造とファイル分割方針を明示します。Claude Code はこの指示に従い、複数ファイルを一度に生成できます。既存モジュールとの整合性を保つため、既存の modules/network などのコードもコンテキストに含めると効果的です。
3. 変数とアウトプットの整合確認 — 生成されたコードの variables.tf と outputs.tf を確認し、親モジュール(root)との値の受け渡しに漏れがないかチェックします。Claude Code に「このモジュールを呼び出す側の main.tf も生成してください」と依頼すれば、module ブロックの記述例も得られます。ただし、既存の state に影響する変更は慎重に扱う必要があるため、差分を terraform plan で必ず確認します。
4. フォーマットと静的解析 — 生成コードに対し terraform fmt と terraform validate を実行します。さらに tfsec や Checkov といった静的解析ツールでセキュリティリスク(例: S3 バケットのパブリック公開設定、セキュリティグループの 0.0.0.0/0 許可)を検出し、問題があれば Claude Code に修正を依頼します。「tfsec で検出された HIGH リスクの項目を修正してください」と指示すれば、該当箇所の修正案が提示されます。
Pulumi によるマルチ言語 IaC の活用
Pulumi は TypeScript / Python / Go など汎用言語で IaC を記述できるため、既存のアプリケーションコードと同じ言語でインフラを管理できる利点があります。Claude Code は Pulumi のコード生成にも対応しており、特に TypeScript での型定義を活かした堅牢なコード生成が期待できます。
Pulumi プロジェクトの初期化
pulumi new aws-typescript でプロジェクトを作成後、既存のインフラ要件を Claude Code に伝えます。「AWS ECS タスク定義を Pulumi で記述し、環境変数は Pulumi Config から読み込む構成にしてください」と指示すれば、Pulumi.dev.yaml の設定と TypeScript コードが生成されます。
型安全性の活用
TypeScript の型システムを利用することで、リソースの outputs を他リソースの inputs に渡す際の型不一致をコンパイル時に検出できます。Claude Code が生成するコードも型定義を含むため、IDE の補完機能と組み合わせることで、手動記述時よりもミスを減らせます。
スタック管理とシークレット
Pulumi のスタック機能を使い、dev / staging / prod 環境を分離します。Claude Code に「staging スタック用の設定ファイルを生成し、RDS のパスワードは pulumi config set --secret で管理する例を示してください」と依頼すれば、シークレット管理のベストプラクティスを含むサンプルが得られます。ただし、実際のシークレット値は手動で設定する必要があります。
マルチクラウド戦略における Pulumi 活用の詳細は「Claude Code マルチクラウド戦略実践」で解説しています。
状態管理とドリフト検出の自動化
IaC 運用で最も注意が必要なのが state ファイルの管理と、実際のクラウドリソースとコードの乖離(drift)の検出です。Claude Code はこれらの運用作業を支援するスクリプト生成にも活用できます。
Terraform state のリモート管理
S3 + DynamoDB によるリモート state の構成を Claude Code に生成させる際は、「backend.tf に S3 バケット名とロック用 DynamoDB テーブル名を含む設定を記述し、バケットのバージョニングと暗号化を有効にする例を示してください」と依頼します。生成されたコードを既存プロジェクトに適用する前に、terraform init -migrate-state の手順も確認します。
ドリフト検出の CI/CD 統合
定期的に terraform plan を実行し、差分がある場合に Slack 通知を送るスクリプトを Claude Code に生成させます。「GitHub Actions で毎日午前中に terraform plan を実行し、差分があれば Slack webhook に通知する YAML を作成してください」と指示すれば、ワークフロー定義とシェルスクリプトが得られます。ただし、Slack webhook URL は環境変数として GitHub Secrets に登録する必要があります。
Pulumi の refresh と drift
Pulumi の場合、pulumi refresh でリモート状態を取得し、pulumi preview で差分を確認します。Claude Code に「pulumi preview の結果をパースし、差分が存在する場合のみ通知する Node.js スクリプトを書いてください」と依頼すれば、CI/CD パイプラインに組み込める自動化スクリプトが生成されます。
state ファイルのロック機構(Terraform の DynamoDB / Pulumi の state backend)は、複数人での同時適用を防ぐ重要な仕組みです。Claude Code が生成した設定を適用する前に、ロックが有効になっているか必ず確認してください。
セキュリティポリシーの適用と自動検証
IaC ではコードレビュー段階でセキュリティリスクを検出することが重要です。Claude Code を活用し、組織のポリシーを自動検証する仕組みを構築できます。
OPA によるポリシーチェック
「Terraform plan の JSON 出力を OPA で検証し、セキュリティグループのインバウンドルールに 0.0.0.0/0 from port 22 を許可するルールがある場合は失敗させる Rego コードを書いてください」と Claude Code に依頼します。生成された Rego ファイルを conftest や terraform-compliance と組み合わせることで、CI/CD での自動検証が可能になります。
Sentinel ポリシーの生成(Terraform Cloud/Enterprise)
Terraform Cloud を利用している場合、Sentinel ポリシーを Claude Code に生成させることもできます。「全 S3 バケットに Environment タグが必須、値は dev/staging/prod のいずれかに限定する Sentinel ポリシーを作成してください」と指示すれば、ポリシーコードとテストケースが得られます。
カスタムルールの追加
組織固有の命名規則(例: リソース名は {project}-{env}-{service} 形式)を Claude Code に伝え、それを検証する tflint カスタムルールや Checkov カスタムチェックを生成させることも可能です。ただし、生成されたルールが意図通り動作するか、実際のコードに対して試行して確認する必要があります。
CI/CD パイプラインへの統合
IaC の変更を安全にデプロイするには、自動テスト・承認フロー・段階的適用の仕組みが必要です。Claude Code は CI/CD 定義ファイルの生成も支援します。
GitHub Actions の例
「pull request 作成時に terraform plan を実行し、結果をコメントとして PR に投稿する GitHub Actions ワークフローを作成してください」と指示すれば、必要な YAML 定義が生成されます。既存の .github/workflows/ 配下のファイルも読み込ませることで、既存ジョブとの整合性を保てます。
GitLab CI/CD の例
「GitLab CI で terraform apply を実行する前に manual approval が必要な stage を設定し、apply 後に Slack 通知を送る .gitlab-ci.yml を書いてください」と依頼します。Claude Code は when: manual や artifacts の設定を含む定義を生成します。
デプロイメント戦略の自動化
Blue/Green デプロイメントや Canary リリースを IaC で実現する際、複数の state やスタックを切り替える必要があります。「Pulumi で Blue 環境と Green 環境を別スタックで管理し、トラフィックを切り替えるスクリプトを生成してください」と Claude Code に依頼すれば、Route 53 の重み付けルーティング変更を含むスクリプト案が得られます。ただし、実際の切り替えは段階的に行い、ロールバック手順も事前に確認する必要があります。
デプロイメント自動化の全体像については「Claude Code DevOps デプロイメント自動化」で詳述しています。
モジュール設計と再利用性の向上
IaC の長期運用では、共通コンポーネントのモジュール化が品質と効率の鍵となります。Claude Code はモジュール設計の一貫性を保つ支援ツールとして機能します。
モジュールの粒度設計
「VPC・サブネット・ルートテーブルを一つのモジュールにまとめるか、それぞれ独立したモジュールにするか」という設計判断は、組織のインフラ規模や変更頻度に依存します。Claude Code に既存のインフラ構成を読み込ませ、「現在の構成を3つのモジュールに分割する案を提示してください」と依頼すれば、分割案と各モジュールの責務が提示されます。ただし、最終的な粒度は運用チームの判断が必要です。
変数の標準化
複数のモジュールで共通の変数名・型・デフォルト値を使うことで、利用者の学習コストを下げられます。Claude Code に「既存の3つのモジュールで使われている変数名を統一し、共通の variables.tf テンプレートを作成してください」と指示すれば、標準化案が得られます。
outputs の活用
モジュールの outputs を適切に設計することで、他モジュールとの連携が容易になります。「ECS モジュールが出力すべき情報(クラスターARN・サービス名・タスク定義ARN)をリストアップし、outputs.tf を生成してください」と Claude Code に依頼すれば、必要な outputs が提示されます。
クラウド移行における IaC の役割
既存のオンプレミス環境やレガシークラウド構成をモダンな IaC 管理に移行する際、Claude Code は移行計画の策定とコード化を支援します。
既存リソースの import
Terraform の import コマンドや Pulumi の import 機能を使い、既存のクラウドリソースを IaC 管理下に置く際、リソース ID の一覧化とインポートスクリプトの生成を Claude Code に依頼できます。「AWS 上の既存 EC2 インスタンスを terraform import するためのシェルスクリプトを、instance ID のリストから生成してください」と指示すれば、バッチインポート用のスクリプトが得られます。
移行計画の可視化
移行対象リソースとその依存関係を Markdown テーブルや Mermaid 図で可視化する作業も、Claude Code に依頼できます。「以下のリソース一覧を依存関係順に並べ、移行順序を示すテーブルを作成してください」と指示すれば、段階的な移行計画の叩き台が得られます。
クラウド移行の詳細手順とリスク管理については「Claude Code クラウド移行アクセラレーター」で解説しています。
まとめ
Claude Code を IaC 運用に活用することで、コード生成・モジュール設計・ポリシー検証・CI/CD 統合の各段階で作業効率と品質を向上させることができます。ただし、生成されたコードは必ず人間が検証し、state への影響や破壊的変更のリスクを確認する責任は運用チームに残ります。IaC は「書いて終わり」ではなく、継続的なメンテナンスとポリシー適用が必要な領域です。Claude Code はそのサイクルを加速する道具として、実務での活用価値があります。
デジライズでは、Claude Code を活用した IaC 運用の導入支援を 研修プログラム と コンサルティング の2本柱で提供しています。Terraform/Pulumi のコード設計レビュー、CI/CD パイプライン構築、セキュリティポリシーの自動化まで、実務に即した伴走支援が可能です。「既存の IaC 構成を Claude Code でどう効率化できるか知りたい」「モジュール設計の標準化を進めたい」といった課題をお持ちの方は、ぜひ無料相談をご活用ください。貴社のインフラ運用に最適な活用プランをご提案します。
関連記事
デジライズの実績は社内集計値です。特に明記のない数値付き事例は、匿名加工された実例をもとにしたモデルケースです。導入効果は企業や業務によって異なります。各サービスの料金・機能・提供条件は記事の公開・更新時点の情報であり、変更されるため、最新情報はAnthropic公式サイトなどの一次情報をご確認ください。



