Cookie の設定を選択する

当社は、当社のサイトおよびサービスを提供するために必要な必須 Cookie および類似のツールを使用しています。当社は、パフォーマンス Cookie を使用して匿名の統計情報を収集することで、お客様が当社のサイトをどのように利用しているかを把握し、改善に役立てています。必須 Cookie は無効化できませんが、[カスタマイズ] または [拒否] をクリックしてパフォーマンス Cookie を拒否することはできます。

お客様が同意した場合、AWS および承認された第三者は、Cookie を使用して便利なサイト機能を提供したり、お客様の選択を記憶したり、関連する広告を含む関連コンテンツを表示したりします。すべての必須ではない Cookie を受け入れるか拒否するには、[受け入れる] または [拒否] をクリックしてください。より詳細な選択を行うには、[カスタマイズ] をクリックしてください。

AWS クラウドで高度なメインフレームファイルビューアを構築 - AWS 規範ガイダンス

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

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)。

アーキテクチャ

ソーステクノロジースタック

ターゲットテクノロジースタック

  • Amazon Athena

  • Amazon OpenSearch Service

  • Amazon Simple Storage Service (Amazon S3)

  • AWS Lambda

  • AWS Step Functions

ターゲットアーキテクチャ

次の図は、メインフレーム入力ファイルを解析して OpenSearch Service ドキュメントに変換し、ブラウジングや検索を行うプロセスを示しています。

メインフレーム入力ファイルを解析して OpenSearch Service に変換するプロセス。

この図表は、次のワークフローを示しています:

  1. 管理者ユーザーまたはアプリケーションは、入力ファイルを 1 つの S3 バケットに、COBOL コピーブックを別の S3 バケットにプッシュします。

  2. 注記

    入力ファイルを含む S3 バケットは、サーバーレスの Step Functions ワークフローを開始する Lambda 関数を呼び出します。: このパターンで Step Functions ワークフローを駆動するための S3 イベントトリガーと Lambda 関数の使用はオプションです。このパターンの GitHub コードサンプルにはこれらのサービスの使用は含まれていませんが、要件に応じてこれらのサービスを使用できます。

  3. Step Functions ワークフローは、次の Lambda 関数のすべてのバッチプロセスを調整します。

    • この s3copybookparser.py 関数はコピーブックのレイアウトを解析し、フィールド属性、データ型、オフセット (入力データ処理に必要) を抽出します。

    • この s3toathena.py 関数は Athena テーブルレイアウトを作成します。Athena s3toathena.py は関数によって処理された入力データを解析し、そのデータを CSV ファイルに変換します。

    • この s3toelasticsearch.py 関数は S3 バケットから結果ファイルを取り込み、そのファイルを OpenSearch Service にプッシュします。

  4. ユーザーは 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」は、コラボレーションツールとバージョン管理を提供するコードホスティングサービスです。

  • Python」は高水準プログラミング言語です。

コード

このパターンのコードは、GitHub 内の「gfs-mainframe-patterns」リポジトリで利用できます。

エピック

タスク説明必要なスキル

S3 バケットを作成するには

コピーブック、入力ファイル、出力ファイルを保存するための 「S3 バケットを作成します」。S3 バケットには次のフォルダ構造をお勧めします。

  • copybook/

  • input/

  • output/

  • query/

  • results/

AWS 全般

s3copybook パーサー関数を作成します。

  1. という名前の Lambda 関数を作成してs3copybookparser に呼び出し、「GitHub」 リポジトリからソースコード (s3copybookparser.pycopybook.py) をアップロードします。

  2. Lambda 関数に S3ReadOnlyIAM ポリシーをアタッチ」 します。

AWS 全般

s3toアテナ関数を作成します。

  1. という名前の Lambda 関数を作成し s3toathena に呼び出し、「GitHub」 リポジトリからソースコード (s3toathena.py) をアップロードします。Lambda タイムアウトを 60 秒以上に設定します。

  2. 必要なリソースへのアクセスを提供するには、IAM AmazonAthenaFullAccess ポリシーと S3FullAccess Lambda 関数をアタッチします。

AWS 全般

