パフォーマンス集約型サービス向けにインバウンド Private Service Connect を構成する
このページでは、Databricks プラットフォーム上のパフォーマンス重視のサービスへのインバウンド接続用に Private Service Connect を構成する方法を説明します。このプライベート接続により、外部クライアントやユーザーは、Zerobus Ingest や Lakebase Autoscaling などの Databricks プラットフォーム上のサービスにアクセスできるようになります。
Databricksは、ワークスペースAPIおよびUIへの接続に対するPrivate サービス Connectを既にサポートしています。このページでは、パフォーマンス重視のサービスを対象とするPrivate Service Connect Endpointについて説明します。ワークスペースの接続については、「ワークスペースのインバウンドプライベート サービス接続を構成する」を参照してください。
利点
- セキュリティの強化:お客様のネットワークと Databricks サービス間のトラフィックは、Google Cloud ネットワークインフラストラクチャ内に留まります。
- パフォーマンス重視のサービスへのアクセス:Zerobus IngestやLakebaseオートスケールなどのサービスへのプライベート接続です。
- コンプライアンス要件: プライベートネットワーク接続を義務付ける規制要件を満たします。
- コスト効率: Private Service Connect は、NAT ゲートウェイなどのパブリック接続オプションよりも低コストです。
要件
- Databricks アカウントは Enterprise レベルである必要があります。
- VPCエンドポイントを登録し、イングレスポリシーを管理するには、Databricksアカウント管理者である必要があります。
- Private Service Connect Endpointを作成するには、Google Cloudでの権限が必要です。
リージョンサービスアタッチメントのリファレンス
パフォーマンス負荷の高いサービスのプライベート サービス接続Endpointを作成するには、リージョンのサービス添付ファイル URI が必要です。URI はサフィックスregional-plproxy-psc-endpoint-all-portsで終わります。これは、ワークスペース APIs および UI へのインバウンド Private Service Connect によって使用される 一般アクセス サービス添付ファイル (plproxy-psc-endpoint-all-ports) とは区別されます。
お使いのリージョンのサービスアタッチメントURIを確認するには、「Private Service Connect (PSC) 添付ファイルURIとプロジェクト番号」を参照してください。
Private Service Connect Endpointを構成する
Google CloudでPrivate サービス Connect Endpointを作成する
クライアントが接続するGoogle CloudプロジェクトおよびVPC内にEndpointを作成します:
- Google Cloud コンソールで、Private Service Connect ページに移動します。
- Connected Endpoint tabをクリックします。
- [ + Endpoint の接続 ] をクリックします。
- ターゲット には、 公開済みサービス を選択します。
- [Target service] フィールドに、リージョンのサービスアタッチメント URI を貼り付けます。リージョンサービスアタッチメントのリファレンスを参照してください。
- Endpointの名前を入力します。Databricksでは、リージョンと目的を含めた名前(例:
us-central1-performance-intensive-psc)にすることをお勧めしています。 - Endpoint をホストする VPC ネットワークとサブネットを選択します。
- Endpoint 用の IP アドレスを予約します。
- 作成 をクリックします。
- Endpointを登録する際に必要な以下の値を記録してください:
- Google Cloud プロジェクト ID
- Private Service Connect Endpoint 名
- Endpoint 用に予約したプライベート IP アドレス
After you create the endpoint, its connection state is Pending. This is expected. The connection is accepted when you register the endpoint with Databricks in the next step.
パフォーマンス重視のサービスはTCP経由で接続します。Zerobus Ingestはポート443を使用し、Lakebase オートスケールはポート5432(Postgresワイヤ)および443(Data APIおよびその他のHTTPSベースのクライアント)を使用します。ファイアウォールルールで、クライアントからEndpoint IPアドレスへのこれらのポートにおけるアウトバウンドTCPトラフィックが許可されていることを確認してください。
DatabricksにEndpointを登録する
Databricksアカウントコンソールを使用してPrivate Service Connect Endpointを登録してください:
- Databricksアカウントコンソールに移動します。
- サイドバーの セキュリティ をクリックします。
- [ プライベートEndpoint ] をクリックします。
- [プライベートエンドポイントを登録] をクリックします。
- 必須フィールドに入力します:
- [VPC Endpoint名] : 登録用の人間が判読できる名前。Databricksでは、リージョンと目的を含む名前を推奨しています。
- リージョン :Private Service Connect Endpointが存在するGoogle Cloudリージョン。リージョンはワークスペースのリージョンと一致している必要があります。
- Google Cloud VPCネットワークプロジェクトID : Endpointを作成したGoogle Cloudプロジェクト。
- Google Cloud Private Service Connect(PSC)Endpoint ID :Google CloudコンソールでのEndpoint名。
VPC Endpoint構成APIを使用してEndpointを登録することもできます。次のフィールドを指定して POST リクエストを /api/2.0/accounts/{accountId}/vpc-endpoints に送信します。
endpoint_region:Private Service Connect Endpointが存在する Google Cloud リージョン。project_id:エンドポイントを作成したGoogle Cloudプロジェクト。psc_endpoint_name:Google Cloud コンソールにおける Endpoint 名。vpc_endpoint_name:登録用の人間にとってわかりやすい名前。
{
"gcp_vpc_endpoint_info": {
"endpoint_region": "us-central1",
"project_id": "my-prod-project",
"psc_endpoint_name": "performance-intensive-psc"
},
"vpc_endpoint_name": "psc-vpce"
}
応答には、 SERVICE_DIRECTに設定された use_case、vpc_endpoint_id、および gcp_vpc_endpoint_infoの psc_connection_idおよび service_attachment_idの値が含まれます。
プライベートアクセスポリシーを構成する
プライベート サービス接続Endpointを登録した後、ワークスペースのプライベートアクセス ポリシーを構成する方法は、コンテキストベースのイングレスを使用する方法と、プライベートアクセス設定を使用する方法の2つがあります。コンテキストベースのイングレスアプローチを使用すると、ID、リクエストタイプ、ネットワークソースの条件を組み合わせて、きめ細かなアクセスを構成できます。コンテキストベースのイングレス制御を参照してください。プライベートアクセス設定は、すべてか無か、またはリージョンにバインドされるポリシーです。
トラフィックを許可するには、プライベートアクセス設定とコンテキストベースのイングレスの両方でEndpointを許可する必要があります。defaultでは、コンテキストベースのイングレスは [すべてのプライベートEndpointからのアクセスを許可] に設定されており、アクセスの決定はワークスペースのプライベートアクセス設定に延期されます。コンテキストベースのプライベートアクセス ポリシーを使用するには、 [パブリックアクセスが有効] を [True] に、 [プライベートアクセスレベル] を [アカウント] に設定して、プライベートアクセス設定オブジェクトをワークスペースにアタッチします。これにより、アクセスの決定がワークスペースのコンテキストベースのイングレスポリシーに延期されます。同じリージョン内の任意のワークスペースで、同じ「すべてのアクセスを許可」プライベートアクセス設定オブジェクトを再利用できます。
To configure private access to workspaces using context-based ingress (Method 1), an account admin must turn on Context-Based Ingress: Workspace Private Access Policies from the account console Previews page. See Manage account-level previews.
- Method 1: Context-based ingress
- Method 2: Private access settings
-
アカウントコンソールで、サイドバーの**セキュリティ**をクリックします。
-
サイドバーで「 コンテキストベースのイングレスおよびエグレス制御 」をクリックします。
-
ワークスペースレベルポリシー の下にある 新しいワークスペースポリシー をクリックします。
-
Ingress > Private Network Access で、プライベート アクセス ポリシーを定義します。
- defaultでは、登録されているすべてのエンドポイントが許可されています: すべてのプライベートエンドポイントからのアクセスを許可 。これでよろしければ、次のステップに進んでください。この default には、登録されている最初の 200 個の VPC Endpoint のみが含まれます。ポリシーでそれ以上のものが必要な場合は、アカウントチームに連絡して増量を依頼してください。
- 特定の登録済みEndpointを許可リストに登録し、他のすべてのEndpointを拒否するには、 すべてのプライベートEndpointからのアクセスを許可 のチェックを外し、許可ルールを追加します。
- アクセスを許可するIDとワークスペースの送信先を選択します。defaultではすべて許可されています。
- 「 ソースタイプ 」に「 選択したプライベートEndpoint 」を選択し、登録したPrivate Service Connect Endpointを選択します。Endpointのリージョンは、ワークスペースのリージョンと一致している必要があります。
- 確認 をクリックします。
- オプションで、 拒否ルール をポリシーに追加して、許可ルールの例外を定義できます。
-
イングレス > パブリックネットワークアクセス でパブリックアクセス ポリシーを設定します。すべてのパブリック IP アクセスを無効にするには、 「すべてのパブリック IP からのアクセスを許可」 のチェックを外します。Databricksでは、DNS構成をテストしている間はパブリックアクセスを有効にしておき、DNSが確定した後に無効にして排他的なプライベート接続を強制することをお勧めします。
-
ドライランモード でイングレスポリシーをテストしてから、 適用済み に切り替えます。ドライランモードのアクセス拒否は
system.access.inbound_networkシステムテーブルにログされますが、アクセスはブロックされません。 -
エグレス ポリシーが正しいことを確認してください。
-
ポリシーをワークスペースにアタッチしてください。
-
ネットワーク ポリシーを保存します。コンテキストベースのイングレス ポリシーの更新は、通常10分以内に有効になります。ワークスペースごとに1つのネットワークポリシーを使用するか、同じイングレスルールとエグレスルールを使用するワークスペース間で単一のポリシーを共有できるため、1回定義すればどこにでもアタッチできます。
-
「すべてアクセスを許可する」プライベートアクセス設定オブジェクトをワークスペースにアタッチします。プライベートアクセス設定オブジェクトがアタッチされていないワークスペースでは、ネットワークポリシーに関係なく、すべてのプライベートアクセスが拒否されます。メソッド2のステップに従います。その際、 パブリックアクセスを有効にする を True に設定し、 プライベートアクセスレベル を アカウント に設定します。 パブリックアクセスを有効にする を True に設定したまま、コンテキストベースのイングレスポリシーを使用してアクセスを制限します。
-
アカウント管理者として、アカウントコンソールにログインします。
-
サイドバーで、 [セキュリティ] > [プライベートアクセス設定] をクリックします。
-
[プライベートアクセス設定の追加] をクリックします。
-
新しいプライベートアクセス設定オブジェクトの名前を入力します。
-
ワークスペースのリージョンに一致するリージョンを選択します。
-
パブリック アクセス有効 フィールドを設定します。
- False (default) : ワークスペースには Private Service Connect を介してのみアクセス可能であり、パブリック インターネット アクセスはブロックされます。
- True :ワークスペースには、Private Service Connectとパブリックインターネットの両方からアクセスできます。
Databricks は、DNS 設定のテスト中は True から始めることを推奨し、その後、メンテナンス期間中に False に変更して、排他的なプライベート接続を強制することを推奨します。
-
プライベートアクセスレベル を選択してください:
- アカウント : Databricksアカウントに登録されているVPCエンドポイントへの接続を制限します。
- Endpoint : VPCエンドポイントの明示的なセットに接続を制限します。パフォーマンス集約型サービスに登録したEndpointを含めます。
-
[プライベートアクセス設定の追加] をクリックします。
-
アカウントコンソールで、[ ワークスペース ] をクリックし、ワークスペースをクリックします。
-
詳細設定 をクリックします。
-
プライベート接続 フィールドで、作成したプライベートアクセス設定オブジェクトを選択します。
-
保存 をクリックします。
プライベートアクセス設定APIを使用してプライベートアクセス設定オブジェクトを作成し、ワークスペースAPIを使用してprivate_access_settings_idを設定することで、そのオブジェクトをワークスペースにアタッチすることもできます。
Private Service Connect経由でトラフィックをルーティングするようにDNSを構成する
defaultでは、パフォーマンス集約型サービスはパブリック DNS 名 <product-instance>.<product>.<region>.gcp.databricks.com を使用して解決されます。例えば、Zerobus Ingest は <workspace-id>.zerobus.<region>.gcp.databricks.com を使用します。
Databricks では、製品レベルで DNS をオーバーライドし、その製品のすべてのトラフィックが Private Service Connect Endpoint に向かうようにすることを推奨しています:
<product>.<region>.gcp.databricks.com用のプライベートホストゾーンを作成し、Private Service Connect Endpoint をホストする VPC にアタッチします。Google Cloud プライベートゾーンは、アタッチされたネットワークに対してのみ解決されるため、クライアントが使用するには、そのゾーンを該当する VPC にアタッチする必要があります。- そのゾーンで、Private Service Connect EndpointのプライベートIPアドレスを指すワイルドカード
Aレコードを追加します。
A wildcard record sends every hostname for that product and region to one endpoint IP address. If you use more than one Private Service Connect endpoint for the same product and region, add a record for each specific hostname instead of a wildcard, so that each product instance resolves to its intended endpoint.
プライベート接続を確認する
Private Service Connect EndpointをホストするVPC内のクライアントから接続を確認します。次の例では、Zerobus Ingestホストを使用します。
まず、製品ホストがPrivate Service Connect EndpointのプライベートIPアドレスに解決されることを確認します:
nslookup <workspace-id>.zerobus.<region>.gcp.databricks.com
ルックアップでは、「Google Cloud での Private Service Connect Endpoint の作成」で予約したプライベート IP アドレスが返される必要があります。代わりにパブリックアドレスが返される場合は、DNS 構成を再確認してください。
次に、接続をテストします:
nc -vz <workspace-id>.zerobus.<region>.gcp.databricks.com 443
接続が成功すれば、パフォーマンス重視のサービス向けの Private Service Connect Endpoint は正しく構成されています。IPアドレスではなくホスト名をテストすることで、DNS解決と接続の両方がプライベートパス経由で機能していることが確認できます。製品固有の接続テストについては、そのサービスのドキュメントを参照してください。
制限事項
次の制限事項に注意してください。
- サポートされているサービス:Google Cloudにおいて、パフォーマンス重視のサービス向けのインバウンドPrivate Service Connectは、Zerobus IngestおよびLakebaseのオートスケールをサポートしています。
- リージョン別の可用性:これらのサービスは、一部の Google Cloud リージョンで利用可能です。Endpointを構成する前に、使用するサービスがリージョンでサポートされていることを確認してください。「インジェストの可用性」を参照してください。
- プロジェクトおよびリージョンごとのEndpoint:各Databricksアカウントでは、顧客のGoogle CloudプロジェクトIDに対して、各リージョンの高負荷サービス用Private Service Connect Endpointが10個までに制限されています。クォータの増加が必要な場合は、Databricksアカウントチームにお問い合わせください。
トラブルシューティング
接続に関する問題が発生した場合、またはフィードバックを共有する場合は、Databricksアカウントチームにお問い合わせください。
その他のリソース
-
- ワークスペースのインバウンドプライベート サービス接続を構成する
- インバウンド接続用に Private Service Connect を構成する方法を学習します。
-
- ワークスペースのPrivate Service Connectを有効にする
- Google Private Service Connectを有効にすることで、プライベート接続でワークスペースを保護し、データ持ち出しのリスクを軽減する方法について学びます。
-
- Zerobus Ingest を使用する
- Lakeflow Connect で Zerobus Ingest を使用する方法について学習します。
-
- Private Service Connect(PSC)の添付ファイル URI とプロジェクト番号
- 各リージョンで使用できる IP とドメインについて学習します。