Amazon Q DeveloperでTerraform開発を高速化!
① はじめに
背景
クラウド構築において、IaCツールのTerraformは便利ですが、HCLの構文や各リソースのパラメータを調べるのが大変です。特に普段からTerraformを使っていない方やそうでなくとも、初めて構築するリソースなどは構文やパラメータを調べること自体が負担となると思います。
目的
Amazon Q Developerを使って、どれだけ直感的かつ正確にTerraformコードを生成できるか検証し、実際の開発作業に適用してみました。
Amazon Q Developer とは
AWSが提供する開発者向けの生成AIサービスです。
自然言語での対話が可能でコード生成やコード説明などのコーディングサポート、デプロイエラー発生時の原因追及やコード修正なども実行できます。
② 環境準備
使用したPC(クライアント端末)について
スペックは以下の通りです。
OS:Windows11 Enterprise 24H2
IDE:Visual Studio Code 1.108.0
Amazon Qのインストール
今回のケースでは、VS Codeにインストールして使用しました。
1.VS Codeを起動後に、[拡張機能]のタブを選択し、Amazon Qを検索します

2.Amazon Qを選択して、「発行元を信頼してインストールする」を押下します

3.インストール完了後に左端のアクティビティバーにAmazon Qのロゴマークが表示されるので、押下します。

4.今回のケースでは、Amazon QへはPersonal Account(無償版のBuild ID)を使ってサインインを行います。
※ Build IDを持っていない方は事前に用意しておきましょう。

5.外部のWebサイトを開く旨のメッセージが表示されますので、「開く」を押下します

6.Build IDでのログインに必要なEメールアドレス、パスワードを入力します
※設定や環境によっては、パスワード入力の代わりにメールに届く認証コード(OTP)やリンク(マジックリンク)による本人確認を行い、パスワード入力が発生しない場合がありますので、ご注意下さい。

7.登録しているEメールアドレスに検証コードが送信されるので、入力し「続行」を押下します。

8.アクセス許可の確認ページが表示されるので、「アクセスを許可」を押下します

9.Request Approvedが表示されていることを確認します

10.VS Code上でAmazon Q のchatが表示されていることを確認して完了となります

③ Amazon Qによるコード生成
コメント生成
コードのたたき台を作成する時は事前に用意したプロンプトをCHATに貼り付けています。
以下はIPアドレスを固定させるためにNLBを構築する内容です。

Amazon Qが作成したコードを確認します。修正前後の比較ができます。

チャットでの対話
プロンプトに情報が不足していたり、書き方があいまいだとAmazon Qは意図した通りにコーディングしてくれません。
以下は開発環境用にNLBを構築したはずが本番環境用ファイルにコーディングしていたので、チャットで修正を依頼します。

修正内容を参照して、問題ないことが確認できました

エラー発生時のデバッグ
エラー発生時の原因究明、対応案の提示にも役立ちます。
エラーメッセージを貼り付けて、何のエラーか確認します。

原因と対応策を提案してくれます。このケースではセッション切れが発生したようです。
VSCodeを再起動して、AWSに再接続することで問題解決しました。

④ 検証結果と注意点
良かった点
●コードのたたき台を簡単に作成できる。
初めて構築するリソースでも、日本語で要件を伝えるだけでコーディング案を生成してくれます。ゼロからドキュメントを読む手間が省け、開発の初動が大幅にスピードアップしました。
●エラー発生時の的確なサポート
terraform plan、applyの実行時の複雑なエラーメッセージを読み込ませることで、的確な原因究明と対応案を提示してくれます。納期まで時間がない時、トラブル対応時など焦りがちな時にも24時間相談できるパートナーとして非常に心強い存在です。
苦労した点、注意点
●既存コードの流用、環境複製にはあまり向かない
例えば、開発環境のコードを本番用に流用して詳細を調整するといったケースにはあまり向かないかもしれません。要件を明確に伝えないと、プロンプトの書き方に起因する予期せぬ挙動(コードの大幅な書き換え)を行うことがあります。指示出しに時間をかけるよりも、手動で修正した方が確実で早いと感じました。
●最低限の知識とリファレンスの併用が必要
不十分なプロンプトを与えると「デプロイできるが要件と照らし合わせて不適切な設定」が含まれる可能性もあります。生成されたコードの正誤を判断するためには、公式リファレンスの確認や経験者によるコードレビューなど、人間による最終チェックが必要になります。
⑤まとめ
今回の検証を通じて、Amazon Q DeveloperはTerraform開発における「はじめの一歩」と「困った時のお助けツール」として有効であることがわかりました。
Amazon Q Developerを活かすには
1.「コードのたたき台を作る」作業に活用する:初めて作るリソースのひな形作成に使用する
2.「デバッグのサポート対応」として活用する:エラー解消のヒントを得るために使用する
3.過信せず、検証する:Amazon Qにより生成されたコードを公式ドキュメントなどと照らし合わせる
Amazon Q に全てを任せるのではなく、「コードのたたき台作成とデバッグのサポート」として適切に使用することでTerraform開発の生産性は確実に向上すると思います。
本記事が、これからAmazon Q Developerを導入しようと考えている方の参考になれば幸いです。
We Are Hiring!