こんにちは、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」のジョブの作成(移行)を行うことができます。
上記キャプチャでイメージが伝われば幸いです。