をインストールして IBM z/OS AWS のサービス からアクセスする AWS CLI - AWS 規範ガイダンス

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

をインストールして IBM z/OS AWS のサービス からアクセスする AWS CLI

Amazon Web Services、Souma Ghosh、Paulo Vitor Pereira、Phil de Valence

概要

AWS Command Line Interface (AWS CLI) は、コマンドラインシェルでコマンドを使用して複数の AWS サービスを管理するためのオープンソースツールです。最小限の構成で、コマンドプロンプト、ターミナル、bash シェルなどのコマンドラインセッションからコマンドを実行し、ブラウザベースの AWS マネジメントコンソールで提供される機能と同等の機能を実装することができます。

のサービスとしての AWS インフラストラクチャ (IaaS) の管理、管理、およびアクセス機能はすべて AWS マネジメントコンソール 、 AWS API および で利用できます AWS CLI。IBM z/OS メインフレーム AWS CLI に をインストールして、z/OS AWS のサービス から直接アクセス、管理、操作できます。 AWS CLI を使用すると、ユーザーとアプリケーションは次のようなさまざまなタスクを実行できます。

  • z/OS と Amazon Simple Storage Service (Amazon S3) オブジェクトストレージ間でファイルまたはデータセットを転送し、バケットのコンテンツを表示する

  • AWS Mainframe Modernization 環境でバッチジョブを開始するなど、さまざまな AWS リソースを開始および停止する

  • AWS Lambda 関数を呼び出して一般的なビジネスロジックを実装する

  • 人工知能と機械学習 (AI/ML) および分析サービスと統合する

このパターンでは、z/OS AWS CLI で をインストール、設定、使用する方法について説明します。グローバルにインストールできるため、すべての z/OS ユーザー、またはユーザーレベルで使用できます。このパターンでは、z/OS Unix System Services (USS) からのインタラクティブなコマンドラインセッション AWS CLI で、またはバッチジョブとして を使用する方法についても詳しく説明します。

前提条件と制限

前提条件

  • z/OS から へのネットワーク通信 AWS

    デフォルトでは、 は TCP ポート 443 で HTTPS AWS のサービス を使用して にリクエスト AWS CLI を送信します。を AWS CLI 正常に使用するには、TCP ポート 443 でアウトバウンド接続を実行できる必要があります。次のいずれかの z/OS USS コマンドを使用すると、z/OS から AWSへのネットワーク接続をテストできます (お使いの環境にインストールされていないものもあります)。

    ping amazonaws.com dig amazonaws.com traceroute amazonaws.com curl -k https://docs.aws.amazon.com/cli/v1/userguide/cli-chap-welcome.html
  • AWS credentials

    z/OS の AWS クラウド サービスと通信するには、 でターゲットにアクセスするための権限を持つ認証情報を設定 AWS CLI する必要があります AWS アカウント。へのプログラムコマンドでは AWS、アクセスキーを使用できます。アクセスキーは、アクセスキー ID とシークレットアクセスキーで構成されます。アクセスキーがない場合は、 AWS マネジメントコンソールから作成することができます。ベストプラクティスとして、 AWS アカウント ルートユーザーが必須でない限り、ルートユーザーのアクセスキーをタスクに使用しないでください。代わりに、新しい管理者 IAM ユーザーを作成し、最小特権のアクセス許可を準備して、 アクセスキーを持つユーザーを設定します。ユーザーを作成すると、このユーザーのアクセスキー ID とシークレットアクセスキーを作成できます

    警告

    AWS Identity and Access Management (IAM) ユーザーには、セキュリティリスクをもたらす長期的な認証情報があります。このリスクを軽減するために、これらのユーザーにはタスクの実行に必要な権限のみを付与し、不要になったユーザーは削除することをお勧めします。

  • IBM Python for z/OS

    には Python 3.8 以降 AWS CLI が必要です。IBM では、IBM Open Enterprise Python for z/OS を使用して z/OS で Python を実行することができます。IBM Open Enterprise Python は Shopz SMP/E から無料で入手できます。または、IBM のウェブサイトから PAX ファイルをダウンロードすることもできます。手順については、IBM Open Enterprise Python for z/OS のインストールと設定のドキュメントを参照してください。

制限事項

  • このパターンに記載しているインストール手順は、AWS CLI バージョン 1 のみに適用されます。の最新バージョン AWS CLI はバージョン 2 です。ただしこのパターンではバージョン 2 のインストール方法が異なり、バージョン 2 で利用できるバイナリ実行可能ファイルは z/OS システムとは互換性がないため、古いバージョンが使用されます。

