この記事について問い合わせる

AWSサーバーレス。メインフレームのクラウドマイグレーションとマイクロサービス化の可能性を探る。 COBOLなどレガシー系プログラムは移行できるのか?

はじめに

いわゆるレガシーシステム(レガシーなIT資産)と呼ばれる、メインフレームやオフコン上で稼働するCOBOLシステムや簡易言語(4GL)のプログラムはいまだに数多く存在しています。一方でクラウド全盛の最近なので、なんとかこれらのレガシーシステム資産をAWS上で、サーバーレス化が実現できないかということを実験してみました。

AWSのサーバレス環境におけるCOBOLプログラムの動作検証の一環として、メインフレーム言語のひとつである4GL / Q言語をCOBOL化、クラウド化、サーバレス化という流れになります。

これにより「AWSマイグレーション」としてWindowsやLinuxなどのオープン系のオンプレ環境だけでなく、いわゆる「レガシー系IT資産」の移行、さらにサーバレス環境を利用することによる、既存資産の部分活用としてのマイクロサービス化の可能性を検証します。

前提条件と環境

今回の技術コラムにおいては、メインフレーム(汎用機・ホスト環境)で動作する4GLと呼ばれる簡易言語系の、いわゆる「レガシー資産」をOpen COBOL化と同時にクラウドへ移行しサーバーレスによるマイクロサービス化までを検証しました。

移行元のプログラム資産は、代表的な4GL(各社メインフレームで専用に動作する簡易言語)のひとつである日立メインフレーム上のQ言語です。クラウド上にメインフレームの各社コンピューターの独自環境をそのまま再現することは困難なので、より汎用的なレガシー系プログラム言語であるCOBOLに異言語変換した後に、AWS上でCOBOLプログラムを動作させるという流れになります。

なお、このQ言語からCOBOLへの異言語変換の部分の詳細については、その他のマイグレーション関連記事を参考にしてください。

移行元の環境と資産

環境 日立メインフレーム(中型機)

