DataStage-aaS Anywhereを導入してみた
投稿者:和田
はじめに
こんにちは!
NI+C DataOpsチームの和田です。
2023年11月16日にIBMよりDataStage-aaS Anywhere(以降、DataStage Anywhereとします)が新たにリリースされました。
早速、DataStage Anywhereを導入してみました。 本記事ではDataStage Anywhereのアーキテクチャ含めたご説明と併せて手順、感想を記載したいと思います。
DataStage-aaS Anywhereとは
DataStage Anywhereとは、既存のSaaS版DataStageにおいて決まった場所に存在していたランタイム環境をお客様が望む任意の場所に導入することができるソフトウェアです。
■DataStage Anywhereのアーキテクチャ
DataStage Anywhereのアーキテクチャは、DataStage(コントロールプレーン)とpx-runtime(実行エンジン)の2つのコンポーネントに分割されています。
①DataStage(コントロールプレーン)は、IBM Cloud Pak for Data(SaaS)の1コンポーネントとして提供されており、IBM Cloud Pak for Data上でジョブの作成/管理などの設計を行います。
②px-runtime(実行エンジン)は、オンプレミスやクラウドなどお客様が望む任意の場所に展開でき、その場所でジョブの実行を行うことができるので、実データ処理がお客様環境内で完結するためセキュアに利用することができます。
■DataStage Anywhereのデータ処理の流れ
DataStage Anywhereのデータ処理概要図を以下の例で記載します。
※処理例:Google Cloud StorageのデータをBigQueryにロード
px-runtime(実行エンジン)をユーザーの管理下に導入することにより、実データをDataStage(コントロールブレーン)と送受信することはないため、セキュリティを確保することができます。
px-runtime導入前の準備
今回は、弊社が社内環境として使用しているGoogle Cloud Platform(以下、GCPとします)上にpx-runtimeを導入していきたいと思います。
px-runtime(実行エンジン)を導入の事前準備として「インスタンスの作成」・「必要なソフトウェア(Docker・jq・git・openssl)のインストール、curlの最新版へのアップデート」を行います。
加えて、IBM Cloud側でAPI Keyとプロジェクト作成の事前準備が必要となります。
■インスタンスの作成
px-runtimeを導入するインスタンスをGCPのGoogle Compute Engine(以下、GCEとします)で作成します。
今回作成するインスタンスの環境設定は以下の通りとなります。
OS:Red Hat Enterprise Linux 7
マシンタイプ:e2-standard-2
ディスクサイズ:30GB
■必要なソフトウェア(Docker・jq・git・openssl)のインストール、curlの最新版へのアップデート
px-runtimeの導入の前提条件としてDocker・jq・git・opensslをインストールする必要があります。
また、curlを最新バージョンにアップデートする必要もあります。
今回、px-runtime用にしたOSはREHL7であり、パッケージ管理システムであるyumコマンドを用いてインストール・アップデートを行っています。 必要ソフトウェアの導入手順は以下となります。
♦Dockerのインストール
1.yumに追加ユーティリティをインストール
sudo yum install yum-utils
2.Dockerをインストールするのに必要なパッケージをyumに追加
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
3.yumコマンドを用いてDockerをインストール
sudo yum install docker-ce docker-ce-cli containerd.io
♦jqのインストール
sudo yum install jq
♦gitのインストール
sudo yum install git
♦opennsslのインストール
sudo yum install openssl
♦curlのアップデート
1.curlをアップデートするのに必要なポジトリをyumリポジトリに追加
sudo rpm -Uvh http://www.city-fan.org/ftp/contrib/yum-repo/rhel7/x86_64/city-fan.org-release-3-10.rhel7.noarch.rpm
2.curlを最新版にアップデート
sudo yum -y install libcurl libcurl-devel --enablerepo=city-fan.org
■IBM Cloud側での準備
px-runtimeを導入する前に、IBM Cloud側で”IBM Cloud APIKey”, “IBM Cloud Container Registry APIKey”, “プロジェクトID”を準備する必要があります。後のpx-runtimeを導入する工程で必要となるため、メモして保管しておいてください。
1.IBM Cloud APIKeyの作成
IBM CloudでIBM Cloud APIKeyの作成方法はこちらを参考にしてみてください。
2.IBM Cloud Container Registry APIKeyを入手
注意点として、IBM Cloud APIKeyとIBM Cloud Container Registry APIKeyは同じメールアドレスに紐づいている必要があります。
3.IBM Cloud Pak for Data上にDataStage-aaS Anywhere用のプロジェクトを作成しプロジェクトIDを作成
IBM Cloud Pak for Data上でのプロジェクト作成方法はこちらを参考にしてみてください。
今回は「DataStage-aaS Anywhere」というプロジェクトを作成しました。
プロジェクトを開き、管理画面の一般をクリックするとプロジェクトIDが表示されます。
px-runtimeの導入手順
実際にインスタンス上にpx-runtimeを導入していきたいと思います。
導入の手順は以下の通りです。
1.事前準備で作成したインスタンスを立ち上げSSH接続します。
2.dockerを起動します。
$ sudo systemctl start docker
3.gitコマンドを実行しgit hubにあるDataStageのリポジトリをクローンします。
$ sudo git clone https://github.com/IBM/DataStage.git
4.opensslコマンドを実行し、Encryption KeyとIVを生成します。
生成されたEncryption KeyとIVをメモします。
$ sudo openssl enc -aes-256-cbc -k secret -P -md sha1
salt= 暗号化に使用するランダムな値
key= Encryption Key
iv = Encryption IV
5.クローンしたリポジトリ内にあるdsengine.shスクリプトを以下のコマンドで実行します。
このスクリプトを実行する際に、実行エンジンの名前を任意の名前に定める必要があります。
今回は「px-runtime」と定めました。
加えて、ここまでの手順でメモしてきた値をコマンドに入力する必要があります。
・$IBMCLOUD_APIKEY:事前準備でメモしたIBM Cloud APIKey
・$ENCRYPTION_KEY:手順4で作成したEncryption Key
・$ENCRYPTION_IV:手順4で作成したEncrypition IV
・$IBMCLOUD_CONTAINER_REGISTRY_APIKEY:事前準備でメモしたIBM Cloud Container Registry APIKey
・$PROJECT_ID:事前準備でメモしたプロジェクトID
$ ./dsengine.sh start -n "px-runtime"
-a "$IBMCLOUD_APIKEY"
-e "$ENCRYPTION_KEY"
-i "$ENCRYPTION_IV"
-p "$IBMCLOUD_CONTAINER_REGISTRY_APIKEY"
--project-id "$PROJECT_ID"
”Remote Engine setup is complete”が表示されたらインストール成功です。
次は導入したpx-runtimeがプロジェクトと紐づいていることを確認したいと思います。
px-runtimeの登録確認
「DataStage-aaS Anywhere」プロジェクトを開き、管理画面の環境をクリックします。
1行目に今回導入したpx-runtimeが登録されていることが確認できました。
以上でDataStage Anywhereの導入作業はこれで完了です。
まとめ
今回はDataStage Anywhereの実行エンジンであるpx-runtimeをGCP上に導入してみました。
■導入時の気付き
・curl –data-rawが読み込めずpx-runtimeのインストールに失敗
インストール時に以下のエラーが表示されており、エラー内容を読むとスクリプト内のcurl –data-rawが
読み込めないためpx-runtimeをインストールできないと表示されていました。
curl: option --data-raw: is unknown
curl: try 'curl --help' or 'curl --manual' for more information
Response:
ERROR: Failed to update DataStage settings, please try again
調べた結果、導入時のcurlのバージョン(7.29.0)の場合–data-rawが使用不可であることが判明し、
curlのバージョンを最新(8.2.1)にすることで解決することができました。
■所感
px-runtime(実行エンジン)を導入するにあたりDockerに関する知識が少し不足していた部分もあり、多少時間を要した点はありましたが、git hubからクローンしたスクリプトを実行するだけで複雑な設定をすることなく導入できました。2時間くらいで導入できましたので、 時間をかけずクイックにスタートできるのではと感じました。
今後は導入したpx-runtimeを利用してDataStage-aaS Anywhereの機能を検証していきたいと思っています。
次回のブログではDataStage Anywhere実行編を出す予定なのでぜひご覧になってください。
本ブログを読んでいただき、ありがとうございました。