s3toエラスティック検索関数を作成します。

  1. 重要

    Python の依存関係を Lambda 環境に追加します」。: Lambda s3toelasticsearch関数は Python Elasticsearch クライアントの依存関係 (Elasticsearch==7.9.0 および ) を使用するため、関数を使用するには Python の依存関係を追加する必要がありますrequests_aws4auth

  2. という名前の Lambda 関数を作成し s3toelasticsearch に呼び出し、「GitHub」 リポジトリからソースコード (s3toelasticsearch.py) をアップロードします。

  3. Python の依存関係を Lambda レイヤーとしてインポートします。

  4. IAM ポリシー S3ReadOnlyAmazonOpenSearchServiceReadOnlyAccess を Lambda 関数にアタッチします。

AWS 全般

OpenSearch サービスクラスターを作成します。

クラスターを作成します

  1. OpenSearch Service コネクタを作成」 します クラスターを作成する場合、以下の作業を行います。

  2. ドメイン URL をコピーし、環境変数 'HOST' として Lambda 関数 s3toelasticsearch に渡します。

IAM ロールにアクセス許可を付与

Lambda 関数の IAM ロール (arn:aws:iam::**:role/service-role/s3toelasticsearch-role-**) にきめ細かくアクセスできるようにするには、以下を実行します。

  1. マスターユーザーとして OpenSearch Dashboards にアクセスします。

  2. セキュリティタブを選択し、ロール、all_access、マップユーザー、バックエンドロールを選択します。

  3. Lambda関数のIAMロールのAmazon リソースネーム (ARN) を追加し、[保存] を選択します。詳細については、OpenSearch Service ドキュメントの 「ユーザーへのロールのマッピング」 を参照してください。

AWS 全般

オーケストレーション用のStep Functions を作成します。

  1. 標準フローを付けて、「Step Functions ステータスマシンを作成」します。定義は「GitHub」リポジトリに含まれています。

  2. JSON スクリプトで、Lambda 関数の ARN を、環境内の Lambda 関数の ARN に置き換えます。

AWS 全般

ターゲット環境の準備

タスク説明必要なスキル

S3 バケットを作成するには

コピーブック、入力ファイル、出力ファイルを保存するための 「S3 バケットを作成します」。S3 バケットには次のフォルダ構造をお勧めします。

  • copybook/

  • input/

  • output/

  • query/

  • results/

AWS 全般

s3copybook パーサー関数を作成します。

  1. という名前の Lambda 関数を作成してs3copybookparser に呼び出し、「GitHub」 リポジトリからソースコード (s3copybookparser.pycopybook.py) をアップロードします。

  2. Lambda 関数に S3ReadOnlyIAM ポリシーをアタッチ」 します。

AWS 全般

s3toアテナ関数を作成します。

  1. という名前の Lambda 関数を作成し s3toathena に呼び出し、「GitHub」 リポジトリからソースコード (s3toathena.py) をアップロードします。Lambda タイムアウトを 60 秒以上に設定します。

  2. 必要なリソースへのアクセスを提供するには、IAM AmazonAthenaFullAccess ポリシーと S3FullAccess Lambda 関数をアタッチします。

AWS 全般

s3toエラスティック検索関数を作成します。

  1. 重要

    Python の依存関係を Lambda 環境に追加します」。: Lambda s3toelasticsearch関数は Python Elasticsearch クライアントの依存関係 (Elasticsearch==7.9.0 および ) を使用するため、関数を使用するには Python の依存関係を追加する必要がありますrequests_aws4auth

  2. という名前の Lambda 関数を作成し s3toelasticsearch に呼び出し、「GitHub」 リポジトリからソースコード (s3toelasticsearch.py) をアップロードします。

  3. Python の依存関係を Lambda レイヤーとしてインポートします。

  4. IAM ポリシー S3ReadOnlyAmazonOpenSearchServiceReadOnlyAccess を Lambda 関数にアタッチします。

AWS 全般

OpenSearch サービスクラスターを作成します。

クラスターを作成します

  1. OpenSearch Service コネクタを作成」 します クラスターを作成する場合、以下の作業を行います。

  2. ドメイン URL をコピーし、環境変数 'HOST' として Lambda 関数 s3toelasticsearch に渡します。

