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

ワークスペース ネットワーク構成の更新

既存のワークスペースを更新または再構成する Private サービス Connect

このページでは、既存の Databricks ワークスペースのネットワーク構成を更新して、プライベート サービス コネクトを使用したり、既存のワークスペースのフロントエンドまたはバックエンドのプライベート サービス コネクト設定を変更したり、サブネットの IP 範囲の拡張など、基盤となるネットワーク構成を変更したりするための手順を順を追って説明します。

ネットワーク構成を更新する理由

ワークスペース ネットワーク構成を更新すると、次の強化されたセキュリティおよび接続機能が提供されます。

  • セキュリティの強化 : Private サービス Connect を使用して、 VPC と Databricks サービスの間にプライベート接続を確立します。
  • 柔軟なネットワーク : サブネットの IP 範囲とネットワーク構成を変更して、組織の要件を満たします。
  • サービス統合 : プライベート エンドポイントを使用して、ワークスペースを他の Google Cloud サービスに接続します。
  • カスタム接続 : 特定のユースケースに合わせてフロントエンドとバックエンドのプライベートサービス接続設定を構成します。

始める前に

  • 中断を防ぎ、安全な更新を確保するには、すべての稼働中のクラスターとジョブを終了します。 更新の完了後に再起動できます。
  • ワークスペースで使用される VPC をホストする GCP プロジェクトに対する必要な権限が必要です。これらの権限には、ネットワーク構成の変更を可能にするcompute.firewalls.getcompute.networks.getcompute.projects.getcompute.subnetworks.getresourcemanager.projects.getが含まれます。これらの権限については、 「 ワークスペース作成に必要な権限 」を参照してください。

既存のワークスペースのサブネットを変更する

ワークスペースで使用される IP 範囲を変更するには、必要な範囲で新しいサブネットを作成し、新しいネットワーク構成オブジェクトを作成して、この新しいネットワーク構成を使用するようにワークスペースを更新する必要があります。

ステップ 1: クラウド リソースを作成する

Google Cloud プロジェクトと Databricks アカウントに必要なクラウド リソースを作成します。

  1. 新しいサブネットを作成する : Google Cloud プロジェクトで使用する新しい CIDR 範囲を使用して、VPC にサブネットを作成します。
  2. ネットワーク構成オブジェクトを作成する : Databricks アカウントのサブネットに対してネットワーク構成オブジェクトを作成します。「ステップ 1: サブネットを作成する」を参照してください。

ステップ 2: ファイアウォールを構成する

新しいサブネットに新しい入力ファイアウォール ルールを作成します。新しいCIDR範囲を使用するようにワークスペースを更新する前に、このステップを完了する必要があります。

Google クラウド コンソールで、次の値を持つファイアウォール ルールを作成します。

フィールド

Value

ルール名

db-<subnet-name>-ingress

方向

イングレス

ターゲット

ネットワークタグ databricks-<workspace-id>

優先順位

1000

ソースフィルター

IPv4範囲: 新しいサブネットのプライマリCIDR範囲

プロトコルとポート

すべて許可

<subnet-name>新しいサブネットの名前に置き換え、 <workspace-id>ワークスペース ID に置き換えます。

ファイアウォール構成の詳細については、 「ファイアウォールを使用してワークスペースのネットワーク送信を制限する」を参照してください。

ステップ 3: ワークスペース サービス アカウントにDatabricks Network role v2 を付与します。

ワークスペースを更新する前に、新しいサブネット上の Databricks ネットワーク ロール v2 をワークスペース サービス アカウントに付与する必要があります。このステップをスキップすると、権限の問題によりすべての VM の起動が失敗します。

ワークスペース サービス アカウントを見つけるには、古いサブネットの IAM 権限を確認します。サービス アカウントの形式はdb-<workspace-id>@prod-gcp-<geo-region>.iam.gserviceaccount.comです。

  1. 現在のサブネットから既存の IAM ポリシーを取得します。

    Bash
    gcloud compute networks subnets get-iam-policy <current-subnet> \
    --region=<region> \
    --project=<project>

    このコマンドは次のようなポリシー JSON を返します。

    JSON
    {
    "bindings": [
    {
    "role": "projects/<project>/roles/<databricks-network-role-v2>",
    "members": ["serviceAccount:db-<workspace-id>@prod-gcp-<geo-region>.iam.gserviceaccount.com"]
    }
    ]
    }
  2. ポリシー バインディング仕様をテンプレートとして使用します。新しいサブネットを対象に、同じロールとメンバーを持つ新しい JSON ファイル (たとえば、 policy.json ) を作成します。

  3. 新しいサブネットにポリシーを適用します。

    Bash
    gcloud compute networks subnets set-iam-policy <new-subnet> policy.json \
    --region=<region>

ステップ 4: APIを使用してワークスペースを更新する

