Cloud Storage Solutions for i で IBM i から IBM Cloud Object Storage にアクセスする
「5733-ICC Cloud Storage Solutions for i」を使うと、FTPサーバー や Cloud 上の Object Storage との間で IFS オブジェクトを送受信することが可能になります。
また BRMS と組み合わせると IBM i のバックアップを Object Storage 上に置くこともできます。
今回は Cloud Storage Solutions for i を 使って、IBM Cloud Object Storage(ICOS) とファイルの送受信を行いたいと思います。
なお英文ですが「Quick Start Guide for Cloud Storage Solutions」という文書が IBM から公開されています。ここではこの文書を「ガイド」と呼びます。
IBM Cloud Object Storage のリソースとバケットの作成
カタログから「Object Storage」を選びます。
ICOS には制限付きですが無料で使えるライト・プランが提供されています。今回はテスト目的ですので、こちらを使いましょう。
ICOS のリソースが作成されました。この中に実際にデータを保持するバケットを作っていきます。
右側のナビゲーションで「バケット」を選んで「作成」をクリックします。
事前定義されたバケット・タイプを使うか、自分で定義するか選びます。今回は自分で定義するので「カスタム・バケット」を選びます。
バケットに名前を付けます。名前はアクセスする時に uri の一部になります。そのため IBM CLOUD の ICOS 全体で固有である必要があります。
ICOS のデータがどの範囲にコピーされるかを「回復力」で指定します。今回は、単一地域内の複数のデータセンターに保管される「Regional」を選びました。
「回復力」の各選択肢の違いは「IBM Cloud Object Storage のデータセンターとレジリエンシー」に記載があります。
「ロケーション」には今回の IBM i があるシドニーを選びました。
「タイプ」は「Standard」を選んでいます。
「サービス資格情報」を作成します。
詳細オプションで「HMAC資格情報を含める」をオンにし、追加します。
作成された資格情報に「access_key_id」と「secret_access_key」が含まれます。
この値で Cloud Storage Solutions for i は ICOS に接続します。
(このサービス資格情報は削除済みです)
Cloud Storage Solutions for i の構成
Cloud Storage Solutions for i は PowerVS IBM i の標準ライセンスには含まれていません。追加購入可能な 4 ライセンスの一つとして提供されています。
試用の範囲や期間を超えて利用するのであれば、Cloud Storage Solutions for i のライセンスを購入します。
ICOS は Cloud Storage Solutions for i では「AWSS3」として定義します。
「IBM Cloud Object Storage」に、下記の記載がある通り、ICOS は AWS の S3 互換です。
Amazon S3 やオープンソースのIaaS基盤ソフトウェア「OpenStack」のストレージ・コンポーネント「Seift」のAPIと互換性あり。
Cloud Storage Solutions for i では、SOFTLAYER の指定もできますが、これは以前に使われていた OpenStack Swift ベースの Object Storage 用の資源です。
こちらを選ばないように注意してください。
ガイドでは「ICC 資源の操作 (WRKCFGICC)」コマンドを実行し、対話型で「AWSS3」タイプの資源を作成することになっているのですが、ここで実行キーを押すと、SSH トンネルが切断されてしまいました。
WRKCFGICC RSCNM(*ALL)
この手順はガイドの次画面である「ICC AWS S3 資源の作成 (CRTS3RICC)」コマンドのプロンプトを呼び出すものです。
(資源タイプにより、異なる資源の作成コマンドを呼び出します。)
直接、CRTS3RICC コマンドを実行しましょう。
CRTS3RICC + F4 でプロンプトを表示します。「アクセス・キー ID」と「秘密アクセス・キー」にサービス資格情報で表示されている値を入力します。
実行キーを押すと、追加パラメーターの入力が求められます。
バケットの名前をセットします。
PageDownで次画面に進み uri をセットします。
uri はバケット詳細の「バケット」→「構成」で確認できます。
今回の IBM i は、パブリック・ネットワークへの接続しかなく、IBM Cloud のプライべート・ネットワークに接続できない構成のため、パブリックの uri を指定しています。
ガイドでは uri の前に「https://」をつける指示になっていますが、今回は付けずに登録します。
作成されました。
ガイドでは、この後、デジタル証明書マネージャーから SSL の構成をすることが示されていましす。
この手順は、uri に「https://」を付けた場合に必要になります。
uri に「https://」を付けながら SSL の構成をしない場合は、CPDBCC9 のエラーになります。
https を使う場合は「Cloud Storage Solutions ファイル転送暗号化の構成」にしたがって、構成してください。
ICOS との送受信
Object Storage にアクセスするコマンドは下記になります。
CPYFRMCLD … IFS ファイルを Object Storage にコピー
CPYTOCLD … Object Storage から IFS にファイルをコピー
DLTCLDF … Object Storage 上のファイルを削除
テスト用のフォルダー「/ICCTEST」を作成し、その中に「A.TXT」という名前のファイルを用意しました。
MKDIR DIR('/ICCTEST')
EDTF STMF('/ICCTEST/A.TXT')
CPYTOCLD で ICOS にコピーします。
CPYTOCLD RESOURCE(ICOS_SYD) ASYNC(*NO) LOCALFILE('/ICCTEST/A.TXT') CLOUDFILE(From_IBM_i)
バケットの中にファイルができています。
CPYFRMCLD で ICOS からコピーします。
CPYFRMCLD RESOURCE(ICOS_SYD) ASYNC(*NO) CLOUDFILE(From_IBM_i) LOCALFILE('/ICCTEST/fom_ICOS')
IFS にコピーされています。
DLTCLDFで削除します。
DLTCLDF RESOURCE(ICOS_SYD) CLOUDFILE(From_IBM_i)
バケットからファイルがなくなりました。
バッチ転送と WRKSTSICC
CPYFRMCLD や CPYTOCLD のデフォルトは ASYNC(*YES) になっていて、バッチで転送されます。投入先の JOBQ は、QICC/QICCJOBQ です。
処理するサブシステムは QICC/QICCSBS です。開始していなければ開始しましょう。
STRSBS SBSD(QICC/QICCSBS)
WRKSTSICC コマンドで、バッチ転送の様子が確認できます。
5733-ICC オプション2 Advanced
IBM Cloud で Cloud Storage Solutions for i を購入した場合、オプション1 の基本機能だけでなく オプション2 の Advanced の機能も利用可能です。
Advanced は Object Storage とファイルを送受信する際に、圧縮や暗号化を可能にします。
暗号化を利用する場合は、IBM i の暗号化機能を構成する必要があります。
当日記のIndexはこちらです。
許可の無い転載を禁じます。
この記事は筆者の個人的な責任で無保証で提供しています。
当記事に関してIBMやビジネスパートナーに問い合わせることは、固くお断りします。