「生成AIを活用したTerraformワークフロー ~ HCP Terraform × Claude Code ~」というタイトルで社内勉強会で登壇しました

「生成AIを活用したTerraformワークフロー ~ HCP Terraform × Claude Code ~」というタイトルで社内勉強会で登壇しました

2025.09.17

「生成AIを活用したTerraformワークフロー ~ HCP Terraform × Claude Code ~」というテーマで社内勉強会に登壇しました。

本記事では、資料を共有します。

登壇資料

デモ

デモ内では、Claude Codeによる以下の動作を見てもらいました。

  • Issueの内容取得からTerraformコード生成
  • Sentinelポリシーチェックの失敗内容に対する修正
  • Pull Request作成

構成図は以下です。

system-architecture.png

デモ用のGitHubリポジトリを用意しました。ここにはVPC用のコードが置いてあります。

HCP Terraformとこのリポジトリは連携しており、VPCをHCP Terraform経由でデプロイ済みです。

cc-hcptf-demo_terraform_main_tf_at_main_·_msato0731_cc-hcptf-demo.png

Claude Codeに実装してもらうため、以下のIssueを用意しました。

VPC内にEC2を追加するという内容です。

_デモ_既存のVPC内にEC2インスタンスを作成する_·_Issue__1_·_msato0731_cc-hcptf-demo.png

ローカルでClaude Codeのカスタムスラッシュコマンドを実行します。この際に、先程のIssueのURLを渡します。

カスタムスラッシュコマンドの中身は以下です。

terraform-issue
			
			/terraform-issue <issue-url>

		

以下のようにClaude Codeが実装を行います。

Claude_Code_—_未設定__ワークスペース_.png

Sentinelポリシーチェックの失敗時の動作も見たいため、あえて失敗するSentinelポリシーを仕込んでおきました。

デモ用のタグがEC2に付与されているか確認するポリシーです。

cc-hcptf-demo___Policy___classmethod-sandbox___HCP_Terraform.png

このタグの存在についてはカスタムスラッシュコマンドにもIssueにも含んでいません。

Claude Codeはポリシーチェックを行うまでタグについて、わからないためポリシーチェックに失敗します。

しばらく待つとterraform planを行い先程のポリシーに引っかかりました。(FSBPのEC2 Public IPのポリシーも引っかかっていました)

run-nKsaQWbN87Hf5QoM___Runs___classmethod-sandbox___HCP_Terraform.png

Claude Codeはエラーメッセージを見て原因を確認し、修正対応まで行いました。

Claude_Code_—_未設定__ワークスペース_.png

修正後再度terraform planを行って正常性を確認後、Pull Requestを作成しました。

Claude_Code_—_未設定__ワークスペース_.png

run-Rs3gdTRXYzo8ViEE___Runs___classmethod-sandbox___HCP_Terraform.png

既存のVPC内にEC2インスタンスを作成__Issue__10__by_msato0731_·_Pull_Request__16_·_msato0731_cc-hcptf-demo_🔊.png

このPull Requestをマージすると、HCP Terraform経由で自動的にterraform applyが行われ変更が適用されます。

おわりに

社内の生成AIを活用しているエンジニアからFBを受けれて、とても有意義でした。

今回はClaude Codeのカスタムスラッシュコマンドで実装しましたが、Claude Code Actionsも試してみようと思います。

持ち時間10分で、デモも盛り込んだので説明不足な部分多かったと思います。

今年の11月13日に開催されるHashiTalksに同様の内容でCfPを出しました。

CfPが通ったら30分枠で今回の改良版をお話できると思うので、よかったら聞きに来てください。

この記事をシェアする

FacebookHatena blogX

関連記事