AWS PrivateLinkを有効にする
この記事では、AWS PrivateLink を使用して、ユーザーとその Databricks ワークスペース間、およびクラシック コンピュート プレーン上のクラスターと Databricks ワークスペース インフラストラクチャ内のコントロール プレーン上のコア サービス間のプライベート接続を有効にする方法について説明します。
概要
AWS PrivateLink は、トラフィックをパブリック ネットワークに公開することなく、AWS VPC およびオンプレミス ネットワークから AWS のサービスへのプライベート接続を提供します。 Databricks ワークスペースは、次の 2 つの接続タイプの PrivateLink 接続をサポートします。
フロントエンド(ユーザーからワークスペースへ):フロントエンドPrivateLink接続を使用すると、ユーザーはVPCインターフェースエンドポイントを介して、Databricks Webアプリケーション、REST API、およびDatabricks Connect APIに接続できます。
バックエンド (コンピュート プレーンからコントロール プレーン): 顧客管理 VPC ( コンピュート プレーン) 内の Databricks Runtime クラスターは、Databricks クラウド アカウント内の Databricks ワークスペースのコア サービス ( コントロール プレーン) に接続します。 クラスターは、REST APIs (シークレット API など) と セキュアなクラスター接続 リレーの 2 つの宛先のコントロールプレーンに接続します。 この PrivateLink 接続タイプには、2 つの異なる宛先サービスがあるため、2 つの異なる VPC インターフェイス エンドポイントが含まれます。
フロントエンドとバックエンドの両方のPrivateLink接続を実装することも、そのうちの一方だけを実装することもできます。この記事では、一方または両方のPrivateLink接続タイプを設定する方法について説明します。フロントエンド接続とバックエンド接続の両方にPrivateLinkを実装する場合は、必要に応じてワークスペースのプライベート接続を必須にすることができます。これにより、Databricksはパブリックネットワーク経由の接続を拒否することになります。これらの接続タイプのいずれかの実装を拒否する場合、この要件を適用することはできません。
PrivateLink接続を有効にするには、Databricks設定オブジェクトを作成し、既存の設定オブジェクトに新しいフィールドを追加する必要があります。
この記事では、設定オブジェクトを作成し、ワークスペースを作成(または更新)するために、アカウントコンソールまたはアカウントAPI を使用する方法について説明します。
次の表では、重要な用語について説明します。
用語 |
説明 |
---|---|
AWS PrivateLink |
トラフィックをパブリックネットワークに公開することなく、AWS VPCおよびオンプレミスネットワークからAWSサービスへのプライベート接続を提供するAWSの技術。 |
フロントエンドPrivateLink |
ユーザーがDatabricks Webアプリケーション、REST API、およびDatabricks Connect APIに接続するためのPrivateLink接続。 |
バックエンドPrivateLink |
Databricks コントロールプレーンに接続するための AWS アカウントのコンピュートプレーンの PrivateLink 接続)。 |
AWS VPCエンドポイントサービス |
AWS VPCエンドポイントサービスは、PrivateLinkを利用したサービスです。各Databricksコントロールプレーン(通常はリージョンごとに1つ)は、PrivateLink用に2つのAWS VPCエンドポイントサービスを公開しています。1つはワークスペースVPCエンドポイントサービスで、DatabricksフロントエンドPrivateLink接続とDatabricksバックエンドPrivateLink接続(REST API用)の両方に適用されます。もう1つのVPCエンドポイントサービスは、セキュアなクラスター接続リレー用のものです。 |
AWS VPCエンドポイント |
AWS VPCインターフェイスエンドポイントでは、お客様のVPCとAWS PrivateLinkを利用したVPCエンドポイントサービスの間のプライベート接続を実現できます。AWS VPCインターフェイスエンドポイントを作成し、それらをDatabricksに登録する必要があります。VPCエンドポイントを登録すると、VPCエンドポイント登録と呼ばれるDatabricks固有のオブジェクトが作成されます。これはAWS VPCエンドポイントを参照するオブジェクトです。 |
Databricksネットワーク設定 |
顧客管理 VPC の構成に関する重要な情報を記述する Databricks オブジェクト。PrivateLink 接続 (フロントエンドまたはバックエンド) を実装する場合、ワークスペースで顧客管理 VPC を使用する必要があります。 PrivateLink バックエンドのサポートの場合のみ、ネットワーク設定には、バックエンド接続の VPC エンドポイントを識別する追加のプロパティが必要です。 |
Databricksプライベートアクセス設定オブジェクト |
ワークスペースのPrivateLink接続を記述するDatabricksオブジェクト。フロントエンド、バックエンド、またはその両方を使用しているかどうかにかかわらず、ワークスペースの作成時にプライベートアクセス設定オブジェクトをワークスペースにアタッチする必要があります。これは、ワークスペースでAWS PrivateLinkを使用する意図を表すものです。パブリックネットワークアクセス用にフロントエンドでAWS PrivateLinkを使用するための設定を制御したり、どのVPCエンドポイントにワークスペースへのアクセスを許可するかを制御したりします。 |
Databricksワークスペース設定オブジェクト |
ワークスペースを記述するDatabricksオブジェクト。PrivateLinkを有効にするには、このオブジェクトがDatabricksプライベートアクセス設定オブジェクトを参照している必要があります。バックエンドPrivateLinkの場合、ワークスペースには、使用するVPCエンドポイント登録を指定する2つの追加フィールド(コントロールプレーンのセキュアなクラスター接続リレー用のフィールドと、REST APIにアクセスするためのワークスペースへの接続用のフィールド)を持つDatabricksネットワーク設定オブジェクトも必要です。 |
既存のPrivateLink設定オブジェクトを更新する
この記事では、新しいワークスペースの作成と、ワークスペースでのPrivateLinkの有効化の主要な2つのユースケースに焦点を当てます。UIまたはAPIを使用して、関連オブジェクトにその他の設定変更を加えることもできます。
新規または既存のワークスペースで、フロントエンド、バックエンド、またはその両方の種類の接続に対して PrivateLink のサポートを有効にすることができます。 プライベートアクセス設定オブジェクト(UI または API)を追加します。 これを行うには、新しい VPC や別の PrivateLink サポート設定など、新しい設定で新しいネットワーク設定を作成し、新しいネットワーク設定を使用するようにワークスペースを更新します。 ワークスペースの既存のフロントエンドまたはバックエンドの PrivateLink サポートを削除 (ダウングレード) することはできません。
登録済みの VPC エンドポイントを使用して新しいネットワーク設定オブジェクトを作成して、ワークスペースの登録済み VPC エンドポイントを追加または更新し、ワークスペースのネットワーク設定 (UI または API) を更新します。
失敗したワークスペースまたは実行中のワークスペースで変更できるワークスペース フィールドの種類の詳細については、 UI または API を使用したこのタスクに関する情報を参照してください。
すべての関連オブジェクトを更新できるわけではないことに注意してください。更新できない場合は、新しいオブジェクトを作成し、親オブジェクトが新しいオブジェクトを参照するように設定します。次のルールは、アカウントコンソールUIとアカウントAPIの両方に適用されます。
オブジェクト |
作成可能 |
更新可能 |
---|---|---|
ワークスペース設定 |
あり |
あり |
プライベートアクセス設定 |
あり |
あり |
ネットワーク設定 |
あり |
なし |
VPCエンドポイント登録 |
あり |
なし |
既存のVPCのCIDR範囲を更新するには、「CIDRを更新する」を参照してください。
要件
Databricksアカウント
DatabricksアカウントがEnterprise価格プランである必要があります。
DatabricksアカウントIDが必要です。アカウントIDはアカウントコンソールから取得できます。
Databricksワークスペース
Databricks ワークスペースでは、 [ 顧客管理 VPC の構成 ] を使用して、任意の PrivateLink 接続 (フロントエンドのみの接続も含む) を追加する必要があります。 既存のワークスペースを Databricks マネージド VPC で更新し、顧客管理 VPC を使用するように変更することはできません。
バックエンド PrivateLink 接続を実装する場合、Databricks ワークスペースは安全なクラスター接続を使用する必要があります。 安全なクラスター接続を使用しない古い既存のワークスペースにバックエンド PrivateLink を追加するには、Databricks アカウント チームにお問い合わせください。
注:
us-west-1
リージョンは PrivateLink をサポートしていません。
統合ログインが有効になっているワークスペースで PrivateLink を使用するには、Databricks アカウント チームにお問い合わせください。
AWSアカウント権限
PrivateLinkをセットアップするユーザーには、Databricksワークスペースをプロビジョニングし、ワークスペース用の新しいVPCエンドポイントをプロビジョニングするために必要なすべてのAWS権限が必要です。
ネットワークアーキテクチャ
オンプレミスネットワークからワークスペースにアクセスするためのフロントエンドPrivateLink接続を実装するには、Direct ConnectまたはVPNを使用して、オンプレミスネットワークからAWS VPCへのプライベート接続を追加します。
他のネットワークオブジェクトの詳細については、「ステップ1: AWSネットワークオブジェクトを設定する」を参照してください。
ステップ1: AWSネットワークオブジェクトを設定する
AWSマネジメントコンソールを使用してこれらのオブジェクトを作成したり、ネットワーク用のTerraformプロバイダーなどのツールでプロセスを自動化したりできます。
VPC、サブネット、およびセキュリティグループを設定するには:
まだの場合は、ワークスペースのVPCを設定します。別のワークスペースのVPCを再利用できますが、ワークスペースごとに個別のサブネットを作成する必要があります。すべてのワークスペースには、少なくとも2つのプライベートサブネットが必要です。
VPC を作成するには、「 顧客管理 VPC の設定」を参照してください。 新しいワークスペースを作成するのではなく、PrivateLink のワークスペースを更新する場合は、ワークスペースですでに顧客管理 VPC を使用している必要があることに注意してください。
VPCで、DNSホスト名とDNS解決の両方の設定が有効になっていることを確認します。
サブネットのネットワークACLに、次のポートで0.0.0.0/0へのTCPアクセスを許可する双方向(アウトバウンドおよびインバウンド)ルールがあることを確認します。
443: Databricksインフラストラクチャ、クラウドデータソース、ライブラリリポジトリ用。
3306: メタストア用。
6666: PrivateLink用。
2443: コンプライアンスセキュリティプロファイルを使用している場合のみ。
8443 から 8451: 将来の拡張可能性。 2024 年 1 月 31 日までにこれらのポートが開いていることを確認します。
重要
ワークスペースがコンプライアンスセキュリティプロファイルを使用している場合は、セキュアなクラスター接続リレー用のFIPSエンドポイントをサポートするために、ポート2443に対する双方向(アウトバウンドおよびインバウンド)アクセスを許可する必要もあります。
バックエンドPrivateLinkの場合:
追加のVPCサブネットを作成して設定します(任意)。
VPCエンドポイント(バックエンドPrivateLink VPCエンドポイントや他のAWSサービスに対するオプションのVPCエンドポイントなど)については、ネットワークがVPCエンドポイントにルーティングできる限り、どのワークスペースサブネットにも作成できます。
ワークスペースサブネットにアタッチされたルートテーブルとは異なるルートテーブルをVPCエンドポイントサブネットにアタッチします。VPCエンドポイントサブネットのルートテーブルには、ローカルVPCのデフォルトルートが1つだけ必要です。
追加のセキュリティグループを作成して設定します(推奨ですが任意)。
ワークスペースに通常必要なセキュリティグループに加えて、ワークスペースサブネットと個別のVPCエンドポイントサブネット(作成した場合)の両方に対するHTTPS/443およびTCP/6666の双方向(アウトバウンドおよびインバウンド)アクセスを許可する別のセキュリティグループを作成します。この設定により、REST API(ポート443)とセキュアなクラスター接続(6666)の両方についてアクセスすることをワークスペースに許可します。これにより、両方の目的のためのセキュリティグループを簡単に共有できます。
重要
ワークスペースがコンプライアンスセキュリティプロファイルを使用している場合は、セキュアなクラスター接続リレー用のFIPSエンドポイントをサポートするために、ポート2443に対する双方向(アウトバウンドおよびインバウンド)アクセスを許可する必要もあります。
フロントエンドPrivateLinkの場合:
トランジットVPCとそのサブネットについて、ユーザー環境から到達可能であることを確認します。AWS Direct ConnectまたはVPNゲートウェイ接続を終端するトランジットVPCを作成するか、トランジットVPCからルーティング可能なものを作成します。
フロントエンドとバックエンドの両方のPrivateLinkを有効にしていて、VPCエンドポイントがワークスペースサブネットからネットワークにアクセスできる場合は、必要に応じてフロントエンドワークスペース(Webアプリケーション)VPCエンドポイントをバックエンドワークスペース(REST API)VPCエンドポイントと共有できます。
フロントエンドエンドポイント用の新しいセキュリティグループを作成します。このセキュリティグループでは、送信元ネットワークとエンドポイントサブネット自体の両方に対してHTTPS(ポート443)の双方向(アウトバウンドおよびインバウンド)アクセスを許可する必要があります。
ステップ2: VPCエンドポイントを作成する
バックエンドVPCエンドポイント
バックエンド PrivateLink の場合は、2 つの VPC エンドポイントを作成します。 1 つは 、セキュア・クラスター接続 リレー用です。 1 つはワークスペース用で、Databricks REST APIsへのコンピュート プレーン呼び出しを許可します。 AWS マネジメントコンソール を使用した VPC エンドポイント管理に関する一般的なドキュメントについては、AWS の記事「 AWS マネジメントコンソール で VPC エンドポイントを作成する」を参照してください。 VPC エンドポイントを作成するときは、[追加設定] の [ VPC エンドポイントを作成するための AWS マネジメントコンソール] ページで [ DNS 名を有効にする] というフィールドを設定することが重要です。 用語の注意点として、これは、VPC エンドポイントを表示または編集するときに、AWS が一部の場所で [Enable Private DNS] または [Enable Private DNS ] ( このエンドポイントでプライベート DNS を有効にする ) と呼ぶのと同じフィールドです。
VPCエンドポイントの作成と管理を自動化するのに役立つツールについては、AWSの記事「CloudFormation: VPCエンドポイントの作成」および「AWS CLI: create-vpc-endpoint」を参照してください。
バックエンドVPCエンドポイントは、同じカスタマーマネージドVPCを使用する複数のワークスペース間で共有できます。バックエンドVPCエンドポイントを複数のワークスペースで共有するかどうかは、組織のAWSアーキテクチャのベストプラクティスと、すべてのワークロードにわたる全体的なスループットの要件によって異なります。
これらをワークスペース間で共有する場合は、すべてのワークスペースのサブネットからルーティング可能な別のサブネットにバックエンド VPC エンドポイントを作成する必要があります。 ガイダンスについては、Databricks アカウント チームにお問い合わせください。
ワークスペースが同じカスタマーマネージドVPCを共有している限り、複数のDatabricksアカウントのワークスペース間でVPCエンドポイントを共有することもできますが、その場合は各DatabricksアカウントにVPCエンドポイントを登録する必要があります。
次の手順では、AWSマネジメントコンソールを使用します。VPCエンドポイント用のTerraformプロバイダーを使用して、この手順を自動化することもできます。
AWSマネジメントコンソールでバックエンドVPCエンドポイントを作成するには:
AWSマネジメントコンソールの [VPCエンドポイント] セクションに移動します。
アカウント名ピッカーの右上にあるリージョンピッカーを使用して、ワークスペースに使用するリージョンと一致するリージョンを使用していることを確認します。必要に応じて、リージョンピッカーを使用してリージョンを変更します。
VPCエンドポイントを作成します。
[エンドポイントの作成] をクリックします。
エンドポイントにVPCエンドポイントのリージョンと目的を示す名前を付けます。ワークスペースVPCエンドポイントの場合、Databricksでは、「
databricks-us-west-2-workspace-vpce
」のように、リージョンと「workspace
」という単語を含めることをお勧めしています。[サービスカテゴリ] で、[その他のエンドポイントサービス] を選択します。
[サービス名] フィールドにサービス名を貼り付けます。「リージョンエンドポイントリファレンス」の表を使用して、リージョンの2つのリージョンサービス名を取得します。
最初に作成するVPCエンドポイントについて、ワークスペース(REST API)用のリージョンサービス名をコピーします。
[サービスの確認] をクリックします。「サービス名が確認されました」と表示される緑色のボックスでページレポートを確認します。「サービス名が確認できませんでした」というエラーが表示された場合は、VPC、サブネット、および新しいVPCエンドポイントのリージョンが正しく一致しているかどうかを確認してください。
[VPC] フィールドでVPCを選択します。ワークスペースVPCを選択します。
[サブネット] セクションで、Databricksワークスペースサブネットを正確に選択します。関連する説明については、「ステップ1: AWSネットワークオブジェクトを設定する」を参照してください。
[セキュリティグループ] セクションでは、「ステップ1: AWSネットワークオブジェクトを設定する」でバックエンド接続用に作成したセキュリティグループを選択します。
[追加設定] セクションをクリックして展開します。
エンドポイントで [DNS名を有効にする] フィールドが有効になっていることを確認します。AWSの一部の場所では、VPCエンドポイントの表示または編集に関して、この用語が [プライベートDNSを有効にする] または [このエンドポイントでプライベートDNSを有効にする] と記載されている場合がありますが、同じフィールドです。
[エンドポイントの作成] をクリックします。
上記の手順を繰り返し、「リージョンエンドポイントのリファレンス」の表を使用して、セキュアなクラスター接続リレーのリージョンサービス名を取得します。エンドポイントにVPCエンドポイントのリージョンと目的を示す名前を付けます。Databricksでは、「
databricks-us-west-2-scc-vpce
」のように、リージョンと「scc
」という単語を含めることをお勧めしています。
フロントエンドVPCエンドポイント
フロントエンドエンドポイントは、通常、ユーザーのウェブアプリケーションアクセスのソースであるトランジット VPC で発生し、通常はオンプレミスネットワークに接続されているトランジット VPC です。 これは通常、ワークスペースのコンピュートプレーン VPC とは別の VPC です。 Databricks VPC エンドポイント サービスは、フロントエンド接続とバックエンド REST API 接続で同じ共有サービスですが、一般的な実装では、接続は 2 つの個別の VPC から発生するため、各 VPC から発生する個別の AWS VPC エンドポイントが必要です。
複数のDatabricksアカウントがある場合は、Databricksアカウント間でフロントエンドVPCエンドポイントを共有できます。関連する各Databricksアカウントにエンドポイントを登録してください。
次の手順では、AWSマネジメントコンソールを使用します。VPCエンドポイント用のTerraformプロバイダーを使用して、この手順を自動化することもできます。
AWSマネジメントコンソールでフロントエンドVPCエンドポイントを作成するには:
AWSマネジメントコンソールの [VPCエンドポイント] セクションに移動します。
アカウント名ピッカーの右上にあるリージョンピッカーを使用して、トランジットVPCリージョンと一致するリージョンを使用していることを確認します。これはワークスペースリージョンとは異なる場合があります。必要に応じて、リージョンピッカーを使用してリージョンを変更します。
VPCエンドポイントを作成します。
[エンドポイントの作成] をクリックします。
エンドポイントにVPCエンドポイントのリージョンと目的を示す名前を付けます。ワークスペースVPCエンドポイントの場合、Databricksでは、「
databricks-us-west-2-workspace-vpce
」のように、リージョンと「workspace
」または「frontend
」という単語を含めることをお勧めしています。[サービスカテゴリ] で、[その他のエンドポイントサービス] を選択します。
[サービス名] フィールドにサービス名を貼り付けます。「リージョンエンドポイントのリファレンス」の表を使用して、リージョンサービス名を探します。[ワークスペース(REST APIを含む)] というラベルが付いたものをコピーします。
[サービスの確認] をクリックします。「サービス名が確認されました」と表示される緑色のボックスでページレポートを確認します。「サービス名が確認できませんでした」というエラーが表示された場合は、VPC、サブネット、および新しいVPCエンドポイントのリージョンが正しく一致しているかどうかを確認してください。
[VPC] メニューで、トランジットVPCをクリックします。
[サブネット] セクションで、サブネットを選択します。関連する説明については、「ステップ1: AWSネットワークオブジェクトを設定する」を参照してください。
[セキュリティグループ] セクションでは、「ステップ1: AWSネットワークオブジェクトを設定する」でフロントエンド接続用に作成したセキュリティグループを選択します。
[エンドポイントの作成] をクリックします。
リージョンエンドポイントのリファレンス
「PrivateLink VPCエンドポイントサービス」の表から、リージョンのVPCエンドポイントサービスドメインを取得します。
注:
アカウントコンソールを使用してネットワーク設定を作成する場合、UIでは、ワークスペースVPCエンドポイントがREST API用のVPCエンドポイントとして参照されます。
ステップ3: PrivateLinkオブジェクトを登録し、ワークスペースにアタッチする
このステップは次の方法で実行できます。
アカウントコンソールを使用する
アカウント コンソールを使用して、VPC エンドポイントを登録し、その他の必要なワークスペース リソースを作成して登録し、最後に PrivateLink を使用して新しいワークスペースを作成できます。
アカウントコンソールでは、いくつかのタイプのオブジェクトがPrivateLink設定に関連しています。
VPC エンドポイントの登録 (フロントエンド、バックエンド、またはその両方に必要): AWS Management Console で VPC エンドポイントを作成した後 ( 前のステップを参照)、それらを Databricks に登録して VPC エンドポイント登録を作成します。 VPC エンドポイントについては、アカウントコンソールのページを参照してください。
ネットワーク設定 (バックエンド VPC エンドポイントに必要): ネットワーク設定は、顧客管理 VPC に関する情報を表します。 また、2 つのバックエンド PrivateLink 構成フィールドも含まれています。 これら 2 つのフィールドをネットワーク設定オブジェクトに追加します。 これらは、AWS で作成した 2 つのバックエンド VPC エンドポイントを参照する必要があります。 ネットワーク設定については、アカウントコンソールのページを参照してください。既存のネットワーク構成があり、PrivateLink のフィールドを追加する場合は、新しいネットワーク構成を作成する必要があります。
プライベートアクセス設定 (フロントエンド、バックエンド、またはその両方に必要): ワークスペースのプライベートアクセス設定オブジェクトには、AWS PrivateLink 接続に関するいくつかの設定がカプセル化されます。 このワークスペース専用の新しいプライベートアクセス設定オブジェクトを作成するか、同じ AWS リージョン内の複数のワークスペース間で共有します。 このオブジェクトにはいくつかの目的があります。 これは、ワークスペースで AWS PrivateLink を使用する意図を表します。 パブリックネットワークアクセスのための AWS PrivateLink のフロントエンドユースケースの設定を制御します。 これにより、ワークスペースへのアクセスを許可する VPC エンドポイントが制御されます。
アカウントコンソールを使用してワークスペースのクラウドリソースを定義するには、2つの方法があります。
リソースを事前に作成する: アカウントコンソールのクラウドリソース領域でワークスペースを作成する前に、関連するクラウドリソースを作成できます。 これは、すべてのステップを同時に実行できない場合や、異なるチームがネットワークのセットアップを実行してワークスペースを作成する場合に便利です。
ワークスペース作成ページ内で、必要に応じて構成を追加します。 ワークスペースを作成 (または更新) するページには、さまざまなクラウド リソースのピッカーがあります。 ほとんどの場合、ポップアップ ビューでそのリソースをすぐに作成できるピッカー項目があります。 たとえば、ネットワーク構成ピッカーには [ 新しいネットワーク構成の追加] オプションがあります。
この記事では、事前にリソースを作成して参照する方法について説明します。 その方がうまくいく場合は、他のアプローチを使用できます。 VPC エンドポイント、ネットワーク設定、プライベートアクセス設定のエディタを参照してください。
ステップ 3a: VPC エンドポイントを登録する (フロントエンド、バックエンド、またはその両方)
「 VPC エンドポイント登録の管理」の手順に従います。
バックエンド PrivateLink の場合は、作成したバックエンド VPC エンドポイントを登録し、たとえば、セキュリティで保護されたクラスター接続のための
-scc
や、ワークスペース (REST API) VPC エンドポイント登録の-workspace
を追加するなど、目的に合わせて構成に名前を付けます。 バックエンド VPC エンドポイントの場合、リージョンフィールドは、ワークスペースのリージョンと、登録する AWS VPC エンドポイントのリージョンと一致する必要があります。 ただし、Databricks では、ワークスペースの作成時 (または PrivateLink を使用したワークスペースの更新時) にのみこれが検証されるため、この手順でリージョンを慎重に設定することが重要です。フロントエンド PrivateLink の場合は、トランジット VPC で作成したフロントエンド VPC エンドポイントを登録します。 フロントエンド PrivateLink の場合、リージョン フィールドは、トランジット VPC リージョンと、フロントエンド接続のワークスペースの AWS VPC エンドポイントのリージョンと一致する必要があります。
ステップ 3b: Create a network configuration (for back-end)
「 カスタム VPC デプロイ用のネットワーク構成を作成する」の手順に従います。 顧客管理 VPC とそれに関連するサブネットおよびセキュリティグループの詳細な要件については、「 顧客管理 VPC の設定」を参照してください。 PrivateLink の最も重要なフィールドは、 [ バックエンド プライベート接続] という見出しの下にあります。 前のステップで作成したバックエンド VPC エンドポイント登録を選択するフィールドが 2 つあります。1 つ目は、 セキュアなクラスター接続リレーの VPC エンドポイント登録を選択します。 もう一方は、ワークスペースの VPC エンドポイント登録 (REST APIs) を選択します。
ステップ 3c: PAS オブジェクトを作成する (フロントエンド、バックエンド、またはその両方)
プライベート アクセス設定 (PAS) オブジェクトの作成は、PrivateLink 構成の重要なステップです。 「 プライベート アクセス設定の管理」の手順に従います。
リージョンについては、すぐには検証されないため、ワークスペースのリージョンと一致していることを確認してくださいが、一致しない場合、ワークスペースのデプロイは失敗します。
[Public access enabled]フィールドを設定して、ワークスペースのフロントエンド接続(ウェブアプリケーションとREST API)へのパブリックアクセスを設定します。
False (デフォルト) に設定すると、フロントエンド接続には PrivateLink 接続を使用してのみアクセスでき、パブリック インターネットからはアクセスできません。この場合、パブリック ネットワークからのアクセスは許可されないため、 ワークスペースの IP アクセス リストの構成 機能はワークスペースでサポートされません。
True に設定すると、フロントエンド接続には PrivateLink 接続またはパブリック インターネットからアクセスできます。必要に応じて、ワークスペースの IP アクセス リストを構成して、パブリック インターネットから Web アプリケーションと REST APIs にアクセスできるソース ネットワークを制限できます (ただし、PrivateLink 接続は制限されません)。
[プライベートアクセスレベル]フィールドを、ワークスペースに許可するVPCエンドポイントを最もよく表す値に設定します。
[アカウント]に設定すると、Databricksアカウントに登録されているVPCエンドポイントに接続が制限されます。
[エンドポイント]に設定すると、VPCエンドポイントの明示的なセットへの接続が制限されます。表示されるフィールドに入力できます。作成済みのVPCエンドポイント登録を選択できます。フロントエンドVPCエンドポイント登録を作成した場合は、必ずそれを含めてください。
ステップ 3d: ワークスペースを作成または更新する (フロントエンド、バックエンド、またはその両方)
ワークスペースでは、顧客管理 VPC を既に使用し、セキュリティで保護されたクラスター接続を有効にする必要があります (これは、ほとんどの E2 ワークスペースの場合です)。
次の手順では、 アカウントコンソールのワークスペースページを使用してワークスペースを作成する方法について説明します。
「 ワークスペースを手動で作成する (既存の Databricks アカウント)」 の手順に従って、ワークスペースを作成します。 ワークスペースの URL、リージョン、Unity Catalog、資格情報の構成、ストレージ構成などのワークスペース フィールドに関するガイダンスについては、その記事を参照してください。 まだ「 保存 」ボタンはクリックしないでください。
[ 詳細設定 ] をクリックして、追加のフィールドを表示します。
バックエンド PrivateLink の場合は、ネットワーク構成を選択します。 [ Virtual Private クラウド] のメニューで、作成した Databricks ネットワーク構成を選択します。
PrivateLink を使用する場合は、プライベート アクセス設定オブジェクトを選択します。 [Private Link] 見出しの下を確認します。メニューをクリックし、作成したプライベートアクセス設定オブジェクトの名前を選択します。
「 保存」をクリックします。
ワークスペースを作成 (または更新) したら、クラスターを使用または作成できるようになるまで待ちます。 ワークスペースのステータスはステータス
RUNNING
のままで、VPC の変更はすぐに行われます。 ただし、さらに 20 分間はクラスターを使用または作成できません。 この時間間隔が経過する前にクラスターを作成または使用すると、クラスターが正常に起動しないか、失敗したり、その他の予期しない動作が発生したりする可能性があります。「ステップ 4: ユーザー要求を Web アプリケーションにリダイレクトするように内部 DNS を構成する (フロントエンド用)」に進みます。
アカウント API を使用する
ステップ 3a: VPC エンドポイント(フロントエンド、バックエンド、またはその両方)を登録する
アカウント API を使用して、バックエンド VPC エンドポイントの VPC エンドポイント ID を登録します。これにより、それぞれについて、Databricks VPC エンドポイント登録が作成されます。
バックエンド VPC エンドポイントの場合、同じリージョンに同じ顧客管理 VPC を共有する複数のワークスペースがある場合は、AWS VPC エンドポイントを共有することを選択できます。 また、これらの VPC エンドポイントを複数の Databricks アカウント間で共有することもでき、その場合は各 Databricks アカウントで AWS VPC エンドポイントを登録します。
フロントエンド VPC エンドポイントの場合、複数の Databricks アカウントがある場合は、Databricks アカウント間でフロントエンド VPC エンドポイントを共有できます。 登録する 関連する各 Databricks アカウントのエンドポイント。
Databricks に VPC エンドポイントを登録するには、/accounts/<account-id>/vpc-endpoints
REST API エンドポイントに POST
要求を行い、要求本文で次のフィールドを渡します。
vpc_endpoint_name
: Databricks 内の VPC エンドポイント登録のユーザーに表示される名前。region
: AWS リージョン名aws_vpc_endpoint_id
: AWS 内の VPC エンドポイントの ID。 接頭辞vpce-
で始まります。
例:
curl -X POST -n \
'https://accounts.cloud.databricks.com/api/2.0/accounts/<account-id>/vpc-endpoints' \
-d '{
"vpc_endpoint_name": "Databricks front-end endpoint",
"region": "us-west-2",
"aws_vpc_endpoint_id": "<vpce-id>"
}'
応答 JSON には vpc_endpoint_id
フィールドが含まれます。 バックエンドの PrivateLink 接続を追加する場合は、この値を保存します。 この ID は、Databricks 内のこの構成に固有です。 この ID は、後のステップ (ステップ 3b: Create a network configuration (back-end)) でネットワーク構成を作成するときに必要になります。
関連するアカウント API 操作 (役に立つ場合):
VPC エンドポイント登録の状態を確認する — レスポンス JSON の
state
フィールドは、AWS 内の状態を示します。
ステップ 3b: Create a network configuration (back-end)
注:
フロントエンド接続のみを実装する場合は、この手順をスキップします。 顧客管理 VPC が必要なため、ネットワーク設定を作成する必要がありますが、フロントエンドの PrivateLink 接続のみを実装する場合、このオブジェクトに対する PrivateLink の変更はありません。
PrivateLink をサポートするには、 Configure a customermanageVPC を使用する必要があります。 この機能では、VPC、サブネット、およびセキュリティグループの ID をカプセル化するネットワーク設定オブジェクトを作成する必要があります。
バックエンドの PrivateLink をサポートするには、ネットワーク構成に PrivateLink に固有の追加フィールドが必要です。 ネットワーク構成 vpc_endpoints
フィールドは、VPC エンドポイントの登録時に返された Databricks 固有の VPC エンドポイント ID を参照します。 ステップ 3a: VPC エンドポイント (フロントエンド、バックエンド、またはその両方) を登録するをご覧ください。
そのオブジェクトに次の両方の項目を追加します。
rest_api
: これを、1 つの要素 ( ステップ 3a: VPC エンドポイント (フロントエンド、バックエンド、またはその両方) を登録する) に登録したバックエンド REST API VPC エンドポイントの Databricks 固有の ID のみを含む JSON 配列に設定します。重要
「リージョン エンドポイント リファレンス」の表に基づいて リージョン エンドポイントを登録したときに作成された Databricks 固有の ID を使用するように注意してください。 このフィールドに間違った ID を設定するのは、一般的な設定エラーです。
dataplane_relay
: これを、 ステップ 3a: VPC エンドポイント (フロントエンド、バックエンド、またはその両方) を登録するで登録したバックエンド SCC VPC エンドポイントの Databricks 固有の ID という 1 つの要素のみを含む JSON 配列に設定します。重要
「リージョン エンドポイント リファレンス」の表に基づいて リージョン エンドポイントを登録したときに作成された Databricks 固有の ID を使用するように注意してください。 このフィールドに間違った ID を設定するのは、一般的な設定エラーです。
これらの Databricks 固有の VPC エンドポイント ID は、「 ステップ 3a: VPC エンドポイント (フロントエンド、バックエンド、またはその両方) を登録する」で行った要求の JSON 応答から、 vpc_endpoint_id
応答フィールド内で取得します。
次の例では、VPC エンドポイント ID を参照する新しいネットワーク設定を作成します。 <databricks-vpce-id-for-scc>
を、セキュリティで保護されたクラスター接続リレーの Databricks 固有の VPC エンドポイント ID に置き換えます。<databricks-vpce-id-for-rest-apis>
を REST APIsの Databricks 固有の VPC エンドポイント ID に置き換えます。
curl -X POST -n \
'https://accounts.cloud.databricks.com/api/2.0/accounts/<account-id>/networks' \
-d '{
"network_name": "Provide name for the Network configuration",
"vpc_id": "<aws-vpc-id>",
"subnet_ids": [
"<aws-subnet-1-id>",
"<aws-subnet-2-id>"
],
"security_group_ids": [
"<aws-sg-id>"
],
"vpc_endpoints": {
"dataplane_relay": [
"<databricks-vpce-id-for-scc>"
],
"rest_api": [
"<databricks-vpce-id-for-rest-apis>"
]
}
}'
ステップ 3c: PAS 構成 (フロントエンド、バックエンド、またはその両方) を作成する
Databricks アカウント API を使用して、プライベート アクセス設定 (PAS) オブジェクトを作成またはアタッチします。
プライベート アクセス設定オブジェクトは、次のシナリオをサポートします。
フロントエンド VPC エンドポイントのみを実装する
バックエンド VPC エンドポイントのみを実装する
フロントエンドとバックエンドの両方の VPC エンドポイントを実装する
ワークスペースでこれらの PrivateLink 接続シナリオのいずれかをサポートするには、 プライベート アクセス設定オブジェクトをアタッチしてワークスペースを作成する必要があります。 これは、このワークスペース専用の新しいプライベートアクセス設定オブジェクトにすることも、同じ AWS リージョン内の複数のワークスペースで既存のプライベートアクセス設定オブジェクトを再利用して共有することもできます。
このオブジェクトには、次の 2 つの目的があります。
ワークスペースで AWS PrivateLink を使用する意図を表明します。 フロントエンドまたはバックエンドの PrivateLink を使用してワークスペースに接続する場合は、ワークスペースの作成時にこれらのオブジェクトの 1 つをワークスペースにアタッチする必要があります。
AWS PrivateLink のフロントエンドユースケースの設定を制御します。 バックエンドの PrivateLink のみを使用する場合は、オブジェクトの
public_access_enabled
フィールドをtrue
に設定することができます。
プライベート アクセス設定オブジェクト定義では、public_access_enabled
ワークスペースのフロントエンド接続 (Web アプリケーションと REST APIs) へのパブリック アクセスを構成します。
false
(デフォルト) に設定すると、パブリック インターネットからではなく、PrivateLink 接続を使用してのみフロントエンド接続にアクセスできます。この場合、パブリック ネットワークからのアクセスは許可されないため、 ワークスペースの IP アクセス リストの構成 機能はワークスペースでサポートされません。true
に設定すると、フロントエンド接続には PrivateLink 接続またはパブリック インターネットからアクセスできます。必要に応じて、ワークスペースの IP アクセス リストを構成して、パブリック インターネットから Web アプリケーションと REST APIs にアクセスできるソース ネットワークを制限できます (ただし、PrivateLink 接続は制限されません)。
プライベートアクセス設定オブジェクトを作成するには、/accounts/<account-id>/private-access-settings
REST API エンドポイントにPOST
要求を行います。要求本文には、次のプロパティを含める必要があります。
private_access_settings_name
: プライベートアクセス設定オブジェクトの人間が判読できる名前。region
: AWS リージョン名。public_access_enabled
: フロントエンド接続のパブリック アクセスを有効にするかどうかを指定します。true
の場合、PrivateLink 接続に加えて、フロントエンド接続のパブリック アクセスが可能です。実装に必要な値については、前の表を参照してください。private_access_level
: このワークスペースに接続できる VPC エンドポイントを指定します。ACCOUNT (the default)
: Databricks アカウントに登録されている VPC エンドポイントへの接続を制限します。ENDPOINT
: 接続を明示的な VPC エンドポイントのセットに制限します。 関連するallowed_vpc_endpoint_ids
プロパティを参照してください。
注:
プライベート・アクセス・レベル・
ANY
は非推奨です。 このレベルは、新規または既存のプライベートアクセス設定オブジェクトでは使用できません。allowed_vpc_endpoint_ids
:private_access_level
がENDPOINT
に設定されている場合にのみ使用します。 このプロパティは、このワークスペースに接続できる VPC エンドポイントのセットを指定します。 VPC エンドポイント ID の JSON 配列として指定します。 AWS ID ではなく、 エンドポイント登録時に返された Databricks ID を使用します。
curl -X POST -n \
'https://accounts.cloud.databricks.com/api/2.0/accounts/<account-id>/private-access-settings' \
-d '{
"private_access_settings_name": "Default PAS for us-west-2",
"region": "us-west-2",
"public_access_enabled": true
}'
応答 JSON には private_access_settings_id
フィールドが含まれます。 この ID は、Databricks 内のこの構成に固有です。 この結果フィールドは、ワークスペースの作成時に必要になるため、保存しておくことが重要です。
関連 APIs:
ステップ 3d: Create or update a workspace
ワークスペースはすでにカスタマー管理 VPC を使用している必要があります。
PrivateLink 接続を使用してワークスペースを作成するための重要なフィールドは、 private_access_settings_id
(新しい プライベート アクセス設定オブジェクトの ID) と network_id
(新しい ネットワーク構成の ID) です。
PrivateLink 接続を使用してワークスペースを作成するには、次のようにします。
アカウント API を使用した新しいワークスペースのすべてのフィールドに関するガイダンスについては、「Databricks アカウント API 」の手順を参照してください。 ストレージ構成、資格情報構成、顧客マネージド キーなど、すべてのフィールドに関する詳細な手順については、「 アカウント API を使用してワークスペースを作成する」を参照してください。
Create a new workspace API (
POST /accounts/{account_id}/workspaces
) を呼び出し、private_access_settings_id
とnetwork_id
を必ず含めてください。curl -X POST -n \ 'https://accounts.cloud.databricks.com/api/2.0/accounts/<databricks-account-id>/workspaces' \ -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-config-id>", "managed_services_customer_managed_key_id": "<aws-kms-managed-services-key-id>", "storage_customer_managed_key_id": "<aws-kms-notebook-workspace-storage-config-id>", "private_access_settings_id": "<private-access-settings-id>" }'
PrivateLink を使用してワークスペースを作成または更新した後、ワークスペースがクラスターを使用または作成できるようになるまで待つ必要があり、ワークスペースのステータスはステータス
RUNNING
のままで、VPC の変更はすぐに行われます。 ただし、さらに 20 分間はクラスターを使用または作成できません。 この時間間隔が経過する前にクラスターを作成または使用すると、クラスターが正常に起動しないか、失敗したり、その他の予期しない動作が発生したりする可能性があります。
Terraform の使用
Terraform を使用して、基になる AWS ネットワーク オブジェクトと関連する Databricks PrivateLink オブジェクトを作成するには、次の Terraform プロバイダーを参照してください。
VPC エンドポイントを登録する Terraform プロバイダー。 このリソースを使用する前に、必要な AWS VPC エンドポイントをすでに作成しておく必要があります。
Terraformを使用してワークスペースをデプロイするには、次のTerraformプロバイダを参照してください:
ステップ 4: ユーザー要求を Web アプリケーションにリダイレクトするように内部 DNS を構成する (フロントエンド用)
フロントエンドの PrivateLink 接続を使用するには、ユーザー要求を Web アプリケーションにリダイレクトします。 これには、ユーザーが使用または接続するネットワークのプライベート DNS を変更する必要があります。 ユーザーが内部 DNS またはカスタム DNS のスコープ下にあるオンプレミス ネットワークから Databricks ワークスペースにアクセスする必要がある場合は、ワークスペースを作成または更新した後に次の構成を実行して、ワークスペース URL がワークスペース VPC エンドポイントの VPC エンドポイント プライベート IP にマップされるようにします。
ウェブアプリケーションワークスペースの URL をフロントエンド VPC エンドポイントにマッピングするように内部 DNS を設定します。
nslookup
Unix コマンドライン ツールを使用して、ワークスペースのデプロイ ドメイン名を使用して DNS 解決をテストします。
nslookup my-workspace-name-here.cloud.databricks.com
応答例:
Non-authoritative answer:
my-workspace-name-here.cloud.databricks.com canonical name = oregon.cloud.databricks.com.
oregon.cloud.databricks.com canonical name = a89b3c627d423471389d6ada5c3311b4-f09b129745548506.elb.us-west-2.amazonaws.com.
Name: a89b3c627d423471389d6ada5c3311b4-f09b129745548506.elb.us-west-2.amazonaws.com
Address: 44.234.192.47
AWS リージョン us-east-1
にフロントエンド VPC エンドポイントがあるワークスペースの DNS マッピングの例:
デフォルトでは、DNS マッピングは次のとおりです。
myworkspace.cloud.databricks.com
nvirginia.privatelink.cloud.databricks.com
にマップします。この場合、nvirginia
は、そのリージョンのコントロール プレーン インスタンスの短い名前です。nvirginia.privatelink.cloud.databricks.com
nvirginia.cloud.databricks.com
にマップします。nvirginia.cloud.databricks.com
は AWS パブリック IP にマップされます。
DNS が変更された後、トランジット VPC(フロントエンド VPC エンドポイントがある場所)からの DNS マッピングは次のようになります。
myworkspace.cloud.databricks.com
nvirginia.privatelink.cloud.databricks.com
にマップします。nvirginia.privatelink.cloud.databricks.com
フロントエンド接続のために VPC エンドポイントのプライベート IP にマッピングされます。
ワークスペース URL をオンプレミス ネットワークから VPC エンドポイントのプライベート IP にマッピングするには、次のいずれかを実行する必要があります。
AmazonDNS を使用するようにワークスペース URL の条件付き転送を構成します。
VPC エンドポイントのプライベート IP にマッピングするオンプレミスまたは内部 DNS のワークスペース URL の A レコードを作成します。
他の同様の PrivateLink 対応サービスへのアクセスを有効にする場合と同様の手順を完了します。
内部 DNS に A レコードを作成することで、ワークスペース URL をフロントエンド (ワークスペース) VPC エンドポイントのプライベート IP に直接マッピングし、DNS マッピングを次のようにすることができます。
myworkspace.cloud.databricks.com
VPC エンドポイントのプライベート IP にマッピングされます
内部 DNS 構成を変更した後、トランジット VPC から Databricks ワークスペース Web アプリケーションと REST API にアクセスして構成をテストします。 構成をテストするために必要に応じて、トランジット VPC に VPC エンドポイントを作成します。
プライベート DNS ドメインで DNS レコードを構成しなかった場合は、エラーが表示されることがあります。 これを修正するには、DNSサーバーに次のレコードを作成します。 その後、ワークスペース、Spark インターフェイス、Web ターミナル サービスにアクセスできます。
レコードの種類 |
レコード名 |
値 |
---|---|---|
A |
<deployment-name>クラウド.databricks.com |
PrivateLink インターフェイス IP |
CNAMEの |
dbc-dp-<workspace-id>クラウド.databricks.com |
<deployment-name>クラウド.databricks.com |
これがネットワーク アーキテクチャにどのように適用されるかについて質問がある場合は、Databricks アカウント チームにお問い合わせください。
ステップ 5: 他の AWS サービスの VPC エンドポイントを追加する
一般的なユースケースでは、クラシック コンピュート プレーン内のクラスターおよびその他のコンピュート リソースが AWS ネイティブ サービスに接続できるように、次の VPC エンドポイントが必要です。
S3 VPC ゲートウェイ エンドポイント: これは、ワークスペースのサブネットにアタッチされているルート テーブルにのみアタッチします。 バックエンド VPC エンドポイントに独自のルート テーブルを持つ推奨される別のサブネットを使用している場合、S3 VPC エンドポイントをその特定のルート テーブルに接続する必要はありません。 S3 ゲートウェイ エンドポイントに関するこの AWS の記事を参照してください。
STS VPC インターフェイス エンドポイント: これをすべてのワークスペース サブネットに作成し、ワークスペース セキュリティ グループにアタッチします。 これをバックエンド VPC エンドポイントのサブネットに作成しないでください。 STS インターフェイス エンドポイントに関するこの AWS セクションと、 インターフェイス エンドポイントに関するこの一般記事を参照してください。
Kinesis VPC インターフェイス エンドポイント: STS VPC インターフェイス エンドポイントと同様に、すべてのワークスペース サブネットに Kinesis VPC インターフェイス エンドポイントを作成し、ワークスペース セキュリティ グループにアタッチします。 Kenesis インターフェイス エンドポイントについては、この AWS の記事を参照してください] https://docs.aws.amazon.com/streams/latest/dev/vpc.html ) およびインターフェイス エンドポイントに関するこの一般的な記事
他の送信接続がサポートされないようにワークスペース VPC をロックダウンする場合、AWS は RDS への JDBC トラフィックの PrivateLink をまだサポートしていないため、ワークスペースは Databricks が提供するデフォルトのレガシーHive metastoreにアクセスできなくなります。 1 つのオプションとして、地域の Databricks が提供するメタストアの FQDN または IP を出力ファイアウォールに構成するか、インターネット ゲートウェイへのパブリック ルート テーブルを構成するか、NAT ゲートウェイをホストするパブリック サブネットのネットワーク ACL を構成できます。 このような場合、Databricks が提供するメタストアへのトラフィックはパブリック ネットワークを経由します。 ただし、パブリック ネットワーク経由で Databricks が管理するメタストアにアクセスしたくない場合は、次のようにします。
外部メタストアを独自の VPC にデプロイできます。 「外部 Apache Hive metastore (レガシー)」を参照してください。
メタストアに AWS Glue を使用できます。 Glue は PrivateLink をサポートしています。 「 AWS Glue データカタログをメタストアとして使用する (レガシー)」を参照してください。
また、pypi ( Pythonの場合) や CRAN (R の場合) などの公共ライブラリリポジトリへのアクセスの必要性も考慮する必要があります。 これらにアクセスするには、完全にロックダウンされた送信モードでのデプロイを再検討するか、代わりにアーキテクチャでエグレス ファイアウォールを使用して必要なリポジトリを構成します。 展開の全体的なアーキテクチャは、全体的な要件によって異なります。 ご不明な点がございましたら、Databricks アカウント チームにお問い合わせください。
AWS Management Console を使用して AWS VPC エンドポイントを作成するには、AWS Management Console での VPC エンドポイントの作成に関する AWS の記事を参照してください。
VPC エンドポイントの作成と管理の自動化に役立つツールについては、以下を参照してください。
Terraform リソース databricks_mws_vpc_endpoint と databricks_mws_private_access_settings.
Terraformガイド「 前提条件リソースのデプロイとPrivateLink接続の有効化」。
AWS の記事 AWS CLI : create-vpc-endpoint。