AI
2023/04/17
上野 桃香

GCP上にDataiku DSSをセットアップする方法を解説!クラウド上でのデータ分析が更に簡単に

記事では、まずGCP上でのDataiku DSSのセットアップに必要な手順について解説します。具体的には、GCPの仮想マシンインスタンスを作成し、必要な権限設定などを行い、Dataiku DSSのインストールを行います。この記事を通じてDataiku DSSをセットアップし、クラウド上でのデータ分析をより簡単に行うことができます。

はじめに

今回はGCPにDataiku DSSをセットアップしたときの手順を説明します。手順で詰まる部分がある方の参考になれば幸いです。

分かりづらい部分も多いと思うので最終的なイメージをお伝えします。

最終イメージとしてはGCPへのデプロイが成功するとFM(Fleet Manager)へのログイン画面が開きます。

Fleet Manager

FMにログイン後インスタンスを作成し、Dataikuが使えます。

インスタンスの名前は右上の検索ボックスの左に表示されます。

Dataiku DSS

PC:Windows

公式ドキュメント:Dataiku Cloud Stacks for GCP — Dataiku DSS 11 documentation

前準備

前準備として以下の項目を確認してください。

<前準備>


  • IAMで権限をサービスアカウントに付与できるユーザー

  • Google Cloud SDKをインストール済

  • Dokerをインストール済

1.GCPでサービスアカウント作成

二つサービスアカウントを作成します。

FMインスタンス用のサービスアカウント作成

FMインスタンスとはFleet Manager instanceのことで、FM(Fleet Manager )はDataikuを使用する前のログイン画面で出てきます。

Dataikuのインスタンスを作成したり管理を行う場所というイメージですね。

詳しい概念の説明は公式ドキュメントに載っています。

それではFMインスタンス用のサービスアカウントを作成しましょう。

「IAM」→「サービスアカウント」→「サービスアカウントの作成」を押し、以下の権限を付与します。ほかには名前などの設定も行います。

<権限>

・Cloud KMS 暗号オペレータ

・Compute 管理者

・DNS 管理者

・サービス アカウント ユーザー

DSSインスタンス用のサービスアカウント作成

こちらも同様に「IAM」→「サービスアカウント」→「サービスアカウントの作成」を押し、以下の権限を付与します。ほかには名前などの設定も行います。

<権限>

・Compute 閲覧者

・Kubernetes Engine 管理者

・Secret Manager のシークレット アクセサー

・サービス アカウント ユーザ

2.DockerコンテナをGoogle Container Registry(GCR)にアップロードする

DataikuをGCP上で実行するには、まずDockerコンテナをGoogle Container Registry(GCR)にアップロードする必要があります。そのためには、GCPにログインし、ストレージ管理者権限を持つユーザーまたはサービスアカウントを使用して、GCRへのアクセスを確保する必要があります。

<手順>

1.Google Cloud SDK Shellでストレージ権限のあるサービスアカウントでGCPにログイン


gcloud auth activate-service-account --key-file=サービスアカウントキーパス


2.DockerがGoogle Cloud Container Registryにログイン

type "サービスアカウントキーパス" | docker login -u _json_key --password-stdin https://gcr.io 


3.以下のコマンドを実施

docker pull busybox
docker tag busybox gcr.io//busybox
docker push gcr.io//busybox


