Amazon Web Services ブログ
東京海上日動システムズ株式会社様の AWS 生成 AI 事例:LLM を活用したアプリケーションモダナイゼーション
生成 AI の活用が様々な分野で広がる中、アプリケーション開発においても、コード生成や言語間の変換といったタスクでその力を発揮しています。今回ご紹介する事例は、これらの一般的なユースケースを超えた、よりチャレンジングな取り組みです。それは、アプリケーションのモダナイゼーションプロセス全体に生成 AI を活用するという挑戦です。
アプリケーションのモダナイゼーションは、多くの企業が直面する重要な課題です。一般的に、このプロセスは二つの主要なアプローチで説明されます。一つは既存のアプリケーションをクラウドに「リフト & シフト」する方法で、もう一つはアプリケーションを「リファクタリング」し、クラウドネイティブなアーキテクチャで再構築する方法です。「リフト & シフト」は短期的には迅速ですが、クラウドの利点を最大限に活用できない可能性があります。一方、「リファクタリング」は理想的ですが、時間とリソースを大量に必要とします。
しかし、最終的な目標は同じです。それは、アプリケーションを真にクラウドネイティブなものへと進化させることです。スケーラビリティ、柔軟性、コスト効率の向上を実現し、ビジネスの俊敏性を高めることが、このモダナイゼーションの本質的な目的です。
東京海上日動システムズ株式会社(以下、東京海上日動システムズ)と AWS は、リファクタリングによるクラウドネイティブ化への道のりに、生成AIを積極活用しようと取り組みました。従来、高度な専門知識と膨大な時間を要するこのプロセスを、生成AIの力を借りてどこまで効率化・最適化できるのか、多くの企業の皆様にとって参考になると思います。
東京海上日動システムズの状況と課題
東京海上日動システムズでは、多くの基幹系システムをすでにAWSに移行していますが、一部のシステムはまだオンプレミス環境で運用されています。また、 AWS へ移行済みのシステムも多くはシンプルなリフト&シフトのアプローチを採用したため、レガシーなアプリケーション構造をそのまま踏襲しています。
同社は、オンプレミスのサーバーや Amazon EC2 上で稼働しているレガシーなJavaアプリケーションをサーバーレスアーキテクチャへモダナイズすることを目指しています。
このモダナイゼーションプロセスを効率化させるため、同社は生成 AI の活用に着目しました。Java で構築されたモノリシックなアプリケーションを AWS Lambda を中心としたサーバーレスアーキテクチャへモダナイズする過程で、通常は高いスキルを持ったエンジニアを数多く投入する必要があります。この作業を生成 AI (Amazon Bedrock)を用いて効率化することを検討しました。
しかし、アプリケーションのモダナイゼーションは単なるコードの生成や変換といったタスクのみで実現できるものではなく、複雑な工程と高いスキルが求められる作業です。
AWS Prototyping Program の採用
この複雑で難解な課題に取り組むため、AWS は Prototyping Program を提案しました。このプログラムでは AWS の Prototyping Engineer が、お客様の課題に合わせたシステムのプロトタイプを開発します。
AWS Prototyping Program は通常、お客様が実現したいシステムのプロトタイプをお客様に代わって、あるいはお客様と共に AWS の Prototyping Engineer が開発し、お客様の環境で AWS サービスがどのように動作するか、深い洞察や理解を得るためのものです。しかし今回のプロトタイピング活動では、お客様の業務システムを模したサンプルアプリケーションに対して生成 AI を使いながらサーバーレスアーキテクチャへモダナイズします。言うなればモダナイズされたサンプルアプリケーションがプロトタイプとなります。今回の活動では、作成されたプロトタイプそのものではなく、活動を通じて確立させた生成AIの活用プロセスと方法論を実践的に検証し、そのノウハウを蓄積することに焦点を当てました。
プロトタイピングのアプローチを選択した理由
生成 AI を活用したアプリケーションのモダナイゼーションは前例や実績が少ない新しい取り組みのため、試行錯誤しながら改善を繰り返す必要があります。また、アプリケーションのモダナイゼーションは単発作業ではなく今後繰り返し発生する作業であるため、単なる成果物にフォーカスするのではなく、そこに至るプロセスと方法論の理解が重要だと考えました。
また、生成 AI を活用したアプリケーションのモダナイゼーションは複数の技術領域に対する深い造詣が必要です。あらゆる業界やセグメントで活動実績があり、複数の技術領域や多種多様な AWS サービスを組み合わせ迅速にプロトタイプを構築できるプロトタイピングチームの参画は不可欠でした。
プロトタイピングの詳細
本プロトタイピングでは、Amazon Bedrock で利用できる Claude 3.5 Sonnet を広範囲に活用しました。アプリケーションのモダナイゼーションは複雑な作業です。単にプロンプトを工夫して入力すれば良いというものではなく、効果的な戦略を立てることが重要でした。
主なアプローチとして以下が挙げられます:
- タスクの分割:大規模なモダナイゼーションタスクを小さな単位に分割し、各タスクに対して最適なプロンプトを設計しました。例えば、生成 AI を使ってモダナイズ後のアプリケーションの REST API インターフェースを最初に定義することで後続タスクでやるべきことを明確に細分化できます。
- 段階的詳細化:アプリケーションコードは最初からいきなり生成させるのではなく、まずは必要となるコンポーネントや関数を生成 AI に列挙させ、その後にそれらの構成要素の中身を一つずつ実装させていく段階的詳細化のアプローチを採用しました。
- 共通タスクの前処理:DBアクセスやフロントエンドの Routing 処理など、ビジネスロジックから分離できる共通部品は予め用意しておき、プロンプトにそれら共通部品に関する情報を含めました。生成 AI が注力すべきスコープをビジネスロジックに集中させることで、ノイズの少ない生成 AI への入出力が期待できます。
- コンテキストの維持:複数のステップにまたがるタスクでは、前のステップの出力を次のステップの入力として使用し、一貫性を保ちました。Anthropic Claude は 200,000 トークンのコンテキストウィンドウがあり、大量の情報を渡すことを可能にします。
- 人間によるレビューと修正:作業の大半は生成 AI に任せることができますが完全ではありません。生成AIの出力を人間が確認し、必要に応じて人手による修正またはプロンプトへの指示を追加することで品質を確保しました。
- 大規模アプリケーションの考慮:今回のプロトタイプ対象は小規模なサンプルアプリケーションであったため、アプリケーションソースコードの全量をプロンプトに含めることも可能でした。しかし大規模なアプリケーションのモダナイゼーションも考慮し、ソースコードの全量ではなくJSP や Controller のソースコードを中心に必要最低限のコードのみをプロンプトに与えても精度が落ちないように検証と改善を繰り返しました。
これらのアプローチを用いて、サンプルのJavaアプリケーションを対象に、以下のような成果を達成しました:
- アプリケーションの構造解析と依存関係の特定
- フロントエンドとバックエンドを分離するための REST API インターフェースの定義
- ステートレスな SPA(Single Page Application) へ変更するための DB スキーマの更新案の提案
- バックエンドアプリケーション処理の抽出と AWS Lambda (今回は Python への変換も合わせて行いました)用のコードの生成
- フロントエンドアプリケーション処理の抽出と Vue.js 用のコードの生成
お客様の評価と今後の展開
東京海上日動システムズはこのプロトタイピングの結果を高く評価し、プロトタイピングプログラムの成果物を使用して小規模な検証用アプリケーションに対してPoCを実施しました。95%以上は生成AIが生成したコードで動作し、発生したエラーについても多くは単純な修正で解消できました。一方で、一つのパッケージで完結しないJavaアプリケーションの場合やバリデーションチェック、エラーハンドリングについては作業プロセスやプロンプトの工夫によりさらなる改善の余地があると考えています。今回のPoCの総括として、アプリケーションのモダナイゼーションプロセスに生成 AI を活用する試みは一定の成果があったと判断しています。
東京海上日動システムズ デジタルイノベーション本部 デジタルイノベーション開発部 光岡様からは以下のコメントをいただいています。
AWS Prototyping Programは当社の難しい課題に対して有意義な知見を与えてくれました。今回の取り組みは非常にチャレンジングな領域なため当社社員だけだと推進が難しかったのですが、AWSの支援があってとても良い結果が出せました。今回の PoC の結果を受けて、来年度は実際のアプリケーションのモダナイズにも少しずつ活用していく予定です。そこで得た知見をもとにさらなる改善を繰り返しながら、将来的にはより複雑で規模の大きなアプリケーションのモダナイズへも展開していくことを目指しています。
まとめ
本事例を通じて、Amazon Bedrock および Anthropic Claude が複雑なアプリケーションモダナイゼーションタスクにおいても高い能力を発揮することが実証されました。特に、コードの解析、リファクタリング案の提示、アーキテクチャ変更の提案など、多岐にわたる領域で有用性が確認されました。
また、AWS Prototyping Program が、単なる成果物の提供にとどまらず、新しい技術やアプローチの実証と知見の共有に大きな価値を提供できることも示されました。この協働的なアプローチにより、お客様は自社の課題に即した形で生成 AI の活用方法を学び、実践する準備を整えることができました。
生成 AI を活用したアプリケーションモダナイゼーションは、まだ発展途上の分野です。しかし、本事例が示すように、適切な戦略と方法論を組み合わせることで、従来の手法よりも効率的かつ効果的にクラウドネイティブ化を進められる可能性があります。今後、さらに多くの企業が同様のアプローチを採用し、デジタルトランスフォーメーションを加速させることが期待されます。
ソリューションアーキテクト 小野 卓人、神部 洋介