DataStage-aaS Anywhereを導入してみた

## 本記事の位置づけ ##
* 2023年12月21日時点の情報を元に記載しています
* SaaS版のETLツールであるDataStageに新しく追加された、DataStage-aaS Anywhereの概要および導入してみた結果を紹介します
## DataStage-aaS Anywhereとは ##
### ざっくり言うと ###
* 2023年11月9日に正式リリースされた新しい機能
* クラウド上でジョブを作成し、好きな環境で実行できる
### もう少し詳しく ###
IBMのETLツールであるDataStageには、ソフトウェア版とSaaS版の2種類の提供形態があります。DataStage-aaS AnywhereはSaaSでありながら、データプレインと呼ばれるジョブを実行するエンジンを任意の環境にコンテナで配置することができるようになりました。
![スクリーンショット 2023-12-05 161756.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3200210/e1f027fc-3139-a4c9-bee5-2550bd116690.png)
これにより、クラウド上でジョブを作成しつつ、データはオンプレのままジョブを実行といった使い方ができるようになります。
### 何がうれしいの？ ###
* マネージドサービスのためインフラ運用コストは最小限に抑えることが可能
* データ転送にかかるコストの回避
* データに近い場所でデータ処理することによりパフォーマンスを向上
* コントロールプレインとデータプレインの間でのデータやり取りは無いためセキュリティ懸念を最小化できる
## 課金体系 ##
執筆時点では、Extra Small Package、Small Package、Medium Package、Large Packageの4種類から選択できるようになっています。Small Package以上になると、あらかじめ一定数のVPC（仮想コア数）がライセンスに含まれています。
実際の情報は、以下のIBM Cloudのカタログを参照してください。

https://cloud.ibm.com/catalog/services/datastage
## 導入方法 ##
DataStage-aaS Anywhereを使うためには、まずIBM Cloudのカタログ上でライセンス [^1] を購入します。
サービスのプロビジョニング方法については、以下の記事を参照してください。

https://qiita.com/Asuka_Saito/items/df3467dc4c9919772c63#2-%E3%83%97%E3%83%AD%E3%83%93%E3%82%B8%E3%83%A7%E3%83%8B%E3%83%B3%E3%82%B0

ここからはプロビジョニング以降の手順を紹介します。
### 1. プロジェクトを作成する
IBM Cloud Pak for Dataにログインし、新規のプロジェクトを作成します。
プロジェクトの作成手順は、以下の記事で紹介されています。

https://qiita.com/nishikyon/items/ba698b638300848b746e#3-%E3%83%97%E3%83%AD%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E3%81%AE%E4%BD%9C%E6%88%90

### 2. 必要な情報を入力し、スクリプトを生成する
#### 2.1.リモート環境のエンジンを設定する画面
①1.で作成した新規のプロジェクトの中にある、管理のタブをクリック
②ツールの下にあるDataStageをクリック
③以下の画像のように、実行環境をリモートと選択
④インストール・スクリプトをクリック
![スクリーンショット 2023-12-12 101709.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3200210/0c259a0e-cf73-c529-a6eb-d74cce6275f4.png)
#### 2.2.前提条件を準備する
本記事ではコンテナー上へのデプロイメント手順を紹介します。
①デプロイメント・タイプはコンテナーを選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3200210/8d91a35a-d583-2999-f2e7-3acb39afd0b5.png)
②今回はDockerを使用。CentOSへのDockerのインストール手順は以下を参照しました。

https://docs.docker.com/engine/install/centos/

③jqコマンドをLinuxにインストールする手順は以下を参考にしました。

https://qiita.com/wnoguchi/items/70a808a68e60651224a4

④クラウドAPIキーを発行するには、前提条件中のリンクをクリック
 詳細な手順は以下の記事にある、手順4以降を参照ください。

https://qiita.com/nishikyon/items/fa8b951267efbe911fe7#4-ibm-cloud-api%E3%82%AD%E3%83%BC%E3%81%AE%E4%BD%9C%E6%88%90%E3%82%92%E3%82%AF%E3%83%AA%E3%83%83%E3%82%AF

⑤説明画面にあるコマンドをコピーし、暗号鍵とIVを生成
![スクリーンショット 2023-12-21 141147.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3200210/a36cce0a-bbd1-7d27-9cef-d0ea4042a445.png)
#### 2.3.インストール・スクリプトの生成
※IBM Cloud Container Registry Keyの取得方法については別途作成予定
①2.2で用意した情報を詳細の構成に入力し、同意するをクリック
![スクリーンショット 2023-12-12 104122.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3200210/119c6feb-55dc-53c8-42e0-203cf0b2b153.png)
②スクリプトの生成をクリック。すると以下の画像のようにスクリプトが表示されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3200210/28d4c1e4-cd7f-374b-dc7e-901cd7b4610e.png)
#### 2.4. スクリプトを実行する
①以下のページにアクセスし、dsengine.shをダウンロードする
https://github.com/IBM/DataStage/tree/main/RemoteEngine/docker
②2.3の②で生成したスクリプトのうち、１つ目のコマンドを実行し、インスタンスを作成する
これでDataStage-aaS Anywhereの導入は完了です
## 使い方 ##
### 1.新規資産を作成する
①プロジェクトの画面を開き、右上にある「新規資産」をクリックする
![スクリーンショット 2023-12-21 134722.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3200210/5241277d-dd10-9f85-a154-134376fb50ab.png)
②グラフィカルビルダーのカテゴリーにある「DataStage」をクリックする
![スクリーンショット 2023-12-21 134833.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3200210/49a813bf-2c0e-9193-6281-00aabe71a405.png)
③フローの名称や説明を適宜入力し、右下の「作成」をクリックする
![スクリーンショット 2023-12-21 134925.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3200210/dd24d75b-9c36-ad99-967c-66290796450d.png)
### 2.導入したエンジンを選択する
①1で作成したフローを開き、歯車マークをクリックする
![スクリーンショット 2023-12-21 135133.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3200210/10b99d28-6312-d146-8bdf-54fd5035d967.png)
②ランタイムのカテゴリにある環境に、導入したエンジンが表示されるのでその中からフローを実行したいエンジンを選択し、保存する。
![スクリーンショット 2023-12-21 135209.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3200210/f7de61a7-8c71-21ac-de0d-a8cb4af755c0.png)
## 注意事項 
以下のIBM Cloudのカタログ上に記載があるように、リモート環境のエンジンを選択すると、そのプロジェクトではデフォルトの IBM Cloud serverless runtimeに戻すことはできません。

https://cloud.ibm.com/catalog/services/datastage

また、以下のページには使用できないコネクターなどの注意点が記載されているので、最新の情報は以下を参照ください。

https://dataplatform.cloud.ibm.com/docs/content/dstage/dsnav/topics/datastage-environments.html?context=wdp&audience=wdp

[^1]: ライセンス名にDataStage-aaS Anywhereの文言が入っているライセンスを選択する必要があります。