Watson Machine LearningのデプロイメントスペースにIBM Cloud Object Storageへの「接続(Connection)」を作成する


はじめに

IBM Cloud Pak for Data as a Service(以下CP4DaaS)のNotebook上でデータ分析をする上で、分析対象のデータセットをIBM Cloud Object Storage(以下COS)のバケットに保管するケースを想定します。

分析対象のCSVファイルをバケットに保管したとします。ここで、NotebookからCSVファイルにアクセスするには、デプロイメントスペース上のデータ資産として扱います。このような場合、Notebookからデータファイルを呼び出すために、デプロイメントスペースで、COSのバケットに対して「接続(Connection)」を定義します。

デプロイメントスペースに登録された接続情報を利用するため、NotebookではCOSの接続情報を記述しなくてもデータをダウンロードできるようになるというメリットがあります。本記事では、この「接続(Connection)」の作成ステップと作成上ハマりやすい注意点を記載します。

※作成した接続を使ってデータ処理を行い、データ分析のパイプラインを実装することができます。詳細は以下の記事をご参照ください。
IBM Cloud Pak for Data as a ServiceのNotebookで機械学習のパイプラインを実装する際のデータ入出力を整理


0.前提

作業の前提として、IBM Cloud上でGUI画面から以下を実施しておいてください。

1) Watson Studioでプロジェクトを作成(例:Telco_Customer_Churn)
2) Watson Studioでデプロイメントスペースを作成(例:pipelines_deployment_space)
3) COSの任意のバケットを作成(例:pipeline-bucket1)
4) 以下のデータセットを分析対象データとして取り扱います。これを上記バケットに保存しておきます。(上の図の「0.アップロード」に対応)

ファイル名:Telco_Customer_Churn.csv
ファイル形式:csv


1.準備

COSへの認証に使う「サービス資格情報」を作成

ポイント①COSでサービス資格情報を作成する際に「HMAC資格情報を含める」をオンにする

「サービス資格情報」の作成には、COSの管理画面から「サービス資格情報」を選択し、「新規資格情報」をクリックしますが、ここでのポイントは、「詳細オプション」を展開し、「HMAC資格情報を含める」を「オン」にすることです。

このようにして「サービス資格情報」を作成すると、作成した「サービス資格情報」をリストから選択して展開したときに「HMAC資格情報」に相当する"cos_hmac_keys"が生成されていることが確認できます。このうち"access_key_id"と"secret_access_key"が「接続(Connection)」を作成する際に必要になります。

{
  "apikey": "**************************************",
  "cos_hmac_keys": {
    "access_key_id": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
    "secret_access_key": "YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY"
  },
  "endpoints": "https://control.cloud-object-storage.cloud.ibm.com/v2/endpoints",
  "iam_apikey_description": "Auto-generated for key XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
  "iam_apikey_name": "サービス資格情報-1",
  "iam_role_crn": "crn:v1:bluemix:public:iam::::serviceRole:Writer",
  "iam_serviceid_crn":   (以下省略)

2.接続の作成

デプロイメントスペースで接続を作成

ポイント②接続の追加では「Cloud Object Storage(インフラストラクチャー)」を選択する

「接続」を作成するデプロイメントスペースを開き「スペースに追加」>「資産タイプの選択」画面で「接続」をクリックします。

「接続の追加」画面で、「プロバイダ」欄の「IBM」にチェックします(下画面)。一覧に"Cloud Object Storage"が含まれるものが二つ表示されますが、「Cloud Object Storage (インフラストラクチャー)」の方を選択して、画面右下の「選択」をクリックします。


「接続の編集」画面では、「名前」と「バケット」にそれぞれ適切な値を入力します。

続いて、「ログインURL」に入れる値は、COSの「エンドポイント」から適切なロケーションを選択(例では Regional > us-south)し、「パブリック」に記載されているURLからコピペします。

資格情報にはCOSのサービス資格情報から以下の通り入力します。
「アクセス・キー」:access_key_idの値
「秘密鍵」:secret_key_idの値


おわりに

デプロイメントスペースへの接続の追加は基本的な機能ですが、意外とハマってしまうポイントがあります。本記事では、よりスムーズに接続を追加できるよう、そのポイントに注目してみました。