製品バージョン

  • AWS CLI バージョン 1

  • Python 3.8 以降

アーキテクチャ

テクノロジースタック

  • z/OS を実行するメインフレーム

  • Mainframe z/OS UNIX System Services (USS)

  • Mainframe Open MVS (OMVS) – z/OS UNIX シェル環境コマンドインターフェイス

  • ダイレクトアクセスストレージデバイス (DASD) などのメインフレームディスク

  • AWS CLI

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

次の図は、IBM z/OS での AWS CLI デプロイを示しています。SSH や telnet セッションなどのインタラクティブなユーザーセッション AWS CLI から を呼び出すことができます。また、ジョブ制御言語 (JCL) を使用してバッチジョブから呼び出すか、z/OS Unix シェルコマンドを呼び出せる任意のプログラムから呼び出すこともできます。

AWS サービスにアクセスする IBM z/OS メインフレーム上の AWS CLI。

は、TCP/IP ネットワーク経由で AWS のサービス エンドポイントと AWS CLI 通信します。このネットワーク接続は、インターネット経由で、またはカスタマーデータセンターから AWS クラウド データセンターへのプライベート AWS Direct Connect 接続を介して行うことができます。通信は AWS 認証情報で認証され、暗号化されます。

自動化とスケール

AWS のサービス を使用して の機能を調べ AWS CLI 、USS シェルスクリプトを開発して z/OS から AWS リソースを管理できます。z/OS バッチ環境から AWS CLI コマンドとシェルスクリプトを実行することもできます。また、メインフレームスケジューラと統合することで、バッチジョブを特定のスケジュールで実行するように自動化できます。 AWS CLI コマンドまたはスクリプトは、パラメータ (PARMs) およびプロシージャ (PROCs) 内でコーディングでき、パラメータが異なるバッチジョブから PARM または PROC を呼び出す標準的なアプローチに従ってスケーリングできます。

ツール

  • AWS Command Line Interface (AWS CLI) は、コマンドラインシェルのコマンド AWS のサービス を使用して を操作するのに役立つオープンソースツールです。

ベストプラクティス

  • セキュリティ上の理由から、アクセス許可は、アクセス AWS キーの詳細が保存されている USS ディレクトリに制限してください。 AWS CLIを使用するユーザーまたはプログラムにのみアクセスを許可します。

  • AWS アカウント ルートユーザーアクセスキーをタスクに使用しないでください。代わりに、自分用に新しい管理者 IAM ユーザーを作成して、アクセスキーを持つようにこれを設定します。

警告

IAM ユーザーの認証情報は有効期間が長いため、セキュリティ上のリスクが存在します。このリスクを軽減するために、これらのユーザーにはタスクの実行に必要な権限のみを付与し、不要になったユーザーは削除することをお勧めします。

エピック

タスク説明必要なスキル

Python 3.8 以降をインストールします。

  1. 次のいずれかの方法を使用して、z/OS USS コマンドプロンプトインターフェイスにログインします。

    • Interactive System Productivity Facility (ISPF) パネルから Time Sharing Option (TSO) OMVS コマンドを使用するか、または

    • SSH または telnet を使用してメインフレーム論理パーティション (LPAR) の IP に接続します。

      このパターンでは、cliuser が USS 環境へのログインに使用されるユーザー ID であり、/u/cliuser/ がユーザーのホームディレクトリであることを前提としています。z/OS 環境では、インストール要件に応じてユーザーのホームディレクトリを異なる方法で設定できます。

  2. Python 3.8 以降をまだインストールしていない場合は、IBM Open Enterprise Python for z/OS のインストールガイドに従ってインストールします。

Mainframe z/OS 管理者

USS 環境変数を設定する。

環境変数をプロファイルに追加します。これらは、個々のユーザー (cliuser) の /u/cliuser/.profile ファイル、またはすべてのユーザーの /etc/profile ファイルに追加できます。

注記

このパターンは、Python が /u/awscli/python ディレクトリにインストールされていることを前提としています。インストールディレクトリが異なる場合は、それに応じてコードを更新します。

# Python configuration export BPXKAUTOCVT='ON' export CEERUNOPTS='FILETAG(AUTOCVT,AUTOTAG) POSIX(ON)' export TAGREDIR_ERR=txt export TAGREDIR_IN=txt export TAGREDIR_OUT=txt # AWS CLI configuration export PATH=/u/cliuser/python/bin:$PATH export PYTHONPATH=/u/cliuser/python:$PYTHONPATH
Mainframe z/OS 管理者

Python のインストールをテストします。

Python コマンドを実行します。

python --version

出力から Python 3.8 以降が正しくインストールされていることを確認できます。