IAM ロールにアクセス許可を付与

Lambda 関数の IAM ロール (arn:aws:iam::**:role/service-role/s3toelasticsearch-role-**) にきめ細かくアクセスできるようにするには、以下を実行します。

  1. マスターユーザーとして OpenSearch Dashboards にアクセスします。

  2. セキュリティタブを選択し、ロール、all_access、マップユーザー、バックエンドロールを選択します。

  3. Lambda関数のIAMロールのAmazon リソースネーム (ARN) を追加し、[保存] を選択します。詳細については、OpenSearch Service ドキュメントの 「ユーザーへのロールのマッピング」 を参照してください。

AWS 全般

オーケストレーション用のStep Functions を作成します。

  1. 標準フローを付けて、「Step Functions ステータスマシンを作成」します。定義は「GitHub」リポジトリに含まれています。

  2. JSON スクリプトで、Lambda 関数の ARN を、環境内の Lambda 関数の ARN に置き換えます。

AWS 全般
タスク説明必要なスキル

S3 バケットに入力ファイルとコピーブックをアップロードします。

GitHub」リポジトリのサンプルフォルダからサンプルファイルをダウンロードし、先ほど作成した S3 バケットにファイルをアップロードします。

  1. <S3_Bucket>/copybook フォルダに Mockedcopy.cpyacctix.cpy をアップロードします。

  2. Modedupdate.txtacctindex.cpy サンプルの入力ファイルを <S3_Bucket>/input フォルダにアップロードします。

AWS 全般

手順関数を呼び出します

  1. AWS マネジメントコンソールにサインインし、「手順関数コンソール」 を開きます。

  2. 左側のナビゲーションで、ステートマシンを選択します。

  3. ステートマシンを選択し、実行開始を選択します。

  4. 入力ボックスに、S3 バケットへの JSON 変数として次のコピーブック/ファイルパスを入力し、[実行開始] を選択します。

{ "s3_copybook_bucket_name": "<BUCKET NAME>", "s3_copybook_bucket_key": "<COPYBOOK PATH>", "s3_source_bucket_name": "<BUCKET NAME", "s3_source_bucket_key": "INPUT FILE PATH" }

以下に例を示します。

{ "s3_copybook_bucket_name": "fileaidtest", "s3_copybook_bucket_key": "copybook/acctix.cpy", "s3_source_bucket_name": "fileaidtest", "s3_source_bucket_key": "input/acctindex" }
AWS 全般

Step Functions でワークフローの実行を検証します。

Step Functions コンソール」 で、グラフインスペクターでワークフローの実行を確認します。実行実行状態は、実行ステータスを表すように色分けされています。たとえば、青は進行中、緑は成功、赤は失敗を示します。実行イベント履歴」セクションの表を参照して、実行イベントに関する詳細情報を確認することもできます。

グラフィカルなワークフロー実行の例については、このパターンの追加情報セクションのStep Functions グラフを参照してください。

AWS 全般

Amazon CloudWatch で配信ログを検証します。

  1. AWS マネジメントコンソールにサインインし、「CloudWatch console」 を開きます。

  2. ナビゲーションペインで、ログを拡張してから、ロググループを選択します。

  3. 検索ボックスで、s3toelasticsearch 関数のロググループを検索します。

成功した配信ログの例については、このパターンの追加情報セクションにある CloudWatch 配信ログを参照してください。

AWS 全般

OpenSearch ダッシュボードでフォーマットされたファイルを検証し、ファイル操作を実行します。

  1. AWS マネジメントコンソールにサインインします。[分析] の下で、[Amazon OpenSearch Service] を選択します。

  2. ナビゲーションペインで、[ドメイン] を選択します。

  3. 検索ボックスに 「OpenSearch ダッシュボード」 内のドメインの URL を入力します。

  4. ダッシュボードを選択し、「マスターユーザーとしてサインインします」。

  5. インデックス化されたデータを表形式で参照します。

  6. 入力ファイルを OpenSearch Dashboards のフォーマットされた出力ファイル (インデックス付きドキュメント) と比較します。ダッシュボードビューには、フォーマットされたファイルに追加された列ヘッダーが表示されます。未フォーマットの入力ファイルのソースデータが、ダッシュボードビューのターゲットデータと一致することを確認します。

  7. インデックス化されたファイルに対して、検索 (フィールド名、値、式を使用するなど)、フィルター、「DQL」 (Dashboard Query Language) 操作などのアクションを実行します。

