Terraform を使用して Unity Catalog のセットアップを自動化する
Databricks Terraform プロバイダーを使用して、Unity Catalog のセットアップを自動化できます。この記事では、Terraform プロバイダーの Unity Catalog デプロイ ガイドとリソース参照ドキュメントへのリンク、要件 ("開始する前に") と検証とデプロイのヒントを提供します。
始める前に
Terraform を使用して Unity Catalog のセットアップを自動化するには、次のものが必要です。
- Databricksアカウントは、プレミアムプラン以上である必要があります。
- AWSでは、Amazon S3バケット、AWS IAMロール、AWS IAM ポリシー、およびアカウント間の信頼関係を作成できる必要があります。
- Unity Catalog で使用する Databricks ワークスペースが少なくとも 1 つ必要です。 「ワークスペースを手動で作成する (既存の Databricks アカウント)」を参照してください。
Databricks Terraform プロバイダーを使用して、Unity Catalog のメタストア、メタストアのストレージ、外部ストレージ、およびそれらに関連するすべてのアクセス資格情報を構成するには、次のものが必要です。
-
AWSアカウント。
-
Databricks on AWSアカウントです。
-
Databricksアカウントのアカウント管理者ロールを持つサービスプリンシパル。
-
Terraform CLI。Terraform Webサイトの「Terraformのダウンロード」を参照してください。
-
次の 7 つの Databricks 環境変数:
-
DATABRICKS_CLIENT_ID
は、サービスプリンシパルのクライアント ID (アプリケーション ID とも呼ばれる) の値に設定します。 「を使用してDatabricks リソースへの無人アクセスをサービスプリンシパルで承認 する」を参照してください。OAuth -
DATABRICKS_CLIENT_SECRET
は、サービスプリンシパルのクライアントシークレットの値に設定します。 「を使用してDatabricks リソースへの無人アクセスをサービスプリンシパルで承認 する」を参照してください。OAuth -
DATABRICKS_ACCOUNT_ID
をDatabricksアカウントのIDの値に設定します。この値は、Databricksアカウントコンソールの隅にあります。 -
TF_VAR_databricks_account_id
は、DatabricksアカウントのIDの値にも設定されます。 -
AWS_ACCESS_KEY_ID
をAWSユーザーのアクセスキーIDの値に設定します。AWS全般のリファレンスの「プログラムによるアクセス」を参照してください。 -
AWS_SECRET_ACCESS_KEY
をAWSユーザーのシークレットアクセスキーの値に設定します。AWS全般のリファレンスの「プログラムによるアクセス」を参照してください。 -
AWS_REGION
で、DatabricksアカウントのAWSリージョンコードの値に設定します。AWS全般のリファレンスの「リージョンエンドポイント」を参照してください。
これらの環境変数を設定するには、オペレーティングシステムのドキュメントを参照してください。
-
Databricks のユーザー名とパスワードを使用した基本認証は、2024 年 7 月 10 日にサポートが終了しました。 「Databricks で管理されるパスワードのサポート終了」を参照してください。
Databricks Terraform プロバイダーを使用して他のすべての Unity Catalog インフラストラクチャ コンポーネントを構成するには、次のものが必要です。
-
Databricksワークスペース
-
ローカル開発マシンには、次のものが必要です。
-
Terraform CLI。Terraform Webサイトの「Terraformのダウンロード」を参照してください。
-
次のいずれか一つ。
- Databricks CLI バージョン 0.205 以降、
databricks configure --host <workspace-url> --profile <some-unique-profile-name>
を実行して Databricks 個人用アクセス トークンで構成「Databricks CLI のインストールまたは更新」および「Databricks 個人用アクセス トークン認証」を参照してください。
- Databricks CLI バージョン 0.205 以降、
-
自動化されたツール、システム、スクリプト、アプリで認証する際のセキュリティのベストプラクティスとして、Databricks では OAuth トークンを使用することをお勧めします。
personal access token authentication を使用する場合、 Databricks では、ワークスペース ユーザーではなく 、サービスプリンシパル に属する personal access token を使用することをお勧めします。 サービスプリンシパルのトークンを作成するには、「 サービスプリンシパルのトークンの管理」を参照してください。
-
次の Databricks 環境変数:
-
DATABRICKS_HOST
を Databricks ワークスペース インスタンス URL の値に設定します (例:https://dbc-1234567890123456.cloud.databricks.com
-
DATABRICKS_CLIENT_ID
は、サービスプリンシパルのクライアント ID (アプリケーション ID とも呼ばれる) の値に設定します。 「を使用してDatabricks リソースへの無人アクセスをサービスプリンシパルで承認 する」を参照してください。OAuth -
DATABRICKS_CLIENT_SECRET
は、サービスプリンシパルのクライアントシークレットの値に設定します。 「を使用してDatabricks リソースへの無人アクセスをサービスプリンシパルで承認 する」を参照してください。OAuth
または、サービスプリンシパルのクライアントIDとクライアントシークレットの代わりに、個人用アクセストークンを使用することもできます。
DATABRICKS_TOKEN
に、Databricks 個人用アクセス トークンの値を設定します。 「個人用アクセス トークンの監視と取り消し」も参照してください。
これらの環境変数を設定するには、オペレーティングシステムのドキュメントを参照してください。
自動化されたツール、システム、スクリプト、アプリで認証する際のセキュリティのベストプラクティスとして、Databricks では OAuth トークンを使用することをお勧めします。
personal access token authentication を使用する場合、 Databricks では、ワークスペース ユーザーではなく 、サービスプリンシパル に属する personal access token を使用することをお勧めします。 サービスプリンシパルのトークンを作成するには、「 サービスプリンシパルのトークンの管理」を参照してください。
Terraform プロバイダー Unity Catalog デプロイ ガイドとリソース リファレンス ドキュメント
すべての前提条件をデプロイし、ワークスペースの Unity Catalog を有効にする方法については、Databricks Terraform プロバイダーのドキュメントの「 前提条件リソースのデプロイと Unity Catalog の有効化 」を参照してください。
Unity Catalog インフラストラクチャ コンポーネントが既に配置されている場合は、Terraform を使用して、必要に応じて追加の Unity Catalog インフラストラクチャ コンポーネントをデプロイできます。 前の段落で参照したガイドの各セクションと、Unity Catalog DatabricksTerraformプロバイダーのドキュメントの セクションを参照してください 。
リソースの検証、計画、デプロイ、または破棄
- Terraform構成をデプロイせずに構文を検証するには、
terraform validate
コマンドを実行します。 - Terraform が構成をデプロイするために実行するアクションを表示するには、
terraform plan
コマンドを実行します。 このコマンドは、実際には設定をデプロイしません。 - 設定をデプロイするには、
terraform deploy
コマンドを実行します。 - デプロイされたリソースを削除するには、
terraform destroy
コマンドを実行します。