背景・目的
DatabricksでAWS PrivateLinkを構成する記事を見つけたので、調べてみました。
まとめ
AWS PrivateLinkを使用したDatabricksへの接続は、下記の特徴があります。
特徴 | 説明 |
---|---|
概要 | フロントエンドPrivateLinkとバンクエンドPrivateLinkがある。 ・フロントエンドPrivateLinkは、ユーザとDatabricksコントロールプレーン間の接続 ・バックエンドPrivateLinkは、Databricksアカウント内のコントロールプレーンとユーザアカウントのコンピュートプレーン間の接続 |
目的 | トラフィックをパブリックNWに公開しないですむ |
前提 | ・E2バージョンのプラットフォームであること ・Enterprise の料金プランであること |
制約 | ・一度作成したNW構成や、VPCエンドポイントの登録は更新ができない |
概要
AWS PrivateLink を有効にするを元に整理します。
AWS PrivateLink は、トラフィックをパブリック ネットワークに公開することなく、AWS VPC およびオンプレミス ネットワークから AWS のサービスへのプライベート接続を提供します。E2 バージョンのプラットフォーム上の Databricks ワークスペースは、次の 2 つの接続タイプの PrivateLink 接続をサポートします。
- そもそも、AWSのPrivate Linkとは?
- トラフィックのパブリックNWに公開しない
- VPC、オンプレミスNWからAWSサービスへのプライベート接続を提供
フロントエンド (ユーザーからワークスペースへ) : フロントエンド PrivateLink 接続により、ユーザーは VPC インターフェイス エンドポイント経由で Databricks Web アプリケーション、REST API、および Databricks Connect API に接続できます。
バックエンド (コンピューティング プレーンからコントロール プレーン) :顧客管理の VPC (コンピューティング プレーン) 内の Databricks ランタイム クラスターは、Databricks クラウド アカウント内のDatabricks ワークスペースのコア サービス (コントロール プレーン) に接続します。クラスターは、REST API (Secrets API など) と安全なクラスター接続リレーという 2 つの宛先のコントロール プレーンに接続します。この PrivateLink 接続タイプには、2 つの異なる宛先サービスがあるため、2 つの異なる VPC インターフェイス エンドポイントが関係します。
- Databricks E2バージョンのプラットフォーム上のDatabricks Workspaceは2つの接続タイプをサポート
- フロントエンド:
- フロントエンド PrivateLink接続により、ユーザはVPCe経由で下記に接続可能。
- Databricks Webアプリケーション
- REST API
- Databricks Connect API
- フロントエンド PrivateLink接続により、ユーザはVPCe経由で下記に接続可能。
- バックエンド:
- 顧客管理のVPC内のDatabricksランタイムクラスタは、Databricksクラウドアカウント内のDatabricksワークスペース内のコントロールプレーンに接続する。
- クラスタは、下記の2つの宛先コントロールプレーンに接続する。
- REST API(Secrets APIなど)
- Secure cluster connectivity
- 異なる宛先サービスがあるため、2つの異なるVPCインターフェイスエンドポイントが関係する。
- フロントエンド:
フロントエンドとバックエンドの PrivateLink 接続の両方を実装することも、そのうちの 1 つだけを実装することもできます。この記事では、PrivateLink 接続タイプの一方または両方を構成する方法について説明します。フロントエンド接続とバックエンド接続の両方に PrivateLink を実装する場合、オプションでワークスペースのプライベート接続を必須にすることができます。これは、Databricks がパブリック ネットワーク経由の接続を拒否することを意味します。これらの接続タイプのいずれかの実装を拒否した場合、この要件を強制することはできません。
- フロントエンドとバックエンドのPrivateLinkの両方を実装することも、そのうち1つだけを実装することもできる
- 両方に対して、PrivateLinkを有効にした場合に、オプションでワークスペースのプライベート接続を必須にすることができる。
- つまり、パブリックNW経由の接続を拒否することができる。
PrivateLink 接続を有効にするには、Databricks 構成オブジェクトを作成し、既存の構成オブジェクトに新しいフィールドを追加する必要があります。
用語の整理
分類 | 用語 | 説明 |
---|---|---|
AWS | AWS プライベートリンク | トラフィックをパブリック ネットワークに公開することなく、AWS VPC およびオンプレミス ネットワークから AWS サービスへのプライベート接続を提供する AWS テクノロジー。 |
AWS VPCエンドポイントサービス | AWS VPC エンドポイント サービスは、PrivateLink を利用したサービス。 各 Databricks コントロール プレーン (通常はリージョンごとに 1 つ) は、PrivateLink の 2 つの AWS VPC エンドポイント サービスを公開します。 ワークスペース VPC エンドポイント サービスは、REST API の Databricks フロントエンド PrivateLink 接続または Databricks バックエンド PrivateLink 接続の両方に適用されます。Databricks は、安全なクラスター接続リレー用に別の VPC エンドポイント サービスを公開します。 |
|
AWS VPC エンドポイント | AWS VPC インターフェイス エンドポイントにより、 VPC と AWS PrivateLink を利用した VPC エンドポイント サービス間のプライベート接続が可能になります。AWS VPC インターフェイス エンドポイントを作成して、Databricks に登録する必要があります。VPC エンドポイントを登録すると、AWS VPC エンドポイントを参照する VPC エンドポイント登録と呼ばれる Databricks 固有のオブジェクトが作成されます。 | |
Databricks | フロントエンド PrivateLink | ユーザーが Databricks Web アプリケーション、REST API、および Databricks Connect API に接続するための PrivateLink 接続。 |
バックエンド PrivateLink | Databricksコントロール プレーンに接続するための AWS アカウントのコンピューティング プレーンの PrivateLink 接続)。 | |
Databricks ネットワーク構成 | 「顧客管理 VPC の構成」に関する重要な情報を記述する Databricks オブジェクト。PrivateLink 接続 (フロントエンドまたはバックエンド) を実装する場合、ワークスペースは顧客管理の VPC を使用する必要があります。PrivateLink バックエンド サポートの場合のみ、ネットワーク構成には、バックエンド接続の VPC エンドポイントを識別する追加のプロパティが必要です。 | |
Databricks プライベート アクセス設定オブジェクト | ワークスペースの PrivateLink 接続を記述する Databricks オブジェクト。フロントエンド、バックエンド、またはその両方を使用するかどうかに関係なく、ワークスペースの作成中にプライベート アクセス設定オブジェクトをワークスペースにアタッチする必要があります。これは、ワークスペースで AWS PrivateLink を使用する意図を表します。パブリック ネットワーク アクセス用の AWS PrivateLink のフロントエンド ユースケースの設定を制御します。どの VPC エンドポイントにワークスペースへのアクセスを許可するかを制御します。 | |
Databricks ワークスペース構成オブジェクト | ワークスペースを記述する Databricks オブジェクト。PrivateLink を有効にするには、このオブジェクトが Databricks プライベート アクセス設定オブジェクトを参照する必要があります。バックエンド PrivateLink の場合、ワークスペースには、使用する VPC エンドポイント登録を指定する 2 つの追加フィールドを備えた Databricks ネットワーク構成オブジェクトも必要です。1 つはコントロール プレーンの安全なクラスター接続リレー用で、もう 1 つは REST API にアクセスするためにワークスペースに接続します。 |
既存の PrivateLink 構成オブジェクトの更新
新規と既存のWorkspaceに対して変更ができないオブジェクトがあるので、注意が必要とのことです。
※ 出典:「既存の PrivateLink 構成オブジェクトの更新」
ネットワークの流れ
要件
-
Databricksアカウント
-
Databricksワークスペース
- ワークスペースは、E2バージョンをサポートするAWSリージョンに存在すること
- フロントエンドのPrivateLink接続を追加するには、顧客管理のVPCの構成を使用する
- バックエンドの実装する場合は、セキュアクラスター接続を使用する必要がある
考察
今回、PrivateLinkを使用したDatabricksへの接続について整理しました。
私が契約している料金プランは、PremiumのためPrivateLinkを有効にできず、実際手を動かしていません。
やはり手を動かして確認しないとリアリティがありませんでした。
今後、契約プランを見直して試してみるかもしれません。
参照