OS   VOS K(主に中型機に実装されていた専用OS

言語 Q言語(日立メインフレーム4GL:第四世代簡易言語)

処理 バッチ処理

移行先の環境

クラウド化の実装

Amazon EC2 (Linux環境)

OpenCOBOL(OSS)

従来、日立系のCOBOL(COBOL85)や4GLをオープン環境へ移行する場合においては、日立プロダクトであるCOBOL2002に移行するのが親和性が高く、移行事例も多数ありますが、今回はさらにクラウドに移行してAWS上で動作させるという観点から、OSSであるOpenCOBOLを選択しました。

サーバーレス化の実装

AWS Lambda

OpenCOBOL(OSS)

検証方法

クラウド化の実装

移行元環境と移行先環境で同一のプログラムを起動し出力されたファイルの内容比較を行うことにより、処理ロジックの移行(ソースコードのリライト型のマイグレーション)が実現できるかを確認します。

比較においては従来のマイグレーションと同様に文字コードの違いによる差異や実行時のタイムスタンプなどの差異については考慮し比較対象外とします。

サーバレス化の実装

基本的には、クラウド化実装検証と同じ条件で実施します。

クラウド化の実装

Amazon EC2への移行については以下の手順で行います。

プログラム移行

従来のマイグレーションと同様に言語変換(リライト)することにより移行します。ただし、従来はQ言語は同じ日立環境であるCOBOL2002への移行が主流であるため、Q言語→COBOL2002→OpenCOBOLへの二段階の変換としました。COBOL2002の段階では日立メインフレーム特有の記述(COBOL2002の機能として提供)が残っているため、それを汎用的なロジックへ再変換しています。

・システムズのQ言語マイグレーション手法を用いてCOBOL変換(ここではOpenCOBOL)を行います。

・JCL(メインフレームのスプリクト言語)をLinux上で動作するシェルプログラムであるbashに変換を行います。

処理データの検証

・移行元、移行先それぞれの処理前後のデータを比較することにより動作検証を行います。

検証方法

・Amazon EC2(Linux)上でbashを起動します。

・bashからOpenCOBOLプログラムを呼び出します。

・出力ファイルの検証を実施します。

サーバーレス化の実装

プログラム移行

・Q言語の業務ロジックをCOBOLに変換し、AWS Lambda上に作成します。

・プログラムのビルド・デプロイはAmazonEC2より実施します。

検証データ

・入出力ファイルはAmazon S3(ファイルストレージ)上に配置します。

検証方法

インプットデータをS3(ファイルストレージ)にアップロードします。

・ファイルアップロードをトリガーとしてAWS Lambdaが起動します。

・AWS Lambda(OpenCOBOL)が呼び出されることにより、出力ファイルが生成されます。

・出力ファイルの検証を実施します。

まとめ:メインフレーム環境からのAWSマイグレーションの可能性について

今回の実験においては、従来型のクラウド環境(仮想環境)であるAmazon EC2への移行、それからAWSのサービスであるAWS Lambdaを用いたサーバーレス環境での動作の2つを検証しました。オンプレのオープン環境への移行に比べて、大きな変化点のないAmazon EC2への移行だけでなくAWS Lambdaに関しての動作確認が取れた点が大きなポイントです。

クラウド化の検証(Amazon EC2への移行)

基本的な移行方法であるAmazon EC2を利用したクラウド化ですが、このクラウド化を進めることにより、いまもなお多く現存するメインフレームやオフコンといった専用機のレガシー資産をクラウドへ移行することが可能となります。

クラウド化を進めたいが、長年のノウハウや普遍的な業務処理が数多く残されているCOBOLや4GL(Q言語ほか)などのロジックやシステム運用を踏襲したい場合、一から作り直すだけでなく、一部流用することで選択肢の幅が広がることになります。

サーバーレス化の検証(AWS Lambdaへの移行)

次に行ったサーバーレス化の検証のねらいは、業務システムやサブシステム単位のサーバーを持たずにマイクロサービス化することが目的です。サービス化、サーバーレス化が実現すると、特定のサブシステムや特定の処理だけがマイクロサービス化されることになり、情報システム部などのIT運用部門がハード保守の呪縛から解き放たれ、より事業部門へのITサービス向上に集中することや経営効率化が可能となります。

それぞれの検証ではプログラムを起動するタイミングが異なります。今回は実験なので、トライアル&エラーで手探りで進めましたが、実際のクラウド化やサーバーレスマイグレーションにおいては移行後の環境や運用イメージ(オペレーション等も含む)をしっかりと検討し、それを運用設計に落とし込むことによって、仮想環境、サーバーレス環境、それぞれの利点を組み合わせて活用することになります。今回のサーバーレス化検証の中には、単純にストレート移行できないようなケースも発生しました。

今後の可能性と今回の制約事項

メインフレーム等からのクラウド移行(AWSマイグレーション)

実施可能

メインフレームからのAWS環境へのマイグレーションにおいてはプログラムレベルでの移行性検証は成功であると言えます。つまり、Amazon EC2に稼動環境を構築し動作させることはうまくいきました。

また、AWS Lambdaを用いたサーバーレス化においてもプログラム単位での移行性検証は成功したといえるでしょう。

今回は日本語コードの変換やデータの型変換を伴わない、単純なファイルの読み書きであったためデータに起因する問題は発生していませんが、従来メインフレームのマイグレーションにおいては、DB/DCの移行などが大きな課題になります。このあたりは、メインフレームやオフコンからオンプレミスのオープン環境(WindowsやLinux)への、従来のDB/DC移行のノウハウが活かせそうです。

2つの環境への環境コンバージョン、言語コンバージョンとしての検証は成功しましたが、運用面における検証などは実施していません。実際のマイグレーションにおいては言語変換やDB/DC変換とともに移行後の運用イメージなどの詳細検討が、着手前に必要になってくることでしょう。

OpenCOBOL関連の制約事項

今回、実験ということもあり、Q言語からOpenCOBOLへの移行に関しては詳細な移行設計を実施せず、過去に事例として実績のあるQ言語→COBOL2002変換をベースとしたシステムズのQ言語マイグレーション基準を踏襲することで変換しました。

COBOL2002とOpenCOBOLの言語特性の違いにより検証中にいくつかのエラーが発生しましたが、今回選択したプログラムが比較的単純なものであったこともあり、動作検証優先で実装できました。

お問い合わせ

タイトル 必須
お名前 必須
お名前(フリガナ) 必須
メールアドレス 必須
会社名 必須
部署
役職
電話番号 必須
お問い合わせ内容

個人情報保護方針

株式会社システムズは、コンピュータ関連システムの構築、コンサルテーション、ソフトウェアの 開発・設計・販売・保守等を提供するに当たり、個人情報はお客様、お取引先様、株主様および 従業者等からお預かりした重要な資産であるという認識のもと、情報社会の一端を担う企業とし ての社会的責務を全うするため、個人情報に関する法令、国が定める指針、規範に基づき以下 に個人情報保護方針を定め、個人情報の厳正な取り扱いに努めます。

1.目的

個人情報の重要性を全社員・役員に認識させ、個人情報に関する法令、国が定める指針、規範を遵守するとともに、管理規程を制定し着実に実施いたします。またこれらの取り組みを継続的に維持および改善いたします。

2.個人情報の取得

個人情報はお客様ご本人に利用目的を明示し同意を得た上で、サービス提供上必要な範囲内で取得します。

3.個人情報の利用

取得した個人情報は利用目的にのみ使用します。お客様の同意がある場合または法令・指針・規範等に基づく場合を除き、目的外利用および第三者への提供・開示はいたしません。またそのための措置を講じます。

4.Googleアナリティクスの利用

  1. 当サイトは、利用状況を把握し、サイトの改善を図るため、Googleアナリティクスを利用しています。Google社が訪問履歴を収集・記録・分析しますが、個人を識別する情報は含まれておりません。
  2. 当サイトではGoogleアナリティクスデータとお問い合わせフォームから送信された個人情報を紐付けることが可能ですが、これを第三者に無断で提供・販売することはありません。
  3. Googleアナリティクスの利用規約とプライバシーポリシーにつきましては、Google社のサイトでご確認ください。
    Google Analyticsの利用規約
    Googleのプライバシーポリシー

また、Googleアナリティクスによる情報収集を停止することも可能です。「Google アナリティクス オプトアウトアドオン」をインストールし、ブラウザのアドオン設定を変更してください。

5.クッキーについて

当サイトでは、ウェブサイトの利便性向上を目的にクッキーを利用しています。クッキーはサーバーから利用者に送信されブラウザに保存される情報です。クッキーは無効にすることもできますが、その結果サイト機能の一部またはすべてが利用できなくなる可能性があります。

6.個人情報の管理

取得した個人情報について、充分な安全対策を実施し管理することで、不正アクセス・漏えい・滅失・毀損等の防止・是正をいたします。

7.苦情・お問い合わせへの対応

個人情報への扱いに対するお客様からの苦情およびお問い合わせには、誠意ある対応をいたします。

8.個人情報の開示等

取得した個人情報に関して、お客様ご本人からの訂正・削除および開示等のご要望には迅速かつ適切な対応をいたします。

制定日 2005年4月1日
改定日 2011年10月1日
株式会社 システムズ
代表取締役社長 小河原 隆史

当社の個人情報の取扱いにつきまして、ご意見・ご質問等ございましたら、下記までご連絡くださいますようお願い申し上げます。

株式会社 システムズ 個人情報保護に関するお問い合わせ先
個人情報お問い合わせ窓口
株式会社 システムズ 個人情報窓口

TEL:03-3493-0033
FAX:03-3493-2033
メールアドレス:kojin_jyouhou@systems-inc.co.jp

この記事を書いた人

筆者 BIチーム