よりそうでSREを担当している内田です。
弊社では最近、FaaS(AWS Lambdaなど)の開発言語を基本的にGoに統一するという決定をしました。本記事では、その背景とAI エージェントを活用した効率的な移行の取り組みについてご紹介します。
なぜNode.jsからGoへ移行するのか
主な理由は、メンテナンス性の向上とコスト最適化の2点です。
| 比較項目 | Node.js | Go | 移行のメリット |
|---|---|---|---|
| 保守性 | バージョンアップ時の修正負荷が高い | 後方互換性が高く安定している | 運用コストの削減 |
| 実行速度 | 標準的 | 高速 | 実行時間課金の抑制 |
今まではNode.jsを利用してきましたが、定期的なバージョンアップのたびに依存関係の修正が必要になるケースが多く、運用上の課題となっていました。また、実行時間で課金されるFaaSにおいて、実行速度に優れるGoを採用することはダイレクトにコストメリットにつながります。
AI エージェントを活用したトランスコード
移行にあたっての大きな障壁は、テストコードがなくメンテナンスも不十分な「塩漬け」状態の資産が少なくないことでした。これらを一つずつ手動で書き換えるのは膨大な工数がかかりますが、現在はAI エージェントを活用することで大幅な省力化を実現しています。
AIエージェントによるトランスコードは、単なる言語の置き換えにとどまらず、Goらしい書き方(ボイラープレートの生成など)を含め、非常にスムーズに進行しています。
テストコードがない中での品質担保
テストコードがない既存機能の移行では、移行前後での「現新比較」を徹底しています。
具体的には、AI エージェントを用いて入出力の期待値を整理し、トランスコード前後で機能差や実行結果に差異が生じないかを厳密に確認しています。これにより、ドキュメントが不足している古いコードでも、一定の安全性を担保しながら移行を進めることができています。
まとめ
言語の統一という戦略的な意思決定と、AI エージェントという最新ツールの活用を組み合わせることで、負債の解消とコスト最適化を同時に進めることができています。
「古いFaaS資産をどうにかしたい」と考えている方の参考になれば幸いです。