はじめに

前回の記事では、GitHub Copilot を使って Terraformのフォルダ構成を自動生成しました。

今回はその続きとして、同じく GitHub Copilot を活用しながら、environments ディレクトリと modules ディレクトリの下に VPC を構成するためのコードを書いていきます。
「実際にどう書き始めればいいのか?」という部分を、AI の提案をうまく取り入れながら形にしていく流れを紹介します。

コードの準備

GitHub Copilot に 以下のように指示すると、必要なファイルや構成案を自動生成してくれます。

VPCを作成するTerraformコードを作成してください

コードが揃ったら、Terraform の初期化とバリデーションを行うために、次のコマンドを実行するか聞かれます。

cd /Users/****/Downloads/iret_media/terraform \
&& terraform init -input=false \
&& terraform validate -no-color

問題ない場合、 continue  を送信すると処理が続行され、terraform initterraform validate が正常に実行されます。

コマンド実行後、以下2つの内容を確認することができます。

1️⃣ terraform init が実行されたことが分かる
continue を押すと、まず Terraform の初期化処理(terraform init)が実行され、必要なプロバイダの取得や設定が行われたことがログから確認できます。

2️⃣ 次にどの環境で plan を実行するか聞かれる

初期化が完了すると、Copilot Chat からどの環境で plan を実行するか聞かれるので「environments/dev」などを入力します。作業したい環境を選ぶだけで、次の terraform plan までスムーズに進められます。

リソースが作成されるか確認

次に、GitHub Copilot Chat に対して、以下のように指示します。

environments/dev で plan コマンドを確認したいです

再度、continue を促されるので、continue を押します。
押下後、以下2つの内容を確認することができます。

1️⃣ エラーが出力される
まず、environments/dev ディレクトリで terraform plan を実行しようとした際のエラー内容がそのまま表示されます。
まだ設定が不足している場合や変数が未定義の場合など、Terraform の検証で引っかかったポイントがそのままログに出力されます。

2️⃣ エラーの内容を教えてくれる
続いて Copilot Chat がエラー内容を読み取り、今回の失敗原因が AWS 認証エラーであること を端的に教えてくれます。

Copilot Chat からの指示どおりにコマンドを実行すると、以下2つの内容を確認することができます。

1️⃣ エラーが解消される
AWS 認証エラーは解消され、再度 plan を正常に進められます。

2️⃣ ネクストアクションの提示
Copilot Chat から次のアクションである terraform apply を実行するよう促されます。

しかし、上記画像の 1 の出力内容を見ると、当初の指示である VPC の作成ではなく、S3 を作成しようとしている ことが分かります。

そこで改めて Copilot Chat に以下のように依頼します。

VPCを作成するTerraformコードを作成してくださいと依頼しました

その結果、画像の 1 と 2 の内容から、今度は VPC に関連するリソースが正しく生成されようとしていることが確認できます。

まとめ

今回のように、VPC の作成を依頼したにもかかわらず S3 を生成しようとするなど、Copilot に任せきりにすると意図しないコードが出力されるリスクがあります。

一方で、操作途中で発生したエラーに対しては、原因の説明や対処方法まで丁寧に案内してくれるため、作業を進めるうえでとても心強い存在でもあります。

AI に全て任せるのではなく、コード内容を確認しつつ上手く活用することが大切だと実感できる流れでした。