2
0

More than 1 year has passed since last update.

Terraformを使ってPrivateLink構成のDatabricksワークスペースをデプロイしてみる

Posted at

機能の記事は、こちらの前振りでした。これまでは手作業で構築していましたが、手順の多さにムキーとなってました。

注意

色々サンプルが公開されています。最初はこれをベースに自分で設定ファイルを作成しようとしましたが早々に挫折しました。

結局、私のニーズに合ったのがこちらでした。

シェルスクリプト化されていますが、オプションでリージョンやインターネットゲートウェイの有無を制御することができて便利です。以下のようなアーキテクチャとなります。

準備

Terraformのインストール

Terminalで以下のコマンドを実行します。

brew tap hashicorp/tap
brew install hashicorp/tap/terraform

上のコマンドを実行した際に、

==> Installing terraform from hashicorp/tap
Error: Your Command Line Tools are too outdated.
Update them from Software Update in System Preferences.

If that doesn't show you any updates, run:
  sudo rm -rf /Library/Developer/CommandLineTools
  sudo xcode-select --install

Alternatively, manually download them from:
  https://developer.apple.com/download/all/.
You should download the Command Line Tools for Xcode 13.4.

と言うエラーが出る場合には、以下を実行してCommand Line Toolsをアップデートします。

sudo rm -rf /Library/Developer/CommandLineTools
sudo xcode-select --install

AWS CLIのインストールおよび設定

こちらのGUIインストーラでインストールします。

こちらを参考に設定を行います。AWSアクセスキーを取得してaws configureを実行した際に指定します。

Terraformの設定

  1. こちらのリポジトリをローカルにクローンします。

  2. configure.shがあるディレクトリにsecrets.tfvarsというファイルを作成し、以下の内容を記述します。

    secrets.tfvars
    databricks_account_id = "<databricks account id>"
    databricks_account_name = "<databricks account name>"
    databricks_account_username = "<databricks account owner username>"
    databricks_account_password = "<databricks account owner password>"
    
    • databricks_account_id: DatabricksのアカウントID。
    • databricks_account_name: S3バケット名のプレフィクスになります。
    • databricks_account_username: Databricksアカウントオーナーのメールアドレス。
    • databricks_account_password: Databricksアカウントオーナーのパスワード。
  3. configure.shを実行することでワークスペースがデプロイされるのですが、オプションで挙動を変更することができます。ここでは、-nocmk allを指定して、カスタマーマネージドキーによる暗号化を抑制し、-w pl-tf-test-workspaceでDatabricksワークスペース名を指定し、-r ap-northeast-1でAWSリージョンを指定しています。それ以外のオプションはこちらで説明されています。以下を実行することでワークスペースがデプロイされます。

    ./configure.sh -nocmk all -w pl-tf-test-workspace -r ap-northeast-1
    

Screenshot 2023-01-21 at 20.57.45.png

こちらのテンプレート、このほかにも公衆回線からのアクセスの許可やインターネットゲートウェイの導入、そもそものPrivateLinkの構成としない等、非常に柔軟なコントロールが可能となっています。これまでAWSマネジメントコンソールとDatabricksアカウントコンソールを行ったり来たりしていたのはなんだったのか...。仕組みを学べることは意味ありますし、あとはこのテンプレートを自分でカスタマイズできるようにならなくては。

Databricks 無料トライアル

Databricks 無料トライアル

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0