10
5

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 が付与されなくなります

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 のためのものです。但し、SCC が有効化されていると両方がプライベート サブネットになります。

各サブネットは事前に作成する必要がなく、サブネット名や 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

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

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 既定の SNAT でインターネットにアクセスします。
VM がデプロイされている Azure リージョンで使用されるグローバル IP アドレスのうち、未使用なものがランダムに割り当てられます。そのため、VM を再起動するとIP アドレスは変動する可能性があります。
IP を固定化したい場合には Load Balancer、NAT Gateway、Firewall などを利用することが推奨されます。

スクリーンショット 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