Mainframe z/OS 管理者

pip を検証またはインストールします。

  1. pip コマンドは通常、IBM ウェブサイトから Python をインストールするときに自動的にインストールされます。検証するには次のコマンドを実行します。

    pip —-version

    pip がインストールされている場合、このコマンドにはインストールされているバージョンが表示されます。

  2. pip コマンドが見つからない場合は、次のコマンドを実行して pip をインストールします。

    python -m ensurepip --upgrade

    その他のインストールオプションについては、pip のドキュメントを参照してください。

Mainframe z/OS 管理者

AWS CLI バージョン 1 をインストールします。

  1. をインストールするには AWS CLI、 コマンドを実行します。

    python -m pip install awscli

    出力は以下のようになります。

    Successfully installed PyYAML-6.0.1 awscli-1.32.23 botocore-1.34.23 colorama-0.4.4 docutils-0.16 jmespath-1.0.1 pyasn1-0.5.1 python-dateutil-2.8.2 rsa-4.7.2 s3transfer-0.10.0 urllib3-2.0.7
  2. 次のコマンドを実行して、aws の実行可能ファイルのアクセス許可を変更します。必ず Python のインストールパスでプレースホルダーディレクトリ <python_installation_dir> を更新します。

    chmod 744 <python_installation_dir>/bin/aws
  3. 次のコマンドを実行して、 AWS CLI インストールをテストします。

    aws --version

    出力には、次のような AWS CLI、Python、および botocore のバージョンが表示されます。

    aws-cli/1.32.3 Python/3.9.5 OS/390/27.00 botocore/1.34.3
Mainframe z/OS 管理者
タスク説明必要なスキル

AWS アクセスキー、デフォルトのリージョン、出力を設定します。

AWS CLI ドキュメントでは、 AWS アクセスを設定するためのさまざまなオプションについて説明します。組織の標準に従って設定を選択することができます。この例では、短期の認証情報設定を使用します。

  1. 次のコマンドを使用してAWS CLIを設定します。

    aws configure
  2. プロンプトが表示されたら、以下の項目の詳細を記入します。アクセスキー ID とシークレットアクセスキーの値は、前提条件ステップで AWS 認証情報を設定したときに取得したキーからのものです。

    AWS Access Key ID [None]: ASIAIOSFODNN7EXAMPLE AWS Secret Access Key [None]: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY Default region name [None]: us-east-1 Default output format [None]: aws configure set aws_session_token IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZVERYLONGSTRINGEXAMPLE

    この設定はアクセスキーを含め /u/cliuser/.aws フォルダに保存されます。セキュリティ上の理由から、このフォルダを制限して、 AWS CLIを使用するユーザーまたはプログラムにのみアクセスを許可します。

AWS 管理者、Mainframe z/OS 管理者、Mainframe z/OS デベロッパー

をテストします AWS CLI。

  1. コマンドプロンプトで次のコマンドを実行して、シンプルなコマンド AWS CLI で をテストします。

    aws s3 ls

    出力には、エラー AWS アカウント なしで設定された のすべての S3 バケットが一覧表示されます。

  2. 次の 2 つのエピックの手順に従って、データを USS から Amazon S3 に転送します。これらの 2 つのオプションのうち 1 つを選択できます。

    • オプション 1 (次のエピック): EBCDIC カンマ区切り値 (CSV) ファイルを Amazon S3 にインタラクティブに転送し、Amazon Athena からファイルをクエリします。

    • オプション 2: EBCDIC 固定長データセットをバッチジョブとして Amazon S3 に転送します。

Mainframe z/OS 管理者、Mainframe z/OS デベロッパー
タスク説明必要なスキル

サンプル CSV ファイルをダウンロードして転送します。

  1. [添付ファイル] セクションから sales-records.csv をダウンロードします。このファイルは売上の記録が記載されたサンプルの CSV ファイルを提供します。

  2. ファイルを z/OS USS に転送します。

  3. テキストエディタを使用して、/u/cliuser/sales-records.csv ファイルが USS の EBCDIC 形式で読み取れることを確認します。

アプリのデベロッパー、Mainframe z/OS のデベロッパー

S3 バケットを作成して CSV ファイルをアップロードします。

  1. CSV ファイルを保存する S3 バケットを作成します。

    aws s3 mb s3://<s3_bucket_name>

    <s3_bucket_name> はバケットの一意の名前です。次に例を示します。

    aws s3 mb s3://DOC-EXAMPLE-BUCKET1
  2. z/OS USS から S3 バケットに CSV ファイルをアップロードします。

    aws s3 cp <csv_file_path> s3://<s3_bucket_name>

    例えば、次のようになります。

    aws s3 cp /u/cliuser/sales-records.csv s3://DOC-EXAMPLE-BUCKET1
  3. S3 バケットの内容を一覧表示し、アップロードされたファイルが含まれていることを確認します。

    aws s3 ls s3://<s3_bucket_name>

    例えば、次のようになります。

    aws s3 ls s3://DOC-EXAMPLE-BUCKET1
