メインコンテンツまでスキップ

アカウント APIを使用してワークスペースを作成する

注記

これらの手順は、2023 年 11 月 8 日より前に作成されたアカウントに適用されます。 Databricks アカウントが 2023 年 11 月 8 日より後に作成された場合は、「 ワークスペース API の作成」を参照してください。

この記事では、アカウント APIを使用してワークスペースを作成する方法について説明します。 AWS クイックスタートテンプレートアカウントコンソール、または Terraform を使用してワークスペースを作成することもできます。

マネージドサービスやAWS PrivateLinkに 顧客管理のキー を使用する場合は、アカウントAPI を使用してワークスペースを作成する必要があります。

始める前に

  • アカウント ID にアクセスできることを確認します。

  • ワークスペースが以下の機能を有効にするかどうかを判断します。

    • 顧客管理: 任意のタイプの接続でAWS PrivateLink VPC を使用する場合は、 独自のAmazon Virtual Public Cloud () を提供します。VPC

    • 暗号化用の顧客管理キー :

      • コントロールプレーンのマネージドサービスの顧客管理キー: KMS管理コントロールプレーンのノートブックとシークレットデータを暗号化するためのDatabricks キーを提供します。
      • KMSワークスペースストレージの顧客管理キー: ワークスペースのS3 バケット (ワークスペースのDBFS ルート、ジョブ結果など) を暗号化し、必要に応じてノード EBS ボリュームをクラスターするための キーを提供します。
    • AWS PrivateLink : AWS PrivateLink は、トラフィックをパブリックネットワークに公開することなく、AWS VPC およびオンプレミスネットワークから AWS サービスへのプライベート接続を提供します。

  • ワークスペースの コンピュート平面 (VPC) に使用するリージョンを決定します。 コントロールプレーン領域は、コンピュートプレーン領域によって決定されます。

    ワークスペース コンピュート プレーン VPC は、ap-northeast-1ap-northeast-2ap-south-1ap-southeast-1ap-southeast-2ca-central-1eu-west-1eu-west-2eu-central-1us-east-1us-east-2us-west-1us-west-2 の AWS リージョンに配置できます。 ただし、VPC us-west-1暗号化に顧客管理のキー を使用する場合は、 で を使用することはできません。

アカウントAPIの使い方

アカウント APIに対して認証するには、サービスプリンシパルの Databricks OAuth または ユーザーの Databricks OAuth を使用できます。 Databricks は、ユーザーまたはサービスプリンシパルの Databricks OAuth を使用することを強くお勧めします。 サービスプリンシパルは、自動化ツール、ジョブ、およびアプリケーションで使用するために Databricks で作成する ID です。 「を使用してDatabricks リソースへの無人アクセスをサービスプリンシパルで承認 する」を参照してください。OAuth

次の例を使用して、Databricks アカウントに認証します。 サービスプリンシパルには OAuth を、ユーザーには OAuth を使用できます。 背景については、以下を参照してください。

注記

Databricks のユーザー名とパスワードを使用した基本認証は、2024 年 7 月 10 日にサポートが終了しました。 「Databricks で管理されるパスワードのサポート終了」を参照してください。

認証の例については、以下から選択してください。

  1. Install Databricks CLI version 0.205 or above. See Install or update the Databricks CLI.

  2. Complete the steps to configure OAuth M2M authentication for service principals in the account. See Authorize unattended access to Databricks resources with a service principal using OAuth.

  3. Identify or manually create a Databricks configuration profile in your .databrickscfg file, with the profile’s fields set correctly for the related host, account_id, and client_id and client_secret mapping to the service principal. See OAuth machine-to-machine (M2M) authentication.

  4. Run your target Databricks CLI command, where <profile-name> represents the name of the configuration profile in your .databrickscfg file:

    Bash
    databricks account <command-name> <subcommand-name> -p <profile-name>

    For example, to list all users in the account:

    Bash
    databricks account users list -p MY-AWS-ACCOUNT
    • For a list of available account commands, run the command databricks account -h.
    • For a list of available subcommands for an account command, run the command databricks account <command-name> -h.

ステップ 1: クロスアカウント認証を設定する

