翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
AWS クラウドで高度なメインフレームファイルビューアを構築
ブーパシー・ゴパルサミー(AWS)とジェレミア・オコナー(AWS)によって作成されました
概要
このパターンでは、手順とコードサンプルを提供して、AWS サーバーレスサービスを使用することでメインフレームファイルを参照および確認するための高度なツールを構築することを支援します。このパターンは、メインフレーム入力ファイルを Amazon OpenSearch Service ドキュメントに変換してブラウズしたり検索したりする方法の例を示しています。ファイルビューアーツールは次の目標達成に役立ちます。
AWS ターゲット移行環境での一貫性を保持するため、メインフレームのファイル構造とレイアウトを同じにしてください(たとえば、外部にファイルを転送するバッチアプリケーションでも同じファイルレイアウトを維持できます)
メインフレーム移行中の開発とテストをスピードアップできます。
移行後のメンテナンス活動をSupport
前提条件と制限
前提条件
アクティブなAWS アカウント
レガシープラットフォームからアクセス可能なサブネットを持つ仮想プライベートクラウド (VPC)
注記
入力ファイルとそれに対応する共通ビジネス指向言語 (COBOL) コピーブック (: 入力ファイルと COBOL コピーブックの例については、GitHub リポジトリのgfs-mainframe-solutions
」を参照してください。 COBOL コピーブックの詳細については、IBM ウェブサイトの「Enterprise COBOL for z/OS 6.3 Programming Guide」を参照してください。)
制約事項
コピーブックの解析は、ネストレベルが 2 つ以下に限られています (OCCURS)。
アーキテクチャ
ソーステクノロジースタック
[FB (固定ブロック)
] 形式の入力ファイル COBOL コピーブックのレイアウト
ターゲットテクノロジースタック
Amazon Athena
Amazon OpenSearch Service
Amazon Simple Storage Service (Amazon S3)
AWS Lambda
AWS Step Functions
ターゲットアーキテクチャ
次の図は、メインフレーム入力ファイルを解析して OpenSearch Service ドキュメントに変換し、ブラウジングや検索を行うプロセスを示しています。

