Produced by Fourier

生成AI+Terraformで華麗にIaCデビュー(とはいかなかった話)

Uhara icon Uhara

TerraformでGoogleCloudの環境構築をするぞ!進化したChatGPTであっという間に作るぞ!

筆者スペック

・Google Cloud環境はコンソール上で構築経験あり

・IaCはTerraformもAWS CDKも未経験

今回アサインされた案件が、IaCでの構築が必須ではないもののチャレンジするのに丁度良い案件だったため、Let's try! してみることにしました。

いろいろ端折ってますが以下の様なリソースを構築していきます。※この記事では実際のコードの話はしません。

Terraformは初めてだったものの生成AIの進化もあるので(ChatGPT o3を主に使用)ぱぱぱぱっとできちゃうんじゃないかと 思っていた時期が僕にもありました

結果、Terraform初心者とはいえ管理画面でポチポチ構築していくより結局 5倍くらい は時間がかかったのではないかと思います。全然あっという間にできませんでした。

というわけでもしIaCも生成AIで誰でもできるだろうなど考えている方がいましたら、そんなうまい話はないぞというお話と改めて生成AIに対する心構えの話です。

今回一番手間取ったこととその対策

✕ 旧ドキュメントや異なるバージョンの情報が混在された形でコードを提案されてしまう

 特にCloudBuildのv1とv2の違いあたりで一番はまりました…

 提案されたコードが上記v1とv2の仕様や旧バージョンのみ存在していたブロックなどが混ざり validateすら通らないものも出してきます。トライ&エラーのラリーの中で、 存在しないリソースやパラメータを提案されたり もしました。さすがに捏造はやめてほしいですね。

 ChatGPTさんには改めて以下念を押しておくと良い感じになっていきました。結構大事なので皆さん取り入れてください。

 ☑ 提案に使用したバージョンを明示してください

 ☑ 旧バージョンのドキュメントを使用しないでください

 ☑ 提案元のソースを提示してください

 ☑ インプットで足りない情報があった場合推測せず一度聞いてください

 ☑ いきなり詳細の説明やたくさんの提案を始めず、まずは箇条書きで質問への回答をしてください

仕様の変化の速いものについては情報源が混ざってしまい、なかなかすんなりといかないようです。枯れた技術を使ったものはこんな状況にはならないかもですね。

現状のAIで得意なこと、エンジニア全員やったほうが良いこと

  • コードの”たたき台”を作る。インプットは初めは少ないところから様子を見て必要なら補足情報を増やしていけば良い。
  • エラーに対して確認ポイントを提示してもらう。
  • 各種コマンドの使用方法、手順をまとめてもらう。
  • 自分が書いたコード、コマンドなどを評価してもらう。
  • 散らかっている情報の整理に。

所見

  • お客さんやチームメンバーへの説明用に作っていた資料と、当初考えられる補足をインプットとして生成させてもなかなか思い通りの結果にはなりませんでした。資料にどこまで記載するかの粒度の問題もありますが、もう少し今回の結果を踏まえ生成AIへのインプットを見据えた資料の作成をしていきたいと感じました。特に画像で説明しているところの判別はいまいちでしたので補足で表にまとめるなどの工夫が必要そうです。
  • とはいえ経験を重ねていけば貯まったコード資産をベースに構築していけるので、結局そのほうが遥かに速いかもです。
  • また、たたき台と言いましたが結局できあがったコードやクラウド側でのリソースの状況を見て最終的にあるべき形となっているか自分で判断をする必要があります。当然ですが、結局それぞれの仕様の確認作業からは逃れられません。

Uhara icon

Uhara slash forward icon Engineer

SEです。AWSやGCPなどサーバやクラウド周りはお任せください。趣味はギターとカフェ巡り。