4.DataikuがGCSにアクセスし、データを保存および読み取るために必要な権限を付与する

  • Google クラウド コントロールで、プロジェクトに移動し、[Cloud Storage] セクションに移動します。

  • バケツを見つけartifacts..appspot.comで開ける

  • 「アクセス許可」タブで、アクセス許可の「追加」をクリックし、プリンシパルとして選択しdss-mail(DSSインスタンスのメール)、役割として「ストレージ管理者」を選択して、「保存」します。


    3.GCP上にフリートマネージャーをホストするためのVPCを作成する

    こちらの手順は多くなるため公式ドキュメントを参照して下さい。

    公式ドキュメント通りに設定すれば問題ないです。

    IPアドレスの設定の範囲とはどうすればいいか悩む方もいると思いますがこちらの記事を参考にして下さい。

    勘違いしてない?IPアドレスとサブネットマスクの仕組みを図で再確認(3ページ目) | 日経クロステック(xTECH) (nikkei.com)

    ゼロから学ぶネットワーク入門:50記事で完全解説 | ビズドットオンライン (it-biz.online)

    4.FMのデプロイ

    ここまで完成したらFMのデプロイの準備が整いました。

    1.コマンドプロントで実行して、テンプレート ファイルをフェッチします。


    gsutil cp gs://dataiku-cloudstacks/templates/fleet-manager/11.4.1/fleet-manager-instance.jinja . gsutil cp gs://dataiku-cloudstacks/templates/fleet-manager/11.4.1/fleet-manager-instance.jinja.schema .


    2.Google Cloud SDK Shellで実行してデプロイを開始する

    gcloud deployment-manager deployments create  --template fleet-manager-instance.jinja --properties zone:,machineType:,network:,subnetwork:,serviceAccount:,allowedCIDR:,username:,password:,sshKey:""


    私は2の公式コードでは上手くいかなかったのでこのように改善しました。

    gcloud deployment-manager deployments create  --project= --template fleet-manager-instance.jinja --properties="zone=-a,machineType=,network=,subnetwork=,serviceAccount=,allowedCIDR=,username=,password=,sshKey=''"


    deployment-nameは自身で設定し、zoneとmachine-typeもここで設定します。zoneとmachine-typeはGCP公式ドキュメントにどのような種類があるのか記載されています。allowed-ciderではFMインスタンスへの接続が許可されるIPアドレスの範囲を入力します。次にFMにログインするとき用のユーザーの名前とパスワードを設定します。

    (もしデプロイをやり直す場合はcreateではなくupdateに変更すれば大丈夫です。)

    成功すればGoogle Cloud SDK ShellでfmSeverIPの横にIPアドレスが表示されます。

    そしたらhttp://<生成されたIPアドレス>のURLを開きます。そこでFMが起動しログイン画面になるはずです。

    もしIPアドレスが生成されGCP上でデプロイが成功していても新しいタブが開けない場合があります。その時はネットワークの設定のどこかで問題が生じている可能性があります。

    ファイアーウォールの設定など確認しましょう。

    また、Windows Power Shellでping IPアドレスとすればわざわざ上記のように入力しなくても接続に成功するかしないか分かります。

    自身のipアドレスの構成を確認したければipconfigとWindows Power Shellで実行することで確認できます。

    <参考記事>

    SSH接続できない場合の確認ポイント5選 | ビズドットオンライン (it-biz.online)

    5.Dataiku DSSの開始

    FMにログイン後は公式ドキュメントに沿ってライセンスの登録やDSSインスタンスを作成し、Dataiku DSSを開始します。

    初めて使用する方は英語での説明が不安かもしれませんので日本語で分かりやすく説明してくれている日本語バージョンレッスン動画を参照するのがおすすめです。

    Japanese Dataiku Academy

    コスト関係の話

    ここまでの手順を終了するとGCPでVMインスタンスが二つ生成されていると思います。

    この二つを常に起動させておくと余計なお金がかかります。また構成しているマシーンタイプなどで余計なコストがかかっている場合もあります。

    その場合はGCPの提案に沿ってマシーンタイプなどを変更し、これ以上作業しないときはVMインスタンスを停止させましょう。

    VMインスタンスを起動させるときに毎回外部IPアドレスが変更されることに注意して下さい。

    具体的な話はこちらの記事で説明しています。

    GCP上でDataiku DSSを効率的に運用するためのコスト削減策:5分の1のコスト削減に成功!

    まとめ

    今回はGCPにDataiku DSSをセットアップする方法を紹介しました。

    個人的にVPCネットワークのIPアドレスの範囲設定やデプロイ時の設定に苦労しましたね。

    最初公式ドキュメントを読んだときはFMって何?DSSインスタンスって何?状態でしたが手順通り進めていく過程でイメージが掴めていきました。

    ここまで読んでいただきありがとうございました。

    New call-to-action