AWS 全般

デプロイして実行

タスク説明必要なスキル

S3 バケットに入力ファイルとコピーブックをアップロードします。

GitHub」リポジトリのサンプルフォルダからサンプルファイルをダウンロードし、先ほど作成した S3 バケットにファイルをアップロードします。

  1. <S3_Bucket>/copybook フォルダに Mockedcopy.cpyacctix.cpy をアップロードします。

  2. Modedupdate.txtacctindex.cpy サンプルの入力ファイルを <S3_Bucket>/input フォルダにアップロードします。

AWS 全般

手順関数を呼び出します

  1. AWS マネジメントコンソールにサインインし、「手順関数コンソール」 を開きます。

  2. 左側のナビゲーションで、ステートマシンを選択します。

  3. ステートマシンを選択し、実行開始を選択します。

  4. 入力ボックスに、S3 バケットへの JSON 変数として次のコピーブック/ファイルパスを入力し、[実行開始] を選択します。

{ "s3_copybook_bucket_name": "<BUCKET NAME>", "s3_copybook_bucket_key": "<COPYBOOK PATH>", "s3_source_bucket_name": "<BUCKET NAME", "s3_source_bucket_key": "INPUT FILE PATH" }

以下に例を示します。

{ "s3_copybook_bucket_name": "fileaidtest", "s3_copybook_bucket_key": "copybook/acctix.cpy", "s3_source_bucket_name": "fileaidtest", "s3_source_bucket_key": "input/acctindex" }
AWS 全般

Step Functions でワークフローの実行を検証します。

Step Functions コンソール」 で、グラフインスペクターでワークフローの実行を確認します。実行実行状態は、実行ステータスを表すように色分けされています。たとえば、青は進行中、緑は成功、赤は失敗を示します。実行イベント履歴」セクションの表を参照して、実行イベントに関する詳細情報を確認することもできます。

グラフィカルなワークフロー実行の例については、このパターンの追加情報セクションのStep Functions グラフを参照してください。

AWS 全般

Amazon CloudWatch で配信ログを検証します。

  1. AWS マネジメントコンソールにサインインし、「CloudWatch console」 を開きます。

  2. ナビゲーションペインで、ログを拡張してから、ロググループを選択します。

  3. 検索ボックスで、s3toelasticsearch 関数のロググループを検索します。

成功した配信ログの例については、このパターンの追加情報セクションにある CloudWatch 配信ログを参照してください。

AWS 全般

OpenSearch ダッシュボードでフォーマットされたファイルを検証し、ファイル操作を実行します。

  1. AWS マネジメントコンソールにサインインします。[分析] の下で、[Amazon OpenSearch Service] を選択します。

  2. ナビゲーションペインで、[ドメイン] を選択します。

  3. 検索ボックスに 「OpenSearch ダッシュボード」 内のドメインの URL を入力します。

  4. ダッシュボードを選択し、「マスターユーザーとしてサインインします」。

  5. インデックス化されたデータを表形式で参照します。

  6. 入力ファイルを OpenSearch Dashboards のフォーマットされた出力ファイル (インデックス付きドキュメント) と比較します。ダッシュボードビューには、フォーマットされたファイルに追加された列ヘッダーが表示されます。未フォーマットの入力ファイルのソースデータが、ダッシュボードビューのターゲットデータと一致することを確認します。

  7. インデックス化されたファイルに対して、検索 (フィールド名、値、式を使用するなど)、フィルター、「DQL」 (Dashboard Query Language) 操作などのアクションを実行します。

AWS 全般

関連リソース

リファレンス

チュートリアル

追加情報

Step Functions・グラフ

以下は、手順関数図の例を示しています。グラフには、このパターンで使用されている Lambda 関数の実行実行ステータスが表示されます。

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 件のドキュメント

プライバシーサイト規約Cookie の設定
© 2025, Amazon Web Services, Inc. or its affiliates.All rights reserved.