こんにちは、SCSK株式会社の小寺崇仁です。
先日行われた AWS re:invent 2024 に現地参加してきました。
その中で、発表された Amazon Q にアシストしてもらう、COBOL から Java への移行について検証したいと思います。
※プレビュー版なので今後、変更等あるかと思います。
参考URL
以下のサイトを参考にさせていただきました。
https://aws.amazon.com/jp/blogs/news/announcing-amazon-q-developer-transformation-capabilities-for-net-mainframe-and-vmware-workloads-preview/
https://bluinsights.aws/
COBOL の準備
COBOLについてはあまり知識がないので、とりあえず動くHelloWorldを作成しました。
インストール
Amazon LinuxにOpenCOBOLをインストールしました。
dnf groupinfo "Development Tools" dnf install gmp-devel dnf install ibdb-devel wget "https://www.osscons.jp/osscobol/files?action=cabinet_action_main_download&block_id=414&room_id=21&cabinet_id=11&file_id=406&upload_id=911"-O opensource-cobol-1.5.2J.tar.gz tar zxvf opensource-cobol-1.5.2J.tar.gz cd opensource-cobol-152J_utf8/ ./configure make make install
HelloWorld(hw.cbl )
000100 IDENTIFICATION DIVISION. 000200 PROGRAM-ID. MAIN. 000300 000400 ENVIRONMENT DIVISION. 000500 CONFIGURATION SECTION. 000600 000700 DATA DIVISION. 000800 WORKING-STORAGE SECTION. 000900 01 WS-HELLOW-MESSAGE PIC X(19) VALUE 'Hellow World kodera'. 001000 001100 PROCEDURE DIVISION. 001200 PERFORM DISPLAY-HELLOW 001300 STOP RUN. 001400 001500 DISPLAY-HELLOW SECTION. 001600 DISPLAY WS-HELLOW-MESSAGE. 001700 EXIT.
コンパイル&実行
[root@ip-10-0-2-15 2]# cobc -x hw.cbl [root@ip-10-0-2-15 2]# [root@ip-10-0-2-15 2]# ./hw Hellow World kodera
Amazon Q Developer のサブスクリプション登録
手探りで作成したため、手順が漏れてたらすみません。
初期設定
バージニアでAmazon Q Developerを開くと以下の画面になりました。AWS IAM Identity Center で作成しました。
有効化
AWS IAM Identity Center でユーザを作成
Amazon Q Developer Pro をサブスクライブ
作成したユーザでサブスクリプション登録します。ユーザーあたりの課金があるのでご注意ください。
Transform settings を有効化
移行ジョブ作成
Amazon Q とチャット形式でジョブを作成します。
Cobolを移行したいので、「COBOL」と入力。次にJavaへの移行は5番目なので、「5」と入力します。
ジョブの名前とかはこれでよいか聞かれたので、「OK」と返答します。
ジョブ作成するボタンをクリックします。
ジョブ設定
左のメニューがすべて緑になるように順番に設定します。
Kick off modernization
ワークスペースのS3を設定します。KMSの設定を間違えてはまりました。
AWSのアカウントIDを入力します。
承認用のURLが作成されるので、開いて、承認します。
Generate documentation
ドキュメントが作成できるみたいです。
S3に作成されます。
Decompose code
ドメイン?をつけるみたいです。「Create Domain」で新しく作成します。
適当に「domain」としています。
作成した「domain」を選択して「Send to Q」を押します。
Refactor code
しばらく待つと。。。javaに変換されたコードがS3に作成されます。
Java で実行
作成されたJavaのコードを確認するとSplingBootで作成されていました。そのため、eclipseで実行します。
ソースのインポート
「ファイル」ー>「インポート」を開き、「既存Mavenプロジェクト」を選択します。
S3からダウンロードした、ソースの場所を選択し「完了」をクリックします。
実行
「app-pom」を右クリックして、「実行」ー>「Maven install」をクリックします。
実行するとMavenで必要なライブラリをダウンロードするのですが、見つからないファイルがありエラーとなりました。
エラー調査
以下のファイルがダウンロードできなかったです。
調べていくと、「AWS Blu Insights」で使用できるライブラリでした。
これをダウンロードするには、認定&承認が必要なようで、ここで断念しました。
今回はここまで。
COBOLのソース変換をするのは「AWS Mainframe Modernization」というサービスがあります。
Amazon Qを使用すれば、チャット形式で「AWS Mainframe Modernization」のジョブの作成(移行)を行うことができます。
上記キャプチャでイメージが伝われば幸いです。