株式会社よりそうでSREを担当している内田です。
普段SREとして活動していると、プログラムを書かないわけではありませんが、アプリケーション開発に比べると頻度は低く、規模も小さいものが主です。そのため、これまで積極的にAIエージェントをコーディングに利用することはありませんでした。
しかし最近、Googleがリリースした「Antigravity」というAIエージェントファーストのIDEが凄いという話を聞き、以前から作ろうと思っていた運用ユーティリティの作成にこれを利用してみました。 本記事では、その開発プロセスと、実際にAIエージェントを使ってみて感じた「SRE視点での気づき」を共有します。
作成したもの
CloudFrontのキャッシュ削除ツール
機能: 対象のCloudFrontディストリビューションを選択し、キャッシュ削除(Invalidation)を実行するWebアプリ
言語: Go
実行環境: AWS Lambda
開発プロセス
-
プロジェクトの雛形作成
まず、Terraformの構成管理についてはGoogle Cloudのベストプラクティスを参考に、ディレクトリ構成のテンプレートを用意しました。 -
アプリケーションコードの実装
AIエージェントに対し、以下の情報を与えて実装を指示しました。
コードを出力するディレクトリ
使用言語(Go)
実行環境(AWS Lambda)
大まかな仕様(CloudFrontの選択とキャッシュ削除)
画面デザインの要望
結果: この指示だけで、すでにほぼ問題なく動作するコードが出力されました。驚きの精度です。 ただ、事前に細かいルール(規約など)を与えていなかったため、以下の点で調整が必要になりました。
ログ出力のフォーマット
CloudFront選択時に表示する付加情報
修正プロセスにおいても、自分でコードを書き換えるのではなく、「小さな修正でもAIエージェントに指示して直させる」 ことを徹底しました。
- Terraformによるインフラ実装
アプリの実装完了後、Terraformコードの記述もAIエージェントに任せてみました。 「生成したGoの処理をLambdaで実行したい」という旨を指示したところ、こちらもほぼ完成されたコードが出力されました。
苦戦した点:
ビルド処理の欠落: 最初はGoのビルド処理が含まれていなかったため、追加で指示を出しました。
デプロイ時の依存関係: Terraform実行時に「ビルド済みのバイナリファイル」が存在しないとエラーになるケースがあり、これをAIへの指示だけで解決するのは困難でした。最終的に、この部分は手動で修正を行いました。
AIエージェントを使ってみた感想
今回AIエージェントを利用して開発を行ってみて、「プログラミングをしているというより、コードレビューを行っている」 ような感覚に近いと感じました。
良かった点: とりあえず動くものを作り出すスピードは圧倒的に速いです。
課題点: 出力されるコードの「読みやすさ」や「処理の自然さ」については、まだ若干の課題があるように感じます。
SREのような「たまにツールを作る」というシーンにおいて、AIエージェントは強力なパートナーになり得ると感じました。今後も積極的に活用していきたいと思います。