Databricksは、新しいワークスペースの適切なVPCにクラスターをデプロイできるように、AWSアカウントのクロスアカウントサービスのIAMロールにアクセスする必要があります。

  1. そのようなロールがまだ存在しない場合は、「 ワークスペース デプロイの IAMロールを作成する 」を参照して、デプロイの種類に適したロールとポリシーを作成してください。 新しいロール ( role_arn) の ARN は、この手順の後半で指定します。
注記

複数のワークスペースでクロスアカウントIAMロールを共有できます。ワークスペースごとに新しいクロスアカウントIAMロールを作成する必要はありません。すでにクロスアカウントIAMロールがある場合は、この手順をスキップできます。

  1. AWS ロールの Databricks 資格情報構成 ID を作成します。 資格情報の作成 構成 API (POST /accounts/<databricks-account-id>/credentials) を呼び出します。このリクエストは、クロスアカウント信頼を確立し、新しいワークスペースを作成するときに使用する参照 ID を返します。
注記

複数のワークスペースで資格情報構成IDを共有できます。ワークスペースごとに新しいワークスペースを作成する必要はありません。すでにお持ちの場合は、この手順をスキップできます。

<databricks-account-id> を Databricks アカウント ID に置き換えます。認証については、アカウントAPIの使い方をご覧ください。要求本文では、次のようにします。

  • credentials_nameをこれらの認証情報の名前に設定します。名前はアカウント内で一意である必要があります。

  • aws_credentialssts_roleプロパティを含むオブジェクトに設定します。このオブジェクトには、作成したロールのAWSロールARNを指定するrole_arnプロパティを含める必要があります。

応答本文には、新しいワークスペースを作成するために必要なDatabricks認証情報構成IDであるcredentials_idフィールドが含まれます。この値は後の手順でワークスペースを作成するために使用するので、コピーして保存してください。

例えば:

Bash
 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"
}
}
}'

応答例:

JSON
{
"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ストレージS3バケットには、クラスターログ、ノートブックの修正箇所、ジョブの結果などのオブジェクトが保存されます。また、rootストレージのS3バケットを使用して、テストに必要なデータのような非本番データを保存することもできます。

注記

root S3バケットは、1つのアカウントで複数のワークスペースと共有できます。ワークスペースごとに新しいバケットを作成する必要はありません。アカウント内の複数のワークスペースでroot S3バケットを共有する場合、root S3バケット上のデータはワークスペースごとに個別のディレクトリに分割されます。すでにバケットと、アカウントAPIによって生成された関連するストレージ構成IDがある場合は、この手順をスキップできます。ただし、レガシーワークスペースのバケットを再利用しないでください。たとえば、E2に移行する場合は、E2環境用に新しいAWSバケットを作成します。

  1. 「ワークスペースのデプロイ用の S3 バケットを作成する」の手順に従って、ルート S3 バケットを作成します。

  2. ルート S3 バケットを表すストレージ設定レコードを作成します。 ルート S3 バケットを名前で指定するには、 ストレージ設定 API (POST /accounts/<account-id>/storage-configurations) を呼び出します。

    リクエストは、S3バケットを表すストレージ構成IDを返します。

    以下を指定します。

    • storage_configuration_name:新しい一意のストレージ構成名。
    • root_bucket_info:S3バケット名を含むbucket_nameフィールドを含むJSONオブジェクト。

    応答本文には、バケットのストレージ構成IDであるstorage_configuration_idプロパティが含まれています。後で使用するためにその値をコピーします。

    例えば:

    Bash
    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"
    }
    }'

    応答:

    JSON
    {
    "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
    }

このステップは、 AWS PrivateLink を使用する場合にのみ必要です。

AWS PrivateLinkは、トラフィックをパブリックネットワークに公開することなく、AWS VPCおよびオンプレミスネットワークからAWSサービスへのプライベート接続を提供します。

Databricks ワークスペースでは、次の 2 種類の接続に対して PrivateLink 接続の追加がサポートされています。

  • ユーザーからワークスペースへ(フロントエンド)
  • コンピュートプレーンからコントロールプレーン(バックエンド)

