アクセンチュアがCOBOLアプリをサーバーレスで稼働させるマイグレーションサービスを発表。仏ブルーエイジ(Blu Age)と共同で2019年7月からサービスを開始した。

 COBOLプログラムを稼働させるハードウエアの保守・運用には多大なコストが発生するのが一般的だ。だが、クラウド基盤の活用によって、この状況を改善できる可能性が出てきた。例えば仏ブルーエイジが手掛けている「Serverless COBOL for AWS」の利用だ。国内ではアクセンチュアが同サービスを使ったマイグレーションサービスを開始した。

 Serverless COBOL for AWSは、「AWS Lambda」を使って既存のCOBOLシステムをサーバーレス環境で動かすサービスである。サーバーレス処理は、プログラムが稼働するときだけサーバーが立ち上がるので、コスト効率に優れている。ブルーエイジのティエリ・マソン シニアソフトウエアアーキテクトは、「サーバーレスに移行できれば、メインフレームの保守・運用に費やしていたコストを8割削減できる」と話す。

バイトコードにリコンパイル

 Serverless COBOL for AWSは、COBOLプログラムをJavaバイトコードにリコンパイルし、AWSLambda上のJavaランタイムで実行する(図1)。

図1●サーバーレスでCOBOLシステムを動かす仕組み
[画像のクリックで拡大表示]

 利用するには、COBOLプログラムの移行箇所の特定やその影響範囲を判断するため、ブルーエイジのアナライザーを使ってプログラムを解析する。その後、コードエディターのVisual Studio Code(VSCode)の拡張機能を使い、Javaバイトコードにリコンパイルする。

 VSCodeの拡張機能やCOBOLコンパイラーはブルーエイジが開発した。コンパイラーはブルーエイジがクラウド上に配備している。VSCode上でコンパイルの処理を指定すると、クラウド上で実行し、開発者にコンパイル後のJARファイルを送る仕組みだ。

 そして、開発者がJARファイルをデプロイ(配置)してAWS Lambda上で実行する。マソン氏は「多くの場合は、COBOLプログラムを書き換えることなく、リコンパイルするだけでそのままAWS Lambda上で動く」と話す。

 ただし、Serverless COBOL for AWSの利用には注意点がある。処理時間に上限があるAWS Lambdaは、「長いトランザクション処理などは苦手」(マソン氏)という。このような処理は、COBOLプログラムの分割やリライトといった変更が必要になるだろう。さらにリコンパイル後のプログラムの実行では、LambdaがJava実行環境を立ち上げる。初回実行時は処理に時間がかかることに注意が必要だ。

 アクセンチュアのテクノロジーコンサルティング本部 インテリジェントソフトウェアエンジニアリングサービス グループ 中野恭秀アソシエイト・ディレクターは「プログラムの規模や複雑性によってはAWS Lambdaへの移行ではなく、リホストが向く場合もある。企業のCOBOL資産の特性に合わせて最適なマイグレーション方法を提案していきたい」と話す。