はじめに
Amazon Q Developer Transform for Mainframeが新たにAWS Transform for Mainframeとして一般提供が開始されました。IBM z/OSのCOBOLをJavaに自動変換する機能です。
AWS Transformでは、同じくQ Developer Transformにて提供されていたVMwareと.NETに加え、移行評価機能も提供されています。執筆時点ではUS East (N. Virginia)、Europe (Frankfurt)の2リージョンで利用できます。現在提供されている機能は無料で利用できます(今後有償機能が追加される可能性はあるとのことです)。
製品ページ: https://aws.amazon.com/transform/
ユーザーガイド: https://docs.aws.amazon.com/transform/latest/userguide/what-is-service.html
試してみた
準備
セットアップ
こちらの記事を参考にさせていただきました。
IAM Identity Centerをセットアップしたうえで、Transformのコンソールからユーザーをアサインします。
ソースコード格納
ソースコードをzipファイルにまとめ、S3バケットに格納します。
今回はAWSが提供しているCOBOLのサンプルアプリケーションCardDemoを利用しました。appディレクトリ内のファイルをzipにし、S3バケットにアップロードします。
ジョブの作成
チャットしてジョブの設定を決め、Create Jobボタンを押下します。
今回は「1. Analyze code, Generate technical documentation, Decompose code, Plan Migration sequence and Transform code to Java.」を選択しました。
新機能を使用したい場合、ここでExtract business logic や Reforgeを追加することが可能です。
ジョブの実行
ジョブの全体は以下のとおりです(キャプチャはジョブ完了後のものです)。
基本的にAIエージェントが自律的に進めてくれるサービスですが、ユーザーからの情報の入力や承認が必要なタスクもあります。
Job PlanにRequiredと表示されている、または、ステータスがAwaiting human inputとなっているとき、何らかの入力やSend to AWS Transformボタンの押下が必要です。
Kick off modernization
ソースコードを格納したS3と接続できるようにします。
AWSアカウントIDを入力します。
S3バケットのARNを入力します。
リンクを開き、Approveします。
ソースコードzipのS3 URIを入力します。
Analyze code
分析が完了するとコードの行数やファイルタイプが示されます。
ファイル名、プログラムIDの重複についても分析されるようになりました。
また、ファイルタイプがTXTまたはUNKNOWNになったファイルの分析結果をReclassifyから手動で修正できるようになりました。
Generate technical documentation
プログラムの概要やI/O等が記載されたドキュメントが生成されます。
表紙の記載事項等をカスタマイズできるようになりました(下図黄枠)。カスタマイズする場合は、zip作成時に必要なファイルを同梱する必要があります。
(追加した場合)Extract business logic
ロジックを記述したJSONファイルが生成されます。アプリケーション上でソースファイルを選択すると、処理の概要やフローダイアグラム等を確認することができます。生成には80分程度かかりました。
Decompose code
生成されたドキュメントを参考に、ファイルを選択しドメインに分解します。次のステップで移行計画を作成する際、ここで作成したドメインを使用します。
グラフビューから依存関係を確認することもできます。
Plan migration wave
Refactor code
コード変換したいドメインを選択し、Javaコードを生成します。
Configure transformationから設定を変更することもできます。
(追加した場合)Reforge(Preview)
Refactorで生成されたコードは、COBOLとの対応関係がわかりやすい命名規則となっています。このクラス名を変更し、生成したコードの可読性を高める機能です。Reforgeのみのジョブを作成することも可能でした。
おわりに
メインフレームやBlu Ageに関する専門知識なしで変換を実行でき、AIエージェントらしい強みを感じられます。また短時間で実行できるため、提案段階ないしはPoCで自動変換をクイックに検証することができます。ただし、Blu Ageの全機能がサポートされているわけではない点は注意が必要です。
基本的にQ Developer時代と同様の使用感でありつつ、機能が改善・追加されていました。特にExtract business logicはコードの概要を非常にわかりやすく出力してくれるもので、熱い新機能でした。チャットからアクセスできる新機能は今回検証が上手くいかなかったため再挑戦したいと思います。