新しいワークスペースのプライベートリンク接続の場合:

  1. AWS PrivateLinkの記事をよく読み、前提条件を確認してから先に進んでください。

    1. AWS VPC エンドポイントは、AWS コンソールまたは自動化ツールを使用して作成します。 「 ステップ 2: VPC エンドポイントを作成する」を参照してください
    2. AWS PrivateLink を使用してプライベート接続を有効にする」 を参照して、VPC エンドポイント登録、ネットワーク設定、およびプライベートアクセス設定オブジェクトを作成します。
  2. この記事の次の手順に進みます。何らかのタイプのPrivateLink接続(フロントエンドのみを含む)を実装する場合は、顧客管理VPCを使用する必要があります。

デフォルトでは、Databricks はワークスペースごとに AWS アカウントに VPC を作成します。 Databricks ワークスペースの稼働中のクラスターに使用します。 オプションで、VPC顧客管理VPC 機能を使用して、ワークスペースに独自の を使用できます。Databricks では、Databricks の要件に準拠しながら、組織のエンタープライズ クラウド標準に従って構成できるように、独自の VPC を用意することをお勧めします。 既存のワークスペースを独自の VPC に移行することはできません。

important

任意の種類の接続 (フロントエンドのみを含む) で AWS PrivateLink を使用してプライベート接続を有効にするを使用するようにワークスペースを構成するには、ワークスペースで顧客管理VPCを使用する必要があります。

  1. 「顧客管理VPC VPCの構成 」の手順に従って、 、サブネット、およびセキュリティ グループを設定します。次のステップでは、これらの各オブジェクトの ID をコピーして、 Databricks に登録し、新しいネットワークを表すネットワーク ID を取得します。
important

VPC とサブネットを複数のワークスペースで共有する予定の場合は、VPC とサブネットのサイズを、使用量に応じてスケーリングするのに十分な大きさにしてください。 ネットワーク設定オブジェクトをワークスペース間で再利用することはできません。

  1. ネットワーク構成を 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 です。
important

本リリースでは、ワークスペースのVPCエンドポイントサービスにフロントエンド接続またはバックエンドREST API接続用のVPCエンドポイントを登録すると、DatabricksはそのVPCエンドポイントからAWSリージョン内のDatabricksアカウント内のすべてのPrivateLink対応ワークスペースへのフロントエンド(WebアプリケーションおよびREST API)アクセスを有効にします。

  • dataplane_relay:JSON Databricksこれを、エンドポイント登録 安全なクラスター接続の IDのみを含むVPC 配列に設定します。これは、AWS VPC エンドポイント ID ではなく、Databricks VPC エンドポイント登録 ID です。

これらのオブジェクトの詳細については、「 AWS PrivateLink を使用してプライベート接続を有効にする」を参照してください。 これらの ID は、「 AWS PrivateLink を使用してプライベート接続を有効にする」で説明されているように、VPC エンドポイントの登録時に返されました。

例えば:

Bash
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>"
]
}
}'
  1. 後で使用するために、応答本文からnetwork_idをコピーします。これは、新しいワークスペースのネットワークを表すネットワークIDです。

    応答例:

    JSON
    {
    "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: 顧客管理キーを構成する (オプション)

important
  • この機能を使用するには、アカウントがEnterprise価格プランである必要があります。
  • ワークスペース コンピュート プレーン VPC は、ap-northeast-1ap-northeast-2ap-south-1ap-southeast-1ap-southeast-2ca-central-1eu-west-1eu-west-2eu-central-1us-east-1us-east-2us-west-1us-west-2 の AWS リージョンに配置できます。 ただし、VPC us-west-1暗号化に顧客管理のキー を使用する場合は、 で を使用することはできません。

顧客管理の暗号化キーには、次の 2 つのユースケースがあります。

  • Encrypt マネージドサービス: コントロールプレーンにノートブックとシークレットデータが含まれます。
  • ワークスペースのルート S3 バケットと、必要に応じて EBS ボリュームのクラスターを含むワークスペースストレージを暗号化します。

これらのどちらも設定しないことも、一方を設定することも、両方を設定することもできます。両方のユースケースで暗号化を実装することを選択した場合、オプションでキーを共有したり、オプションでこれらのユースケースで同じ設定オブジェクトを共有したりすることもできます。

どちらのユースケースでも、ワークスペースの作成時に構成するか、実行中のワークスペースにキーを追加できます。 マネージドサービスの顧客管理キーは、後でキーをローテーション(更新)できます。 ストレージ用の顧客管理キーの場合、後でキーをローテーション することはできません

顧客管理キーまたはそのキー設定オブジェクトは、ワークスペース間で共有できます。新しいワークスペースを作成するとき、キー設定はuse_casesフィールドに両方の列挙値を含めるように設定することで、両方の暗号化使用例を表すことができます。

注記

ノートブックの暗号化を既に使用している既存のワークスペースにワークスペース ストレージ キーを追加するには、ワークスペース ストレージ用の新しいキー構成オブジェクトを作成する必要があります。 「暗号化のための顧客管理キーの構成」を参照してください。

1つの暗号化使用例または両方の暗号化使用例を同じキーで実装するには、次の手順を1回だけ実行します。異なるキーで両方の暗号化使用例に暗号化を追加するには、各ユースケースについて1回ずつ、この手順を2回実行します。

  1. AWS KMS キーを作成します。 次のいずれかのセクションの指示に従って、ポリシーの人間が判読できる説明フィールド(sid)のみが異なります。これらの指示は、ユースケースを識別します。 「 ステップ 1: AWS KMS でキーを作成または選択する」を参照してください。 両方のユースケースのキーと設定を共有するには、それに応じて sid フィールドを更新します。

  2. KMSキーを Databricksで登録するには、Create Customer-managed key configuration API (POST /accounts/<account-id>/customer-managed-keys) を呼び出します。

    次のパラメーターを渡します。

    • use_cases — キーを使用する使用例を指定する配列。次のいずれかまたは両方を指定します。

      • MANAGED_SERVICES: このキーは、コントロールプレーン内のマネージドサービスを暗号化し、これにはノートブックとコントロールプレーン内のシークレットデータが含まれます。
      • STORAGE: このキーは、ワークスペースの DBFSルート EBS ボリュームとクラスター 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がで、キーのアクセス許可を取り消すと、稼働中のクラスターには影響しませんが、新しく起動したクラスターと再起動されたクラスターには影響します。

    リクエストの例:

    Bash
    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
    }
    }'

    応答例:

    JSON
    {
    "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"
    }
    }
  3. 応答JSON から、customer_managed_key_idをコピーします。次のステップでそのIDを使用して、このオブジェクトが表す暗号化使用例に応じて、ワークスペース構成オブジェクトのプロパティmanaged_services_customer_managed_key_idstorage_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_nameacmeのみになり、ワークスペースのURLは acme.cloud.databricks.comになります。アカウントにデプロイメント名プレフィックスがまだない場合、特別なデプロイメント名の値EMPTYは無効です。

JSON応答には、プロパティworkspace_idが含まれます。後で使用するために、この値をコピーします。

例えば:

Bash
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"
}
}'

応答例:

JSON
{
"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:キャンセル処理中。

失敗したステータス値を処理する方法については、 ワークスペース作成エラーのトラブルシューティング を参照してください。

例えば:

Bash
curl -X GET
'https://accounts.cloud.databricks.com/api/2.0/accounts/<databricks-account-id>/workspaces/<databricks-workspace-id>' \
--header 'Authorization: Bearer $OAUTH_TOKEN'

応答:

JSON
{
"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 で Web アプリケーションにログインできることを確認します https://<deployment-name>.cloud.databricks.com。 たとえば、ワークスペースの作成時に指定したデプロイメント名が ABCSalesの場合、ワークスペースの URL は https://abcsales.cloud.databricks.comになります。 アカウントのユーザー名を使用してログインします。

  • 新しいワークスペースでのREST APIログイン — REST APIにアクセスできることを確認します。次の例では、ワークスペースユーザーAPIを呼び出してユーザーのリストを取得します。

    Bash
    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を参照してください。

このステップは、 AWS PrivateLink を設定する場合にのみ必要です。

ワークスペースの作成後:

  1. フロントエンド の PrivateLink 接続を実装する場合は、「ステップ 5: ユーザー要求を Web アプリケーション (フロントエンド) にリダイレクトするように内部 DNS を構成する」の説明に従って、関連する DNS 構成の変更を実装します。
  2. オプションで、「 ステップ 7: 他の AWS サービスの VPC エンドポイントを追加する」の説明に従って、他の VPC エンドポイントを作成します。

ステップ 9: その他のオプションのデプロイ後構成

新しいワークスペースに対して、次のオプションの構成手順を検討することをお勧めします。

IP アクセス リストの有効化

Web アプリケーション、 REST APIs、 JDBC/ODBC エンドポイント、および DBConnect に接続できる IP アドレスを構成します。 許可リストとブロックリストは、IP アドレスまたは範囲として指定できます。 ワークスペースの IP アクセス リストの構成を参照してください。

Enable audit log システムテーブル

Databricks 、監査ログ システムテーブルを有効にして、 Databricks ユーザーが実行したアクティビティと発生した使用状況を監視することを強くお勧めします。 ワークスペースで Unity Catalog が有効になっている必要があります。 手順については、 システムテーブルを使用したアカウントアクティビティのモニタリング を参照してください。

ワークスペースの作成エラーのトラブルシューティング

次のセクションでは、一般的なワークスペース作成エラーの解決策を説明します。

アドレスの最大数に達しました

Databricksがお客様に代わってVPCを作成する際には、少なくとも1つの未使用のElastic IPが必要です。それ以外の場合、VPCは作成されず、次のエラーが発生します。

Console
The maximum number of addresses has been reached.

Elastic IPの数を増やして、う一度お試しください。

一般的なトラブルシューティング手順

すべてのワークスペース作成エラーについては、次のトラブルシューティング手順を記載された順序で試してください。

ネットワークの検証

ワークスペースの作成手順または状態チェックの手順でネットワーク関連のエラーが示されている場合は、 ネットワーク構成の取得 API を呼び出して、ネットワーク設定が正しいことを確認します。 この API エンドポイントの形式は次のとおりです。

/accounts/<databricks-account-id>/networks/<databricks-network-id>

例えば:

Bash
  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 の取得リクエストに対するレスポンスのエラーに応じて、次のことを確認します。

失敗したワークスペースを更新する

障害が発生したワークスペースを更新するには、 更新ワークスペースと再デプロイ API を呼び出します (PATCH /accounts/<account-id>/workspaces/<workspace-id>)。

ワークスペースの更新API は、ワークスペースの作成時に失敗したワークスペース構成の更新をサポートし、資格情報、ストレージ、ネットワーク(顧客管理VPCの場合)、およびキー(ノートブックの暗号化の場合)の構成を変更します。

注記

同じAPIを使用して、実行中の(正常にデプロイされた)ワークスペースを更新できますが、変更できるのは資格情報とネットワーク設定のみです。

これらのワークスペース構成フィールドを渡して変更できます:credentials_idstorage_configuration_idnetwork_idmanaged_services_customer_managed_key_id、およびstorage_customer_managed_key_id

workspace_status値がPROVISIONINGを返す場合は、 get ワークスペース APIを使用してRUNNING状態を引き続き確認します。

例えば:

Bash
  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>"
}'

応答:

JSON
{
"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を提供した場合)と失敗したワークスペースを削除して再作成する必要があります。

  1. ワークスペースの削除 API (DELETE /accounts/<account-id>/workspaces/<workspace-id>) を使用してワークスペースを削除します。

    例えば:

    Bash
    curl -X DELETE
    'https://accounts.cloud.databricks.com/api/2.0/accounts/<databricks-account-id>/workspaces/<databricks-workspace-id>' \
    --header 'Authorization: Bearer $OAUTH_TOKEN'
  2. 独自の VPC を提供した場合は、 ネットワーク構成の削除 API (DELETE /accounts/<account-id>/networks/<network-id>) を使用して Databricks ネットワーク構成を削除します。

    例えば:

    Bash
    curl -X DELETE
    'https://accounts.cloud.databricks.com/api/2.0/accounts/<databricks-account-id>/networks/<databricks-network-id>'
    --header 'Authorization: Bearer $OAUTH_TOKEN'
  3. vpc_idsubnet_idssecurity_group_idsの正しい値を使用してネットワークを再作成します。

  4. credentials_idstorage_configuration_idnetwork_idmanaged_services_customer_managed_key_idstorage_customer_managed_key_idの正しい値を使用してワークスペースを再作成します

    workspace_statusPROVISIONINGを取得した場合は、ワークスペースの取得 API を使用してRUNNING状態を確認します。