Databricks アカウント REST API を使用してワークスペースを更新します。

  1. 認証 : アカウントAPIに対して認証を行います。 「Databricks リソースへのアクセスを承認する」を参照してください。Google クラウドでは、 Google ID による認証も利用できます。

  2. REST API を実行します

    • エンドポイント : PATCH /api/2.0/accounts/{account_id}/workspaces/{workspace_id}

    • Path パラメーター :

      • account_id (必須、uuid)
      • workspace_id (必須、int64)
    • クエリ パラメーター :

      • update_mask (必須、文字列)
  3. リクエストの例 :

    ステップ 1 で作成した新しいネットワーク構成オブジェクトのnetwork_id使用します。

    HTTP
    PATCH /api/2.0/accounts/{account_id}/workspaces/{workspace_id}?update_mask=network_id
    Content-Type: application/json

    {
    "network_id": "fd0cc5bc-683c-47e9-b15e-144d7744a496"
    }
  4. 応答の例 :

    JSON
    {
    "workspace_id": 3389895405782117,
    "workspace_name": "example-ws",
    "creation_time": 1722542958272,
    "deployment_name": "3389895405782117.7",
    "workspace_status": "PROVISIONING",
    "account_id": "2e0b6f3b-e1dc-43ea-93f5-7d55b9d7b780",
    "workspace_status_message": "Workspace resources are being set up.",
    "network_id": "fd0cc5bc-683c-47e9-b15e-144d7744a496",
    "pricing_tier": "ENTERPRISE",
    "location": "us-east4",
    "cloud": "gcp",
    "identity_federation_info": {
    "enable_identity_federation": true
    },
    "gke_config": {
    "connectivity_type": "PRIVATE_NODE_PUBLIC_MASTER",
    "master_ip_range": "10.103.0.0/28"
    },
    "cloud_resource_container": {
    "gcp": {
    "project_id": "databricks-dev-entd-shared"
    }
    }
    }

ステップ 5: クラスタリングとジョブを再起動する

ワークスペースの更新が完了したら、クラスターとジョブを再起動する前に、変更が伝播するまで少なくとも 10 分間待機します。

プライベート サービス コネクト以外のワークスペースを移行するか、既存のワークスペースのプライベート サービス接続構成を変更する

プライベート・サービス・コネクト以外のワークスペースをマイグレーションする場合、または既存のワークスペースのプライベート・サービス・コネクト構成を変更する場合は、以下のステップを実行します。

ステップ 1: クラウド リソースを作成または更新する

必要なクラウドリソースを作成または更新します。

  1. VPC エンドポイント: 「ステップ 2: VPC エンドポイントを作成する」を参照してください。
  2. プライベートアクセス設定: プライベート アクセス設定の作成を参照してください。
  3. ネットワーク構成:ステップ 6: ネットワーク構成を作成する」を参照してください。

これらのリソースの ID は、ステップ 2 で必要になります。

手順 2: API を使用してワークスペースを更新する

変更を適用するには、アカウント API に PATCH リクエストを送信します。

  • 認証: アカウントAPIに対して認証します。 「Databricks リソースへのアクセスを承認する」を参照してください。Google クラウドでは、 Google ID による認証も利用できます。

  • エンドポイント: PATCH /api/2.0/accounts/{account_id}/workspaces/{workspace_id}

  • クエリ パラメーター: 更新するフィールドを指定するには、 update_mask クエリ パラメーターを含める必要があります。

    • 例: update_mask=network_id,private_access_settings_id,workspace_name,custom_tags
  • リクエスト本文: 更新するフィールドを JSON 本文に含めます。サポートされているフィールドにはnetwork_idprivate_access_settings_idworkspace_namecustom_tagsなどがあります。

次のリクエストの例では、ワークスペースのネットワーク構成、プライベート アクセス設定、名前、カスタム タグを更新します。

HTTP
PATCH /api/2.0/accounts/{account_id}/workspaces/{workspace_id}?update_mask=network_id,private_access_settings_id,workspace_name,custom_tags
Content-Type: application/json

{
"network_id": "6f855d93-8c45-4a4c-a0c9-56e35e16d715",
"private_access_settings_id": "be123b84-c964-4285-8b03-b7fe961588dc",
"workspace_name": "updated-ws-name",
"custom_tags": {
"test_key": "test_value"
}
}

ワークスペースは更新を非同期的に実行するため、応答にはPROVISIONINGステータスが表示されます。すべての更新が完了すると、ワークスペースはRUNNINGに戻ります。

JSON
{
"workspace_id": 3389895405782117,
"workspace_name": "example-ws",
"creation_time": 1722542958272,
"deployment_name": "3389895405782117.7",
"workspace_status": "PROVISIONING",
"account_id": "2e0b6f3b-e1dc-43ea-93f5-7d55b9d7b780",
"workspace_status_message": "Workspace resources are being set up.",
"network_id": "fd0cc5bc-683c-47e9-b15e-144d7744a496",
"pricing_tier": "ENTERPRISE",
"private_access_settings_id": "3b3bbcb5-46bd-4b03-944e-97eb44ed7991",
"location": "us-east4",
"cloud": "gcp",
"identity_federation_info": {
"enable_identity_federation": true
},
"gke_config": {
"connectivity_type": "PRIVATE_NODE_PUBLIC_MASTER",
"master_ip_range": "10.103.0.0/28"
},
"cloud_resource_container": {
"gcp": {
"project_id": "databricks-dev-entd-shared"
}
}
}

ステップ 3: DNS を構成する (オプション)

アップデート後にワークスペースが Private Service Connect ワークスペースの場合、このステップは必須です。 ユーザーが新しいワークスペース URL にアクセスできるようにするには、DNS を構成する必要があります。「ステップ 9: DNS を構成する」を参照してください。

手順 4: ファイアウォールを構成する (オプション)

このステップは、異なるCIDR範囲を使用するネットワーク設定オブジェクトでワークスペースを更新した場合に必要です。

ファイアウォールのイングレスルールを更新して、新しいサブネットCIDR範囲からのトラフィックを許可します。Databricks イングレス ルール ソースが新しい CIDR 範囲を反映するように更新されていることを確認します。詳細については、「 ファイアウォールを使用してワークスペースのネットワーク エグレスを制限する」を参照してください。

ステップ 5: クラスタリングとジョブを再起動する

ワークスペースの更新が完了し、必要な DNS またはファイアウォールの変更が設定されたら、クラスタリングとジョブを再起動できます。