10
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Azure Databricks のネットワーク設定について

Last updated at Posted at 2022-09-24

はじめに

Azure Databricks はワークスペース作成時に以下 2 つのネットワーク設定を選択できます。

  • Security Cluster Connectivity (SCC)
  • VNet Injection
スクリーンショット 2022-09-23 13.19.01.png

今回はそれぞれの設定について説明します。

Databricks アーキテクチャーの前提知識

Azure Databricks はコントロール プレーンデータ プレーンから構成されます。
コントロール プレーンにはバックエンド サービスが含まれます。ユーザーがワークスペースに UI アクセスする際はコントロール プレーンにリクエストが送信されます。また、REST API やデータ プレーンからのリクエストに従ってクラスター作成などを行います。
その一方でデータ プレーンではデータが実際に処理され、クラスター ノード VM や Databricks File System (DBFS) で使用するストレージなどが含まれます。

image.png

Security Cluster Connectivity (SCC)

Secure Cluster Connectivity (SCC) はセキュリティを強化するための設定となります。データ プレーンのクラスター ノード VM にはデフォルトでパブリック IP が付与されており、これを利用しインターネットに接続しますが、SCC を有効化すると VM にパブリック IP が付与されなくなります。なお、後述しますが、SCC が有効であってもインターネットに接続することは可能です。

VNet Injection

VNet Injection は、自分で作成した VNet にデータ プレーンの VM をデプロイするための設定です。
Azure Storage などに Private Endpoint を経由してアクセスしたい場合に必要となります。

Databricks ワークスペース作成時に VNet Injection を有効化する際、複数の設定項目があります。それぞれについて説明していきます。

スクリーンショット 2022-09-23 16.22.15.png

1. サブネット

VNet には Databricks ワークスペース専用の 2 つのサブネットを含める必要があります。パブリック サブネットは、クラスター ノードのホスト VM の IP のためのものであり、クラスター外部への接続で利用されます。プライベート サブネットは、ノードにデプロイされる Databricks ランタイム コンテナー の IP のためのものであり、クラスター内通信で利用されます。

クラスターの VM 1 台につき、NIC がそれぞれのサブネットで作成され、パブリック サブネット側の NIC にはパブリック IP が割り当てられます。但し、SCC が有効化されているとパブリック IP が付与されません。後述しますが、パブリック IP が付与されていなくともインターネットへの接続は可能です。

各サブネットは事前に作成する必要がなく、サブネット名や CIDR 範囲を入力しておけば自動で作成されます。

2. パブリック アクセス

コントロール プレーンへのパブリック アクセスを許可するかどうかの設定です。無効の場合には、プライベート エンドポイント経由での接続が必要となります。

3. NSG ルール

1 で指定したサブネットに自動で付与される NSG のアウトバウンドに、データ プレーンからコントロール プレーンにパブリック アクセスするためのルールを追加するかどうかの設定です。

4. プライベート エンドポイント

Databricks には 2 つのサブリソースのプライベート エンドポイントが存在します。これらはワークスペース作成後も追加できますが、ワークスペース作成時の画面で追加できるものは databricks_ui_api に限ります。

サブリソース名 用途 FQDN
databricks_ui_api Databricks コントロール プレーンへの接続 adb-XXXXXXXXXXXX.XX.azuredatabricks.net
browser_authentication Azure AD の SSO ログインのコールバック (プライベート エンドポイント経由でワークスペースにブラウザ接続するときのみ通信が発生) <region>.pl-auth.azuredatabricks.net

databricks_ui_api には大きく分けて 2 種類の使われ方があります。1 つはクラスター VM からバックエンドサービスへの接続、もう 1 つはユーザーのクライアントマシンからのワークスペースブラウザ接続や API 接続になります。それぞれ下図の Back-end private endpointFront-end private endpoint に該当します。Web authentication private endpoint は上表における browser_authentication であり、リージョン毎に FQDN は共通となります。

image.png
(引用元: 標準デプロイとして Azure Private Link を有効にする - Azure Databricks | Microsoft Learn )

データ プレーンからインターネットへの接続方式

SCC と VNet Injection の有無によってデータ プレーンからインターネットに接続するときの方式が異なります。これらについて説明していきます。

SCC 無効 + VNet Injection 無効

VM に付与された Public IP を用いてインターネットにアクセスします。クラスターを停止すると VM および Public IP は削除されるため、IP 固定化は保証されません。

スクリーンショット 2022-09-23 14.00.57.png

SCC 有効 + VNet Injection 無効

マネージド リソース グループに自動作成される NAT Gateway を用いてインターネットにアクセスします。NAT Gateway のパブリック IP で外部アクセスすることになるため、アクセス元 IP が固定となります。

スクリーンショット 2022-09-23 14.12.54.png

SCC 無効 + VNet Injection 有効

VM に付与された Public IP を用いてインターネットにアクセスします。SCC 無効 + VNet Injection 無効のとき同様、クラスターを停止すると VM および Public IP は削除されるため、IP 固定化は保証されません。

スクリーンショット 2022-09-23 15.24.09.png

SCC 有効 + VNet Injection 有効

Azure プラットフォーム上で使われていないパブリック IP アドレスを一時的に借りて SNAT を行います。(※)
こちらについても IP 固定化は保証されません。
IP を固定化したい場合には NAT Gateway、Azure Firewall などの利用が推奨されます。

※ この方式は 2025 年 9 月 30 日で廃止されるため、明示的に NAT Gateway 等を連携させる必要があります。

スクリーンショット 2022-09-23 15.24.39.png

データ プレーンおよびユーザーからコントロール プレーンへの接続方式

データ プレーンおよびユーザーからコントロール プレーンへ接続する際の方式を説明します。
なお、SCC の設定に関わらず、データ プレーンからコントロール プレーンへの接続は公共インターネットを経由せず Microsoft のバックボーン ネットワークを経由するため、VNet Injection の有無にだけ着目して説明します。

VNet Injection 無効

データ プレーンおよびユーザーからコントロール プレーンにパブリック アクセスします。

databricks-8.drawio.png

VNet Injection 有効

パブリック アクセスと NSG ルールの設定によって構成が変わります。全ての組み合わせについて説明します。

パブリック アクセス有効 + NSG ルール有効

データ プレーンおよびユーザーからコントロール プレーンにパブリック アクセスします。

databricks-7.drawio.png

パブリック アクセス有効 + NSG ルール無効

データ プレーンからコントロール プレーンにパブリック アクセスするための NSG ルールが存在しないため、プライベート エンドポイントが必要になります。

databricks-6.drawio.png

パブリック アクセス無効 + NSG ルール有効

この組み合わせは設定不可です。

パブリック アクセス無効 + NSG ルール無効

データ プレーンおよびユーザーから プライベート エンドポイントを経由してコントロール プレーンにアクセスします。
databricks_ui_api のプライベート エンドポイントを経由してワークスペースにブラウザ アクセスするときのみ、<region>.pl-auth.azuredatabricks.net への通信が発生します。このエンドポイントにパブリック アクセスしてもよいですが、下図では browser_authentication のプライベート エンドポイント経由でアクセスしています。

databricks-5.drawio.png

おわりに

Azure Databricks ワークスペース作成時に選択できる 2 つのネットワーク設定について説明しました。
Databricks コントロール プレーンへのパブリック アクセスを許可している場合でも、IP アクセス リストの機能を使用すればアクセス元の IP アドレスで制限をかけることができます。

参考

10
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?