Account APIを使用してワークスペースを作成する
注:
これらの手順は、2023 年 11 月 8 日より前に作成されたアカウントに適用されます。 Databricks アカウントが 2023 年 11 月 8 日以降に作成された場合は、 「ワークスペース API の作成」を参照してください。
この記事では、Account APIを使用してワークスペースを作成する方法を説明します。AWS Quick Startテンプレート、アカウントコンソール、Terraformを使用してワークスペースを作成することもできます。
マネージドキーを マネージドサービス またはAWS PrivateLink に使用する場合は、アカウントAPI を使用してワークスペースを作成する必要があります。
始める前に
アカウント IDにアクセスできることを確認してください。
ワークスペースが以下の機能を有効にするかどうかを判断します。
顧客管理 VPC :Amazon VPCあらゆるタイプの接続にAWS PrivateLink を使用する場合は、独自の Virtual Public クラウド ( ) を提供します。
-
コントロール プレーンの マネージド サービス 用の顧客管理キー : 管理のコントロールKMS プレーンでデータベースと秘密データを暗号化するためのDatabricks キーを提供します。
ワークスペース ストレージ用の顧客管理キー : ワークスペースのKMSS3 バケット (ワークスペースの DBFS ルート、ジョブの結果など) とオプションでクラスター ノードの EBS ボリュームを暗号化するための キーを提供します。
AWS PrivateLink : AWS PrivateLink は、トラフィックをパブリックネットワークに公開することなく、AWS VPC およびオンプレミスネットワークから AWS サービスへのプライベート接続を提供します。
ワークスペースのコンピュート プレーン( VPC ) に使用するリージョンを決定します。 コントロールプレーン領域はコンピュートプレーン領域によって決定されます。
ワークスペース コンピュート プレーン VPC は、 AWSリージョン
ap-northeast-1
、ap-northeast-2
、ap-south-1
、ap-southeast-1
、ap-southeast-2
、ca-central-1
、eu-west-1
、eu-west-2
、eu-central-1
、us-east-1
、us-east-2
、us-west-1
、us-west-2
に配置できます。 ただし、暗号化にVPCus-west-1
顧客管理キー を使用する場合は、 で を使用することはできません。
アカウントAPIの使い方
アカウント APIに対して認証するには、サービスプリンシパルの Databricks OAuth または ユーザーの Databricks OAuth を使用できます。 Databricks は、ユーザーまたはサービスプリンシパルの Databricks OAuth を使用することを強くお勧めします。 サービスプリンシパルは、自動化ツール、ジョブ、およびアプリケーションで使用するために Databricks で作成する ID です。 「 Databricksを使用してサービスプリンシパルで へのアクセスを認証するOAuth (OAuth M2M)」 を参照してください。
次の例を使用して、Databricks アカウントに認証します。 サービスプリンシパルにOAuth使用するか、ユーザーにOAuthを使用できます。 背景については、以下を参照してください。
OAuthサービスプリンシパルの については、「 DatabricksOAuth(OAuth M2M) を使用してサービスプリンシパルで へのアクセスを認証 する」を参照してください。
ユーザーの OAuth については、「 OAuth を使用してユーザー アカウントで Databricks へのアクセスを認証する (OAuth U2M)」を参照してください。
注:
Databricks のユーザー名とパスワードを使用した基本認証は、2024 年 7 月 10 日にサポートが終了しました。 Databricks 管理パスワードのサポート終了を参照してください。
認証の例については、以下から選択してください。
Databricks CLI バージョン 0.205 以上をインストールします。 「Databricks CLI のインストールまたは更新」を参照してください。
ステップを完了して OAuth アカウント内のサービスプリンシパルのM2M認証を設定します。 「 Databricksを使用してサービスプリンシパルで へのアクセスを認証するOAuth (OAuth M2M)」 を参照してください。
.databrickscfg
ファイルでDatabricks構成プロファイルを識別するか手動で作成し、サービスプリンシパルに関連するhost
、account_id
、client_id
、およびclient_secret
のマッピングに対してプロファイルのフィールドが正しく設定されていることを確認します。 OAuth マシン間 (M2M) 認証を参照してください。対象のDatabricks CLIコマンドを実行します。ここで、
<profile-name>
は.databrickscfg
ファイル内の構成プロファイルの名前を表します。databricks account <command-name> <subcommand-name> -p <profile-name>
たとえば、アカウント内のすべてのユーザーを一覧表示するには、以下のようにします。
databricks account users list -p MY-AWS-ACCOUNT
使用可能なアカウントコマンドを一覧表示するには、コマンド
databricks account -h
を実行します。accountコマンドで使用可能なサブコマンドを一覧表示するには、コマンド
databricks account <command-name> -h
を実行します。
Databricks CLI バージョン 0.205 以上をインストールします。 「Databricks CLI のインストールまたは更新」を参照してください。
アカウント内のユーザーの OAuth U2M 認証を構成するためのステップを完了します。 「OAuth (OAuth U2M) を使用してユーザーアカウントで Databricks へのアクセスを認証する」を参照してください。
以下のDatabricks CLIコマンドを実行して、ユーザー認証プロセスを開始します。
databricks auth login --host <account-console-url> --account-id <account-id>
例:
databricks auth login --host https://accounts.cloud.databricks.com --account-id 00000000-0000-0000-0000-000000000000
注:
既存の Databricks 構成プロファイル に
host
フィールドとaccount_id
フィールドが既に設定されている場合は、--host <account-console-url> --account-id <account-id>
を--profile <profile-name>
に置き換えることができます。画面の指示に従って、Databricks CLIが関連するDatabricks構成プロファイルを
.databrickscfg
ファイルに自動的に作成します。画面の指示に従って、WebブラウザからDatabricksアカウントにサインインします。
対象のDatabricks CLIコマンドを実行します。ここで、
<profile-name>
は.databrickscfg
ファイル内の構成プロファイルの名前を表します。databricks account <command-name> <subcommand-name> -p <profile-name>
たとえば、アカウント内のすべてのユーザーを一覧表示するには、以下のようにします。
databricks account users list -p ACCOUNT-00000000-0000-0000-0000-000000000000
使用可能なアカウントコマンドを一覧表示するには、コマンド
databricks account -h
を実行します。accountコマンドで使用可能なサブコマンドを一覧表示するには、コマンド
databricks account <command-name> -h
を実行します。
ステップ1:クロスアカウント認証を設定する
Databricksは、新しいワークスペースの適切なVPCにクラスターをデプロイできるように、AWSアカウントのクロスアカウントサービスのIAMロールにアクセスする必要があります。
このようなロールがまだ存在しない場合は、「ワークスペースデプロイメント用のIAMロールを作成する 」を参照して、デプロイメントタイプに適したロールとポリシーを作成してください。この手順の後半で、新しいロール((
role_arn
)のARNを指定します。注:
複数のワークスペースでクロスアカウントIAMロールを共有できます。ワークスペースごとに新しいクロスアカウントIAMロールを作成する必要はありません。すでにクロスアカウントIAMロールがある場合は、この手順をスキップできます。
AWS ロールの Databricks 認証情報構成 ID を作成します。 資格情報構成 API (
POST /accounts/<databricks-account-id>/credentials
) を作成します。 このリクエストはアカウント間の信頼を確立し、新しいワークスペースを作成するときに使用する参照 ID を返します。注:
複数のワークスペースで資格情報構成IDを共有できます。ワークスペースごとに新しいワークスペースを作成する必要はありません。すでにお持ちの場合は、この手順をスキップできます。
<databricks-account-id>
を Databricks アカウント ID に置き換えます。 認証については、 「アカウント API の使用方法」を参照してください。 要求本文で、次の操作を行います。credentials_name
をこれらの認証情報の名前に設定します。名前はアカウント内で一意である必要があります。aws_credentials
をsts_role
プロパティを含むオブジェクトに設定します。このオブジェクトには、作成したロールのAWSロールARNを指定するrole_arn
プロパティを含める必要があります。
応答本文には、新しいワークスペースを作成するために必要なDatabricks認証情報構成IDである
credentials_id
フィールドが含まれます。この値は後の手順でワークスペースを作成するために使用するので、コピーして保存してください。例:
curl -X POST 'https://accounts.cloud.databricks.com/api/2.0/accounts/<databricks-account-id>/credentials' \ --header 'Authorization: Bearer $OAUTH_TOKEN' \ -d '{ "credentials_name": "databricks-workspace-credentials-v1", "aws_credentials": { "sts_role": { "role_arn": "arn:aws:iam::<aws-account-id>:role/my-company-example-role" } } }'
応答例:
{ "credentials_id": "<databricks-credentials-id>", "account_id": "<databricks-account-id>", "aws_credentials": { "sts_role": { "role_arn": "arn:aws:iam::<aws-account-id>:role/my-company-example-role", "external_id": "<databricks-account-id>" } }, "credentials_name": "databricks-workspace-credentials-v1", "creation_time": 1579753556257 }
後で使用するために、応答から
credentials_id
フィールドをコピーします。
ステップ2:root ストレージを構成する
アカウントのrootストレージS3バケットには、クラスターログ、ノートブックの修正箇所、ジョブの結果などのオブジェクトが保存されます。また、rootストレージのS3バケットを使用して、テストに必要なデータのような非本番データを保存することもできます。
注:
root S3バケットは、1つのアカウントで複数のワークスペースと共有できます。ワークスペースごとに新しいバケットを作成する必要はありません。アカウント内の複数のワークスペースでroot S3バケットを共有する場合、root S3バケット上のデータはワークスペースごとに個別のディレクトリに分割されます。すでにバケットと、アカウントAPIによって生成された関連するストレージ構成IDがある場合は、この手順をスキップできます。ただし、レガシーワークスペースのバケットを再利用しないでください。たとえば、E2に移行する場合は、E2環境用に新しいAWSバケットを作成します。
「ワークスペースデプロイメント用のS3バケットを作成する」の手順に従って、root S3バケットを作成します。
ルート S3 バケットを表すストレージ構成レコードを作成します。 ストレージ設定 API (
POST /accounts/<account-id>/storage-configurations
) を作成して、ルート S3 バケットを名前で指定します。リクエストは、S3バケットを表すストレージ構成IDを返します。
以下を指定します。
storage_configuration_name
:新しい一意のストレージ構成名。root_bucket_info
:S3バケット名を含むbucket_name
フィールドを含むJSONオブジェクト。
応答本文には、バケットのストレージ構成IDである
storage_configuration_id
プロパティが含まれています。後で使用するためにその値をコピーします。例:
curl -X POST 'https://accounts.cloud.databricks.com/api/2.0/accounts/<databricks-account-id>/storage-configurations' \ --header 'Authorization: Bearer $OAUTH_TOKEN' \ -d '{ "storage_configuration_name": "databricks-workspace-storageconf-v1", "root_bucket_info": { "bucket_name": "my-company-example-bucket" } }'
応答:
{ "storage_configuration_id": "<databricks-storage-config-id>", "account_id": "<databricks-account-id>", "root_bucket_info": { "bucket_name": "my-company-example-bucket" }, "storage_configuration_name": "databricks-workspace-storageconf-v1", "creation_time": 1579754875555 }
ステップ3:PrivateLinkを設定する(オプション)
このステップは、AWS PrivateLinkを使用する場合にのみ必要です。
AWS PrivateLinkは、トラフィックをパブリックネットワークに公開することなく、AWS VPCおよびオンプレミスネットワークからAWSサービスへのプライベート接続を提供します。
Databricks ワークスペースでは、次の 2 つの接続タイプに対する PrivateLink 接続の追加がサポートされています。
ユーザーからワークスペースへ(フロントエンド)
コンピュートプレーンからコントロールプレーン(バックエンド)
新しいワークスペースのプライベートリンク接続の場合:
続行する前に、AWS PrivateLinkの記事をよく読み、前提条件を確認してください。
AWS コンソールまたは自動化ツールを使用して AWS VPC エンドポイントを作成します。 「ステップ 2: VPC エンドポイントを作成する」を参照してください。
AWS PrivateLink を使用してプライベート接続を有効にし、VPC エンドポイント登録、ネットワーク構成、プライベートアクセス設定オブジェクトを作成する方法を確認します。
この記事の次の手順に進みます。何らかのタイプのPrivateLink接続(フロントエンドのみを含む)を実装する場合は、顧客管理VPCを使用する必要があります。
ステップ4:顧客管理VPCを設定する(オプションですが、PrivateLinkを使用する場合は必須)
デフォルトでは、DatabricksはワークスペースごとにAWSアカウントにVPCを作成します。Databricksは、ワークスペース内でクラスターを実行するためにこれを使用します。オプションで、顧客管理VPC機能を使用して、ワークスペースに独自のVPCを使用できます。Databricksは、Databricksの要件に準拠しつつ、組織のエンタープライズクラウド標準に従ってVPCを構成できるよう、独自のVPCを提供することを推奨しています。既存のワークスペースを自分のVPCに移行することはできません。
重要
あらゆるタイプの接続 (フロントエンドのみを含む) に対してAWS PrivateLink を使用してプライベート接続を有効にするようにワークスペースを設定するには、ワークスペースで顧客管理VPCを使用する必要があります。
「顧客管理 VPCVPC の設定」 の手順に従って、 、サブネット、セキュリティ グループを設定します。次のステップで各オブジェクトの ID をコピーし、それらをDatabricksに登録して、新しいネットワークを表すネットワーク ID を取得します。
重要
複数のワークスペース間で VPC とサブネットを共有する予定の場合は、使用量に応じて拡張できる大きさになるように VPC とサブネットのサイズを設定してください。 ネットワーク構成オブジェクトをワークスペース間で再利用することはできません。
ネットワーク構成を Databricks に登録するには、ネットワーク構成作成 API (
POST /accounts/<account-id>/networks
) を呼び出します。以下を指定します。
network_name
:新しい一意のネットワーク名。vpc_id
:VPCのID。subnet_ids
:配列で表したサブネットID。security_group_ids
:配列で表したセキュリティグループID。vpc_endpoints
: AWS PrivateLinkのみに使用されます。 バックエンド (コントロールプレーンからコンピュートプレーン) PrivateLink 接続をデプロイする場合に必須です。この場合、このオブジェクトには、登録済みのVPCエンドポイント登録を参照する 2 つのプロパティが必要です。rest_api
: ワークスペース VPC エンドポイント登録の Databricks ID のみを含む JSON 配列に設定します。 これは、AWS VPC エンドポイント ID ではなく、Databricks VPC エンドポイント登録 ID です。重要
本リリースでは、ワークスペースのVPCエンドポイントサービスにフロントエンド接続またはバックエンドREST API接続用のVPCエンドポイントを登録すると、DatabricksはそのVPCエンドポイントからAWSリージョン内のDatabricksアカウント内のすべてのPrivateLink対応ワークスペースへのフロントエンド(WebアプリケーションおよびREST API)アクセスを有効にします。
dataplane_relay
: 安全なクラスター接続 VPC エンドポイント登録の Databricks ID のみを含む JSON 配列に設定します。 これは、AWS VPC エンドポイント ID ではなく、Databricks VPC エンドポイント登録 ID です。
これらのオブジェクトの詳細については、 「AWS PrivateLink を使用してプライベート接続を有効にする」を参照してください。 これらの ID は、 「AWS PrivateLink を使用してプライベート接続を有効にする」で説明されているように、VPC エンドポイントの登録中に返されました。
例:
curl -X POST 'https://accounts.cloud.databricks.com/api/2.0/accounts/<databricks-account-id>/networks' \ --header 'Authorization: Bearer $OAUTH_TOKEN' \ -d '{ "network_name": "mycompany-vpc-example", "vpc_id": "<aws-vpc-id>", "subnet_ids": [ "<aws-subnet-id-1>", "<aws-subnet-id-2>" ], "security_group_ids": [ "<aws-security-group-id>" ], "vpc_endpoints": { "dataplane_relay": [ "<databricks-vpce-id-for-scc>" ], "rest_api": [ "<databricks-vpce-id-for-rest-apis>" ] } }'
後で使用するために、応答本文から
network_id
をコピーします。これは、新しいワークスペースのネットワークを表すネットワークIDです。応答例:
{ "network_id": "<databricks-network-id>", "account_id": "<databricks-account-id>", "vpc_id": "<aws-vpc-id>", "subnet_ids": [ "<aws-subnet-id-1>", "<aws-subnet-id-2>" ], "security_group_ids": [ "<aws-security-group-id>" ], "vpc_status": "UNATTACHED", "network_name": "mycompany-vpc-example", "creation_time": 1579767389544, "vpc_endpoints": { "dataplane_relay": [ "<databricks-vpce-id-for-scc>" ], "rest_api": [ "<databricks-vpce-id-for-rest-apis>" ] } }
ステップ5:カスタマーマネージドキーを構成する(オプション)
重要
この機能を使用するには、アカウントがEnterprise価格プランである必要があります。
ワークスペース コンピュート プレーン VPC は、 AWSリージョン
ap-northeast-1
、ap-northeast-2
、ap-south-1
、ap-southeast-1
、ap-southeast-2
、ca-central-1
、eu-west-1
、eu-west-2
、eu-central-1
、us-east-1
、us-east-2
、us-west-1
、us-west-2
に配置できます。 ただし、暗号化にVPCus-west-1
顧客管理キー を使用する場合は、 で を使用することはできません。
顧客管理暗号化キーには 2 つの使用例があります。
コントロール プレーン内のデータベースと秘密データを含む マネージド サービスを暗号化します。
ワークスペースのルート S3 バケットとオプションでクラスター EBS ボリュームを含むワークスペース ストレージを暗号化します。
これらのどちらも設定しないことも、一方を設定することも、両方を設定することもできます。両方のユースケースで暗号化を実装することを選択した場合、オプションでキーを共有したり、オプションでこれらのユースケースで同じ設定オブジェクトを共有したりすることもできます。
どちらのユースケースでも、ワークスペースの作成時に構成するか、実行中のワークスペースにキーを追加することができます。 マネージドサービスの顧客管理キーの場合は、後でキーをローテーション(更新)できます。 ストレージ用の顧客管理キーの場合、後でキーをローテーションすることはできません。
顧客管理キーまたはそのキー設定オブジェクトは、ワークスペース間で共有できます。新しいワークスペースを作成するとき、キー設定はuse_cases
フィールドに両方の列挙値を含めるように設定することで、両方の暗号化使用例を表すことができます。
注:
すでにノートブック暗号化を使用している既存のワークスペースにワークスペース ストレージ キーを追加するには、ワークスペース ストレージ用の新しいキー構成オブジェクトを作成する必要があります。 暗号化用の顧客管理キーの構成を参照してください。
1つの暗号化使用例または両方の暗号化使用例を同じキーで実装するには、次の手順を1回だけ実行します。異なるキーで両方の暗号化使用例に暗号化を追加するには、各ユースケースについて1回ずつ、この手順を2回実行します。
AWS KMS キーを作成します。 次のいずれかのセクションの指示に従ってください。これらのセクションは、ユースケースを識別するためのポリシー内の判読可能な説明フィールド (
sid
) のみが異なります。 「ステップ 1: AWS KMS でキーを作成または選択する」を参照してください。 両方のユースケースでキーと設定を共有するには、それに応じてsid
フィールドを更新します。KMSキーをDatabricksに登録するには、顧客管理キー構成API (
POST /accounts/<account-id>/customer-managed-keys
) の作成を呼び出します。次のパラメーターを渡します。
use_cases
— キーを使用する使用例を指定する配列。次のいずれかまたは両方を指定します。MANAGED_SERVICES
: このキーは、コントロール プレーン内の マネージド サービス を暗号化します。これには、コントロール プレーン内のコンピューター データと秘密データが含まれます。STORAGE
: このキーは、ワークスペースの DBFS ルートおよびクラスター EBS ボリュームを含むワークスペース ストレージを暗号化します。
aws_key_info
:次のプロパティを持つJSONオブジェクト。key_arn
: AWS KMSキーARN。DatabricksはキーARNからAWSリージョンを推測することに注意してください。key_alias
:(オプション)AWS KMSキーのエイリアス。reuse_key_for_cluster_volumes
(オプション)use_cases
アレイにSTORAGE
が含まれている場合にのみ使用され、クラスターEBSボリュームの暗号化にもキーを使用するかどうかを指定します。デフォルト値はtrue
で、Databricksもクラスターボリュームのキーを使用することを意味します。これをfalse
に設定すると、Databricksは指定されたキーでEBSボリュームを暗号化しません。その場合、DatabricksのEBSボリュームはデフォルトのAWS SSE暗号化で暗号化されるか、AWSのアカウントレベルのEBS暗号化をデフォルトで有効にしている場合は、AWSがアカウントレベルの EBS 暗号化を実行します。reuse_key_for_cluster_volumes
がtrue
で、キーの権限を取り消すと、実行中のクラスターには影響しませんが、新規クラスターと再起動されたクラスターには影響することに注意してください。
リクエストの例:
curl -X POST 'https://accounts.cloud.databricks.com/api/2.0/accounts/<databricks-account-id>/customer-managed-keys' \ --header 'Authorization: Bearer $OAUTH_TOKEN' \ -d '{ "use_cases": ["MANAGED_SERVICES", "STORAGE"], "aws_key_info": { "key_arn": "arn:aws:kms:us-west-2:<aws-account-id>:key/<key-id>", "key_alias": "my-example-key", "reuse_key_for_cluster_volumes": true } }'
応答例:
{ "use_cases": ["MANAGED_SERVICES", "STORAGE"], "customer_managed_key_id": "<aws-kms-key-id>", "creation_time": 1586447506984, "account_id": "<databricks-account-id>", "aws_key_info": { "key_arn": "arn:aws:kms:us-west-2:<aws-account-id>:key/<key-id>", "key_alias": "my-example-key", "reuse_key_for_cluster_volumes": true, "key_region": "us-west-2" } }
応答JSON から、
customer_managed_key_id
をコピーします。次のステップでそのIDを使用して、このオブジェクトが表す暗号化使用例に応じて、ワークスペース構成オブジェクトのプロパティmanaged_services_customer_managed_key_id
、storage_customer_managed_key_id
、またはその両方を設定します。
ステップ6:ワークスペースを作成する
新しいワークスペースを作成するには、ワークスペース作成 API ( POST /accounts/<account-id>/workspaces
) を呼び出します。
次のパラメーターを渡します。これらのパラメーターは、前の手順でコピーした値です。
aws_region
: ワークスペースのコンピュート プレーンのAWSリージョン。workspace_name
:人間にとってわかりやすいワークスペースの名前。これは、Databricks UIでユーザーに表示されるワークスペース名です。deployment_name
: (推奨、ただしオプション) ワークスペースの一意のデプロイメント名。 詳細については、 デプロイ名に関する注意事項を参照してください。credentials_id
: クロスアカウントロールの資格情報を表す資格情報ID。これは、資格情報構成オブジェクトのIDです。storage_configuration_id
:お客様のroot S3バケットを表すストレージ構成ID。これは、ストレージ構成オブジェクトのIDです。network_id
:(オプション)顧客管理VPCにのみ使用されます。これはネットワーク設定オブジェクトのIDです。managed_services_customer_managed_key_id
: (オプション) コントロール プレーン内のコンピュータや秘密データなどのマネージド サービスの暗号化にのみ使用されます。 マネージド サービスの顧客管理キーを参照してください。 これは、ワークスペース ストレージのキー構成 ID であり、キー構成オブジェクトのcustomer_managed_key_id
フィールドです。 この暗号化ユースケースをサポートする場合は、ワークスペースの作成時に構成する必要があります。storage_customer_managed_key_id
: (オプション) ワークスペース ストレージを暗号化するためにのみ使用されます。 これは、ワークスペース ストレージのキー構成 ID であり、キー構成オブジェクトのcustomer_managed_key_id
フィールドです。 この暗号化ユースケースをサポートする場合は、ワークスペースの作成時に構成できますが、実行中のワークスペースに後で追加することもできます。private_access_settings_id
: (オプション) AWS PrivateLinkのみに使用されます。 これは、このワークスペース用に作成したプライベート アクセス設定オブジェクトの ID です。 「プライベートアクセス設定の管理」を参照してください。これは、すべての接続タイプ(フロントエンド、バックエンド、またはその両方)のPrivateLinkアクセスの必須フィールドです。custom_tags
:(オプション)リソースを整理するためのメタデータとして機能するキーと値のペアです。タグは、リソースの管理、識別、整理、検索、フィルタリングに加だけでなく、コストや属性の使用状況のモニタリングにも役立ちます。
デプロイメント名に関する注意事項:
deployment_name
の値は慎重に選択してください。デプロイメント名は、ワークスペースのサブドメインの一部を定義します。ウェブアプリケーションとREST APIのワークスペースURLは<deployment-name>.cloud.databricks.com
です。たとえば、デプロイメント名がABCSales
の場合、ワークスペースURLはhttps://abcsales.cloud.databricks.com
になります。このプロパティは、文字a ~zおよび0~9をサポートします。ハイフンも使用できますが、最初または最後の文字として使用することはできません。アカウントにはデプロイメント名のプレフィックスを付けることができます。 アカウントにアカウント展開名プレフィックスを追加するには、Databricks アカウント チームにお問い合わせください。 ワークスペースの作成時にアカウントに空でないデプロイメント名プレフィックスがある場合、ワークスペースのデプロイメント名はアカウントプレフィックスとハイフンで始まるように更新されます。 たとえば、アカウントのデプロイメント プレフィックスが
acme
で、ワークスペースのデプロイメント名がworkspace-1
の場合、deployment_name
フィールドはacme-workspace-1
になります。 この例では、ワークスペース URL はacme-workspace-1.cloud.databricks.com
です。このアカウントプレフィックスの変更後、新しい値は、このワークスペースの
deployment_name
フィールドのJSON応答で返されるものです。アカウントに空ではないデプロイメント名プレフィックスがあり、
deployment_name
を予約キーワードEMPTY
に設定した場合、deployment_name
はアカウントプレフィックスのみです。たとえば、アカウントのデプロイメントプレフィックスがacme
で、ワークスペースのデプロイメント名がEMPTY
の場合、deployment_name
はacme
のみになり、ワークスペースのURLはacme.cloud.databricks.com
になります。アカウントにデプロイメント名プレフィックスがまだない場合、特別なデプロイメント名の値EMPTY
は無効です。
JSON応答には、プロパティworkspace_id
が含まれます。後で使用するために、この値をコピーします。
例:
curl -X POST
'https://accounts.cloud.databricks.com/api/2.0/accounts/<databricks-account-id>/workspaces' \
--header 'Authorization: Bearer $OAUTH_TOKEN' \
-d '{
"workspace_name": "my-company-example",
"deployment_name": "my-company-example",
"aws_region": "us-west-2",
"credentials_id": "<aws-credentials-id>",
"storage_configuration_id": "<databricks-storage-config-id>",
"network_id": "<databricks-network-id>",
"managed_services_customer_managed_key_id": "<aws-kms-managed-services-key-id>",
"storage_customer_managed_key_id": "<aws-kms-notebook-workspace-storage-id>",
"private_access_settings_id": "<private-access-settings-id>",
"custom_tags": {
"Organization": "Marketing",
"Env": "Prod"
}
}'
応答例:
{
"workspace_id": 123456789,
"workspace_name": "my-company-example",
"aws_region": "us-west-2",
"creation_time": 1579768294842,
"deployment_name": "my-company-example",
"workspace_status": "PROVISIONING",
"account_id": "<databricks-account-id>",
"credentials_id": "<aws-credentials-id>",
"storage_configuration_id": "<databricks-storage-config-id>",
"workspace_status_message": "Workspace resources are being set up.",
"network_id": "<databricks-network-id>",
"managed_services_customer_managed_key_id": "<aws-kms-managed-services-key-id>",
"storage_customer_managed_key_id": "<aws-kms-notebook-workspace-storage-id>",
"private_access_settings_id": "<private-access-settings-id>",
"pricing_tier": "ENTERPRISE",
"custom_tags": {
"Organization": "Marketing",
"Env": "Prod"
}
}
顧客管理 VPC を指定し、ワークスペース作成ステップでネットワーク関連のエラーが返された場合は、ネットワーク設定を取得するAPI (エンドポイント /networks/<network-id>
) を呼び出して、ネットワーク設定を検証できます。 「ワークスペース作成エラーのトラブルシューティング」を参照してください。
ステップ 7:新しいワークスペースを確認する
ワークスペースのステータスを確認するには、ワークスペース取得 API ( GET /accounts/<account-id>/workspaces/<workspace-id>
) を呼び出します。
ワークスペースの作成時に返されたJSON応答のworkspace_id
値を使用します。
応答では、可能なworkspace_status
値は次のとおりです。
NOT_PROVISIONED
:まだプロビジョニングされていません。PROVISIONING
:まだプロビジョニング中です。数分待ってから、このAPIリクエストを繰り返します。RUNNING
:デプロイメントが正常に完了し、現在実行されています。FAILED
:デプロイメントに失敗しました。BANNED
:禁止されています。CANCELLING
:キャンセル処理中。
失敗したステータス値を処理する方法については、 「ワークスペース作成エラーのトラブルシューティング」を参照してください。
例:
curl -X GET
'https://accounts.cloud.databricks.com/api/2.0/accounts/<databricks-account-id>/workspaces/<databricks-workspace-id>' \
--header 'Authorization: Bearer $OAUTH_TOKEN'
応答:
{
"workspace_id": 123456789,
"workspace_name": "my-company-example",
"aws_region": "us-west-2",
"creation_time": 1579768294842,
"deployment_name": "my-company-example",
"workspace_status": "RUNNING",
"account_id": "<databricks-account-id>",
"credentials_id": "<aws-credentials-id>",
"storage_configuration_id": "<databricks-storage-config-id>",
"workspace_status_message": "Workspace is running.",
"network_id": "339f16b9-b8a3-4d50-9d1b-7e29e49448c3",
"managed_services_customer_managed_key_id": "<aws-kms-managed-services-key-id>",
"storage_customer_managed_key_id": "<aws-kms-notebook-workspace-storage-id>",
"pricing_tier": "ENTERPRISE"
}
この例では、ワークスペースのステータス(workspace_status
)がRUNNING
に設定されているため、成功しました。PROVISIONING
の場合は、成功するまでこのAPIリクエストを繰り返します。
価格は、デフォルトでアカウントに関連付けられているプランになります。AWSプラットフォーム層を参照してください。
新しいワークスペースのステータスがRUNNING
になったら、新しいワークスペースをテストします。
新しいワークスペースでのユーザー インターフェイス ログイン- URL
https://<deployment-name>.cloud.databricks.com
で Web アプリケーションにログインできることを確認します。 たとえば、ワークスペースの作成時に指定したデプロイメント名がABCSales
の場合、ワークスペースの URL はhttps://abcsales.cloud.databricks.com
になります。 アカウントのユーザー名を使用してログインします。新しいワークスペースでのREST APIログイン — REST APIにアクセスできることを確認します。次の例では、ワークスペースユーザーAPIを呼び出してユーザーのリストを取得します。
curl -u <user-name> -X GET 'https://<deployment-name>.cloud.databricks.com/api/2.0/scim/v2/Users' \ --header 'Authorization: Bearer $OAUTH_TOKEN'
その他の認証オプションを含むDatabricks REST APIsの使用に関する詳細については、ワークスペースAPIを参照してください。
ステップ8:デプロイメント後のPrivateLink構成(オプション)
このステップは、AWS PrivateLinkを構成する場合にのみ必要です。
ワークスペースの作成後:
フロントエンドのPrivateLink 接続を実装する場合は、 「手順 5: ユーザー要求を Web アプリケーション (フロントエンド) にリダイレクトするように内部 DNS を構成する」の説明に従って、関連する DNS 構成の変更を実装します。
オプションで、 「ステップ 7: 他の AWS サービスの VPC エンドポイントを追加する」の説明に従って、他の VPC エンドポイントを作成します。
ステップ9:その他のオプションのデプロイメント後の構成
新しいワークスペースに対して、次のオプションの構成手順を検討することをお勧めします。
IPアクセスリストの有効化
Web アプリケーション、 REST APIs 、 JDBC / ODBCエンドポイント、および DBConnect に接続できる IP アドレスを構成します。 許可リストとブロックリストを IP アドレスまたは範囲として指定できます。 「ワークスペースの IP アクセス リストを構成する」を参照してください。
監査ログシステムテーブルを有効にする
Databricks 、監査ログ システムテーブルを有効にして、 Databricks ユーザーが実行したアクティビティと発生した使用状況を監視することを強くお勧めします。 ワークスペースで Unity Catalog が有効になっている必要があります。 手順については、 システムテーブルを使用したアカウントアクティビティのモニタリング を参照してください。
ワークスペース作成エラーのトラブルシューティング
次のセクションでは、一般的なワークスペース作成エラーの解決策を説明します。
アドレスの最大数に達しました
Databricksがお客様に代わってVPCを作成する際には、少なくとも1つの未使用のElastic IPが必要です。それ以外の場合、VPCは作成されず、次のエラーが発生します。
The maximum number of addresses has been reached.
Elastic IPの数を増やして、う一度お試しください。
ネットワークを検証する
ワークスペースの作成またはステータス チェック ステップでネットワーク関連のエラーが示された場合は、ネットワーク構成の取得APIを呼び出して、ネットワーク設定が正しいことを確認します。 この API エンドポイントの形式は次のとおりです。
/accounts/<databricks-account-id>/networks/<databricks-network-id>
例:
curl -X GET
'https://accounts.cloud.databricks.com/api/2.0/accounts/<databricks-account-id>/networks/<databricks-network-id>' \
--header 'Authorization: Bearer $OAUTH_TOKEN'
応答で、warning_messages
error_messages
フィールドを表示します。両方の配列が空の場合、警告やエラーはありません。
そうでない場合は、警告とエラーのJSONオブジェクトを注意深く確認してください。
警告の場合、
warning_type
の列挙は、問題がサブネットかセキュリティグループのどちらかにあったことを示します。warning_message
には、追加の詳細が記載されています。(NATゲートウェイではなく)ファイアウォールまたはNATインスタンスがある場合、ネットワーク検証によって常に警告が発行されることに注意してください。エラーの場合、
error_type
の列挙は認証情報、VPC、サブネット、セキュリティグループ、ネットワークACLのいずれかに問題があったことを示します。error_message
には、追加の詳細が記載されています。
インフラの問題を修正する
ネットワーク構成API取得APIに対する応答のエラーに応じて、次の点を確認します。
セキュリティグループは、顧客管理VPC要件に準拠しています。
クロスアカウントIAMポリシーには、必要な権限が含まれています。デプロイメントタイプに使用するポリシーについては、「ワークスペースデプロイメント用のIAMロールを作成する」を参照してください。
失敗したワークスペースを更新する
失敗したワークスペースを更新するには、ワークスペースの更新と再デプロイ API ( PATCH /accounts/<account-id>/workspaces/<workspace-id>
) を呼び出します。
ワークスペースの更新API は、ワークスペースの作成時に失敗したワークスペース構成の更新をサポートし、資格情報、ストレージ、ネットワーク(顧客管理VPCの場合)、およびキー(ノートブックの暗号化の場合)の構成を変更します。
注:
同じAPIを使用して、実行中の(正常にデプロイされた)ワークスペースを更新できますが、変更できるのは資格情報とネットワーク設定のみです。
これらのワークスペース構成フィールドを渡して変更できます:credentials_id
、storage_configuration_id
、network_id
、managed_services_customer_managed_key_id
、およびstorage_customer_managed_key_id
workspace_status
値がPROVISIONING
を返す場合は、ワークスペース取得 APIを使用してRUNNING
の状態を確認し続けます。
例:
curl -X PATCH 'https://accounts.cloud.databricks.com/api/2.0/accounts/<databricks-account-id>/workspaces/<databricks-workspace-id>' \
--header 'Authorization: Bearer $OAUTH_TOKEN' \
-d '{
"aws_region": "us-west-2",
"credentials_id": "<aws-credentials-id>",
"storage_configuration_id": "<databricks-storage-config-id>",
"network_id": "<databricks-network-id>",
"managed_services_customer_managed_key_id": "<aws-kms-managed-services-key-id>",
"storage_customer_managed_key_id": "<aws-kms-notebook-workspace-storage-id>"
}'
応答:
{
"workspace_id": 123456789,
"workspace_name": "my-company-example",
"aws_region": "us-west-2",
"creation_time": 1579768294842,
"deployment_name": "my-company-example",
"workspace_status": "PROVISIONING",
"account_id": "<databricks-account-id>",
"credentials_id": "<aws-credentials-id>",
"storage_configuration_id": "<databricks-storage-config-id>",
"workspace_status_message": "Workspace resources are being set up.",
"network_id": "<databricks-network-id>",
"managed_services_customer_managed_key_id": "<aws-kms-managed-services-key-id>",
"storage_customer_managed_key_id": "<aws-kms-notebook-workspace-storage-id>",
"pricing_tier": "ENTERPRISE"
}
ワークスペースの更新に失敗した場合に、ネットワークとワークスペースを再作成する
ワークスペースの更新APIが機能しない場合は、以下の順序でネットワーク(独自のVPCを提供した場合)と失敗したワークスペースを削除して再作成する必要があります。
ワークスペース削除 API (
DELETE /accounts/<account-id>/workspaces/<workspace-id>
) を使用してワークスペースを削除します。例:
curl -X DELETE 'https://accounts.cloud.databricks.com/api/2.0/accounts/<databricks-account-id>/workspaces/<databricks-workspace-id>' \ --header 'Authorization: Bearer $OAUTH_TOKEN'
独自の VPC を指定した場合は、ネットワーク構成削除 API (
DELETE /accounts/<account-id>/networks/<network-id>
) を使用して Databricks ネットワーク構成を削除します。例:
curl -X DELETE 'https://accounts.cloud.databricks.com/api/2.0/accounts/<databricks-account-id>/networks/<databricks-network-id>' --header 'Authorization: Bearer $OAUTH_TOKEN'
vpc_id
、subnet_ids
、およびsecurity_group_ids
の正しい値を使用してネットワークを再作成します。credentials_id
、storage_configuration_id
、network_id
、managed_services_customer_managed_key_id
、およびstorage_customer_managed_key_id
の正しい値を使用してワークスペースを再作成します。workspace_status
値PROVISIONING
を取得した場合は、ワークスペース取得 APIを使用してRUNNING
状態を確認し続けます。