この図表は、次のワークフローを示しています:
管理者ユーザーまたはアプリケーションは、入力ファイルを 1 つの S3 バケットに、COBOL コピーブックを別の S3 バケットにプッシュします。
注記
入力ファイルを含む S3 バケットは、サーバーレスの Step Functions ワークフローを開始する Lambda 関数を呼び出します。: このパターンで Step Functions ワークフローを駆動するための S3 イベントトリガーと Lambda 関数の使用はオプションです。このパターンの GitHub コードサンプルにはこれらのサービスの使用は含まれていませんが、要件に応じてこれらのサービスを使用できます。
Step Functions ワークフローは、次の Lambda 関数のすべてのバッチプロセスを調整します。
この
s3copybookparser.py
関数はコピーブックのレイアウトを解析し、フィールド属性、データ型、オフセット (入力データ処理に必要) を抽出します。この
s3toathena.py
関数は Athena テーブルレイアウトを作成します。Athenas3toathena.py
は関数によって処理された入力データを解析し、そのデータを CSV ファイルに変換します。この
s3toelasticsearch.py
関数は S3 バケットから結果ファイルを取り込み、そのファイルを OpenSearch Service にプッシュします。
ユーザーは OpenSearch Service を使用して OpenSearch ダッシュボードにアクセスし、さまざまなテーブル形式や列形式のデータを取得し、インデックス化されたデータに対してクエリを実行します。
ツール
AWS サービス
「Amazon Athena」 は、標準 SQL を使用して Amazon Simple Storage Service (Amazon S3) 内のデータを直接分析することを支援するインタラクティブなクエリサービスです。
AWS Lambda は、サーバーのプロビジョニングや管理を行うことなくコードを実行できるコンピューティングサービスです。必要に応じてコードを実行し、自動的にスケーリングするため、課金は実際に使用したコンピューティング時間に対してのみ発生します。このパターンでは、Lambda を使用して、ファイルの解析、データの変換、OpenSearch Service へのデータのロードなどのコアロジックを実装して、インタラクティブなファイルアクセスが可能になります。
「Amazon OpenSearch Service」は、AWS クラウドにおける OpenSearch クラスターのデプロイ、オペレーション、スケーリングを支援するマネージドサービスです。このパターンでは、OpenSearch Service を使用して変換されたファイルにインデックスを付け、インタラクティブな検索機能をユーザーに提供します。
Amazon Simple Storage Service (Amazon S3) は、どのようなデータ量であっても、データを保存、保護、取得することを支援するクラウドベースのオブジェクトストレージサービスです。
「AWS コマンドラインインターフェイス (AWS CLI)」は、オープンソースのツールであり、コマンドラインシェルのコマンドを使用して AWS サービスとやり取りすることができます。
「AWS Identity and Access Management (IAM)」は、AWS リソースへのアクセスを安全に管理し、誰が認証され、使用する権限があるかを制御するのに役立ちます。
「AWS Step Functions」 は、Lambda関数と他のサービスを組み合わせてビジネスクリティカルなアプリケーションを構築できるサーバーレスオーケストレーションサービスです。このパターンでは、Step Functions を使用して Lambda 関数をオーケストレーションします。
その他のツール
コード
このパターンのコードは、GitHub 内の「gfs-mainframe-patterns
エピック
タスク | 説明 | 必要なスキル |
---|---|---|
S3 バケットを作成するには | コピーブック、入力ファイル、出力ファイルを保存するための 「S3 バケットを作成します」。S3 バケットには次のフォルダ構造をお勧めします。
| AWS 全般 |
s3copybook パーサー関数を作成します。 |
| AWS 全般 |
s3toアテナ関数を作成します。 |
| AWS 全般 |
s3toエラスティック検索関数を作成します。 |
| AWS 全般 |
OpenSearch サービスクラスターを作成します。 | クラスターを作成します
IAM ロールにアクセス許可を付与 Lambda 関数の IAM ロール (
| AWS 全般 |
オーケストレーション用のStep Functions を作成します。 |
| AWS 全般 |
タスク | 説明 | 必要なスキル |
---|---|---|
S3 バケットに入力ファイルとコピーブックをアップロードします。 | 「GitHub
| AWS 全般 |
手順関数を呼び出します |
以下に例を示します。
| AWS 全般 |
Step Functions でワークフローの実行を検証します。 | 「Step Functions コンソール グラフィカルなワークフロー実行の例については、このパターンの追加情報セクションのStep Functions グラフを参照してください。 | AWS 全般 |
Amazon CloudWatch で配信ログを検証します。 |
成功した配信ログの例については、このパターンの追加情報セクションにある CloudWatch 配信ログを参照してください。 | AWS 全般 |
OpenSearch ダッシュボードでフォーマットされたファイルを検証し、ファイル操作を実行します。 |
| AWS 全般 |
関連リソース
リファレンス
「COBOL コピーブックの例
」 (IBM ドキュメンテーション) 「BMC コンピュウェアファイルエイド
」 (BMC ドキュメンテーション)
チュートリアル
「チュートリアル: Amazon S3 トリガーを使用して Lambda 関数を呼び出す」 (AWS Lambda ドキュメント)
「AWS Step Functions と AWS Lambda を使用してサーバーレスワークフローを作成する方法を教えてください
」 (AWS ドキュメント) 「Amazon OpenSearch Service での OpenSearch Dashboards の使用」 (AWS ドキュメント)
追加情報
Step Functions・グラフ
以下は、手順関数図の例を示しています。グラフには、このパターンで使用されている Lambda 関数の実行実行ステータスが表示されます。

CloudWatch デリバリログ
次の例は、s3toelasticsearch
実行が正常に実行された場合の配信成功ログを示しています。
2022-08-10T 15:53:33.033-05:00 | 処理中のドキュメント数:100 | |
---|---|---|
2022-08-10T 15:53:33 .171-05:00 | [情報] 2022-08-10T 20:53 .171 Z a1b2-90ab-cdef-EXAMPLE 11111EXAMPLE 111EXAMPLE POST https://search-essearch-3h4uqclifeqaj2vg4mphe7ffle.us-east-2.es.amazonaws.com:443/_bulk [ステータス:200 リクエスト:0.100s] | |
2022-08-10T 15:53:33.172-05:00 | 一括書き込み成功:100 件のドキュメント |