PHPで作ったシステムをJavaへ自動で移行 AWSがAI活用手法を公開
- AWSが、AI開発環境のKiroを活用してPHPからJavaへのシステム移行を自動化・反復可能にする手法を発表した。
- 独自スキャナーで設計を抽出し、動作検証用のテストを事前作成することで動作の不一致を防ぐ8段階の工程をとる。
- 個別作業用のKiroと大規模自動処理のAWS Transformで同じ設定ファイルを共有し、改善を相互に反映できる。
米アマゾン・ウェブ・サービス(AWS)は、AI開発環境「Kiro」を活用し、PHPで開発されたアプリケーションをJavaおよびSpring Bootへ移行する再利用可能なエンジンの構築手法を公開した。大規模なシステム移行において、手作業による書き換えの不確実性を減らし、検証可能で反復できる工程を確立することを目的としている。
長年運用されたPHPのコードベースには、フレームワーク固有の仕様や設定ファイルなど目に見えにくい場所に業務規則が散在している。そのため、Javaへ単純に書き換えて正常にコンパイルできても、実際の動作が異なる事態が起きやすい。今回の手法では、移行対象のコードを実行せずに字句を解析する単一のPHPスクリプト「discover-models.php」を用いて、データ構造や関係性を網羅したJSON形式の目録を作成する。さらにJavaのコードを生成する前に、元のPHPと同じ入出力結果を返すか判定する等価性検証ハーネスを構築し、動作の正しさを機械的に確認する。
移行工程は、目録作成から切り替えまでの8段階で構成される。人間が判断を下す前半の準備段階を経て、プロジェクトの土台構築やデータモデルの変換などは自動ループとして処理される。また、この移行手順を記述したMarkdown形式のスキルファイルは、対話的に1件ずつ移行を進めるKiroだけでなく、複数アプリケーションを並列処理する大規模移行サービス「AWS Transform」とも共有される。これにより、一方の修正内容がもう一方の処理へ即座に反映される仕組みとなっている。
公開された検証用リポジトリでは、オープンソースのLaravel製アプリケーションから4つのモデルをJava 21およびSpring Boot 3.4.1環境へ移行する構成例が示されている。動作環境にはPHP 8.0以上とMavenが必要となる。


この記事は AWS 機械学習ブログの発表を AI が日本語に要約したものです。正確な内容は原文をご確認ください。
アプリで開く