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-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 に配置できます。 ただし、暗号化にVPC us-west-1顧客管理キー を使用する場合は、 で を使用することはできません。

アカウントAPIの使い方

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

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

注:

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

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

  1. Databricks CLI バージョン 0.205 以上をインストールします。 「Databricks CLI のインストールまたは更新」を参照してください。

  2. ステップを完了して OAuth アカウント内のサービスプリンシパルのM2M認証を設定します。 「 Databricksを使用してサービスプリンシパルで へのアクセスを認証するOAuth (OAuth M2M)」 を参照してください。

  3. .databrickscfg ファイルでDatabricks構成プロファイルを識別するか手動で作成し、サービスプリンシパルに関連する hostaccount_idclient_id、および client_secret のマッピングに対してプロファイルのフィールドが正しく設定されていることを確認します。 OAuth マシン間 (M2M) 認証を参照してください。

  4. 対象の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を実行します。

  1. Databricks CLI バージョン 0.205 以上をインストールします。 「Databricks CLI のインストールまたは更新」を参照してください。

  2. アカウント内のユーザーの OAuth U2M 認証を構成するためのステップを完了します。 「OAuth (OAuth U2M) を使用してユーザーアカウントで Databricks へのアクセスを認証する」を参照してください。

  3. 以下の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>に置き換えることができます。

  4. 画面の指示に従って、Databricks CLIが関連するDatabricks構成プロファイルを.databrickscfg ファイルに自動的に作成します。

  5. 画面の指示に従って、WebブラウザからDatabricksアカウントにサインインします。

  6. 対象の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ロールにアクセスする必要があります。

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

    注:

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

  2. 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フィールドが含まれます。この値は後の手順でワークスペースを作成するために使用するので、コピーして保存してください。

    例:

     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バケットを作成します。

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

  2. ルート 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
    }
    

ステップ5:カスタマーマネージドキーを構成する(オプション)

重要

  • この機能を使用するには、アカウントがEnterprise価格プランである必要があります。

  • ワークスペース コンピュート プレーン VPC は、 AWSリージョン 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 に配置できます。 ただし、暗号化にVPC us-west-1顧客管理キー を使用する場合は、 で を使用することはできません。

顧客管理暗号化キーには 2 つの使用例があります。

  • コントロール プレーン内のデータベースと秘密データを含む マネージド サービスを暗号化します。

  • ワークスペースのルート S3 バケットとオプションでクラスター EBS ボリュームを含むワークスペース ストレージを暗号化します。

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

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

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

注:

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

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

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

  2. 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_volumestrueで、キーの権限を取り消すと、実行中のクラスターには影響しませんが、新規クラスターと再起動されたクラスターには影響することに注意してください。

    リクエストの例:

    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"
      }
    }
    
  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が含まれます。後で使用するために、この値をコピーします。

例:

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を構成する場合にのみ必要です。

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

  1. フロントエンドのPrivateLink 接続を実装する場合は、 「手順 5: ユーザー要求を Web アプリケーション (フロントエンド) にリダイレクトするように内部 DNS を構成する」の説明に従って、関連する DNS 構成の変更を実装します。

  2. オプションで、 「ステップ 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に対する応答のエラーに応じて、次の点を確認します。

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

失敗したワークスペースを更新するには、ワークスペースの更新と再デプロイ 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を返す場合は、ワークスペース取得 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を提供した場合)と失敗したワークスペースを削除して再作成する必要があります。

  1. ワークスペース削除 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'
    
  2. 独自の 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'
    
  3. vpc_idsubnet_ids、および security_group_idsの正しい値を使用してネットワークを再作成します。

  4. credentials_idstorage_configuration_idnetwork_idmanaged_services_customer_managed_key_id 、およびstorage_customer_managed_key_idの正しい値を使用してワークスペースを再作成します

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