「生成AIを活用したTerraformワークフロー ~ HCP Terraform × Claude Code ~」というタイトルで社内勉強会で登壇しました
「生成AIを活用したTerraformワークフロー ~ HCP Terraform × Claude Code ~」というテーマで社内勉強会に登壇しました。
本記事では、資料を共有します。
登壇資料
デモ
デモ内では、Claude Codeによる以下の動作を見てもらいました。
- Issueの内容取得からTerraformコード生成
- Sentinelポリシーチェックの失敗内容に対する修正
- Pull Request作成
構成図は以下です。

デモ用のGitHubリポジトリを用意しました。ここにはVPC用のコードが置いてあります。
HCP Terraformとこのリポジトリは連携しており、VPCをHCP Terraform経由でデプロイ済みです。

Claude Codeに実装してもらうため、以下のIssueを用意しました。
VPC内にEC2を追加するという内容です。

ローカルでClaude Codeのカスタムスラッシュコマンドを実行します。この際に、先程のIssueのURLを渡します。
カスタムスラッシュコマンドの中身は以下です。
terraform-issue
/terraform-issue <issue-url> 以下のようにClaude Codeが実装を行います。

Sentinelポリシーチェックの失敗時の動作も見たいため、あえて失敗するSentinelポリシーを仕込んでおきました。
デモ用のタグがEC2に付与されているか確認するポリシーです。

このタグの存在についてはカスタムスラッシュコマンドにもIssueにも含んでいません。
Claude Codeはポリシーチェックを行うまでタグについて、わからないためポリシーチェックに失敗します。
しばらく待つとterraform planを行い先程のポリシーに引っかかりました。(FSBPのEC2 Public IPのポリシーも引っかかっていました)

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

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



このPull Requestをマージすると、HCP Terraform経由で自動的にterraform applyが行われ変更が適用されます。
おわりに
社内の生成AIを活用しているエンジニアからFBを受けれて、とても有意義でした。
今回はClaude Codeのカスタムスラッシュコマンドで実装しましたが、Claude Code Actionsも試してみようと思います。
持ち時間10分で、デモも盛り込んだので説明不足な部分多かったと思います。
今年の11月13日に開催されるHashiTalksに同様の内容でCfPを出しました。
CfPが通ったら30分枠で今回の改良版をお話できると思うので、よかったら聞きに来てください。