アプリのデベロッパー、Mainframe z/OS のデベロッパー

S3 バケットとアップロードしたファイルを表示します。

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

  2. 新しい S3 バケットとアップロードしたオブジェクトに移動します。

詳細については、Amazon SNS ドキュメントの「Amazon S3 の開始方法」を参照してください。

AWS 全般

Amazon Athena テーブルで SQL クエリを実行します。

  1. Amazon Athena コンソールを開きます。

  2. Amazon S3 の CSV データを使用して、新しいテーブル (DOC-EXAMPLE-BUCKET など) を作成します。詳細については、Amazon S3 ドキュメントの「Amazon Athena で Amazon S3 インベントリをクエリする」を参照してください。

  3. テーブルに SELECT クエリを実行してデータを表示します。

    SELECT * FROM <table_name>;

    例えば、次のようになります。

    SELECT * FROM DOC-EXAMPLE-BUCKET;

SQL クエリの出力には、CSV ファイルの内容が表示されます。

AWS 全般、アプリ開発者
タスク説明必要なスキル

サンプルファイルをアップロードする。

  1. [添付ファイル] セクションから sales-records-fixed.txt をダウンロードします。こちらは、売上記録を含むサンプルファイルです。テキストファイルの名前をUSER.DATA.FIXED などに変更します。

  2. 固定ブロック (FB)、256 レコード長 (LRECL)、物理シーケンシャル (PS) データセットとしてファイルを z/OS に転送します。

  3. データセットリストユーティリティを使用して、USER.DATA.FIXED データセットが ISPF オプション 3.4 の EBCDIC 形式で読み取り可能であることを確認します。例の出力は [追加情報] のセクションを参照してください。

Mainframe z/OS のデベロッパー

バッチ JCL を作成する。

バッチ JCL を次のようにコードして、送信先 S3 バケットを作成し、データセットをアップロードしてバケットのコンテンツを一覧表示します。ディレクトリ名、ファイル名、バケット名は、必ず独自の値に置き換えます。

//AWSCLICP JOB ACTINFO1,'IBMUSER',CLASS=A,MSGCLASS=H,MSGLEVEL=(1,1), // NOTIFY=&SYSUID,TIME=1440 //*--------------------------------------------------------- //* Sample job for AWS CLI //*--------------------------------------------------------- //USSCMD EXEC PGM=BPXBATCH //STDERR DD SYSOUT=* //STDOUT DD SYSOUT=* //STDENV DD * export PATH=/u/cliuser/python/bin:$PATH //STDPARM DD * SH export _BPXK_AUTOCVT=ON; aws s3 mb s3://DOC-EXAMPLE-BUCKET2; cp "//'USER.DATA.FIXED'" /tmp/tmpfile; aws s3 cp /tmp/tmpfile s3://DOC-EXAMPLE-BUCKET2/USER.DATA.FIXED; rm /tmp/tmpfile; aws s3 ls s3://DOC-EXAMPLE-BUCKET2; /*
Mainframe z/OS のデベロッパー

バッチ JCL ジョブを送信します。

  1. 前のステップでコーディングした JCL ジョブを送信します。

  2. System Display and Search Facility (SDSF) でジョブのステータスを確認します。問題がなければ、ジョブはリターンコード 0 で終了します。

  3. ジョブログからの標準出力 (STDOUT) には、成功したバケットの作成、データセットのアップロード、バケットの内容のリスト、が表示されます。サンプル画面の図については、「追加情報」のセクションを参照してください。

Mainframe z/OS のデベロッパー

S3 バケットにアップロードされたデータセットを表示します。

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

  2. 移動して、テストバケットにアップロードされたファイルを表示します。

  3. Amazon Redshift などの分析サービスを使用して、USER.DATA.FIXED ファイルをさらに処理したり、分析したりできます。

AWS 全般

関連リソース

追加情報

ISPF オプション 3.4 の USER.DATA.FIXED (ユーティリティのデータセットリスト)

データセットの内容を z/OS で表示する。

送信されたバッチジョブの SYSOUT

ジョブログからの標準出力。

アタッチメント

このドキュメントに関連する追加コンテンツにアクセスするには、次のファイルを解凍してください。「attachment.zip