Terraform/PulumiをAIアシストで書く:コード品質を保つプロンプト戦略
導入
IaC(Infrastructure as Code)ツール Terraform や Pulumi を AI に自動化させることで、開発速度と繰り返し手間の削減が可能です。しかし、AI で生成された IaC コードは、人間が書くコードと比べて、品質が低くなることが多いという問題があります。
背景・現状の課題
AI で生成された IaC コードは、人間が書くコードと比べて、次のような問題があります:
不適切な設定値を使用する
不要なリソースを作成する
不適切な依存関係を持つ
これらの問題は、AI が学習データに含まれている問題や、AI が生成したコードが人間が書くコードと同様の品質になっていない問題です。
具体的なアプローチ・実装パターン
以下、3つの選択肢を比較します:
1. コードレビュー:AI で生成された IaC コードは、人間が行うコードレビューを通過させることで、品質を保つことができます。しかし、コードレビューは時間の掛けものであり、AI で生成された IaC コードの量によって、人力リソースが大きくなることになります。
2. 静的解析:IaC ツールが提供する静的解析ツールを使用することで、コードの品質を確認できます。静的解析は、AI で生成された IaC コードに対しても有効ですが、静的解析ツールが提供する警告やエラーは、人間の判断が必要な場合があります。
3. プロンプト設計:AI で生成された IaC コードを作成する際に、品質を保つためのプロンプト設計を行うことで、品質が高くなる可能性があります。例えば、AI に次のようなプロンプトを与えることで、生成された IaC コードは、不適切な設定値や不要なリソースを含まないようになります:
```
... (続く)
```html
まとめ
AI で生成された IaC コードは、品質が低くなることが多いという問題があります。今回は、3つの選択肢を比較して、品質を保つためのプロンプト設計を紹介しました。AI で生成された IaC コードに対するコードレビューや静的解析は、品質を保つために役立ちますが、プロンプト設計が最も有効であると考えます。