疑似オンプレネットワークから閉域構成の Azrure Databricks への接続

## はじめに
オンプレミスのネットワークを仮想ネットワークを使用して疑似的に作成して、そこから閉域構成の Azrure Databricks へ接続する方法を検証してみました。
構成は以下のようなイメージとなります。仮想ネットワーク vnet_on-premises にある VM（vm-client）から Databricks ワークスペース（adb_nw_pr_strict）に接続できるように設定していきます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3478068/01f9b27a-d978-4aba-9c69-f75eb5e37be5.png)

## 閉域構成の Azrure Databricks の作成
Azrure Databricks のデプロイについてはこちらの記事をご参照ください。
（本構成では vnet_hub 内のワークスペースへの接続用 VM は不要のため、作成しなくても問題ないです）

https://qiita.com/satoshi_enomoto/items/f8b688c1a0ae6bcd6364

## 疑似オンプレネットワークの作成
疑似オンプレネットワークおよび VM（vm-client）の作成についてはこちらの記事をご参照ください。
（本構成ではプロキシサーバは不要のため、作成しなくても問題ないです）

https://qiita.com/satoshi_enomoto/items/75a5ba02c034e05094a8

## VNet 間接続の構成
VNet 間接続の概要は以下となります。
VNet 間接続を構成することでオンプレミスのネットワークとの接続を再現できると考えました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3478068/a04e8ae5-0bbc-4611-87dc-7bf89d82819f.png)

https://learn.microsoft.com/ja-jp/azure/vpn-gateway/vpn-gateway-howto-vnet-vnet-resource-manager-portal

こちらの手順で構成していきます。

https://learn.microsoft.com/ja-jp/azure/vpn-gateway/vpn-gateway-howto-vnet-vnet-resource-manager-portal#create-and-configure-vnet1

### ゲートウェイサブネットの作成
今回は各 VNet に以下のようにゲートウェイサブネットを作成しました。

| パラメータ名 | vnet_on-premises 設定値 | vnet_hub 設定値 |
|:-----------|:------------|:------------|
| サブネットの目的 | Virtual Network Gateway | Virtual Network Gateway |
| 名前 | GatewaySubnet | GatewaySubnet |
| 開始アドレス | 10.0.0.32 | 172.16.0.64 |
| サイズ | /27 | /27 |

### VPN ゲートウェイの作成
今回は各 VNet に以下のように VPN ゲートウェイを作成します。
デプロイにはそれぞれ30分以上かかりました。

| パラメータ名 | vnet_on-premises 設定値 | vnet_hub 設定値 |
|:-----------|:------------|:------------|
| 名前 | GW_vnet_on-premises | GW_vnet_hub |
| リージョン | Japan East | Japan East |
| ゲートウェイの種類 | VPN | VPN |
| SKU | VpnGw1 | VpnGw1 |
| 世代 | Generation1 | Generation1 |
| 仮想ネットワーク | vnet_on-premises | vnet_hub |
| パブリック IP アドレス | 新規作成 | 新規作成 |
| パブリック IP アドレス名 | GW_vnet_on-premises_pip | GW_vnet_hub_pip |
| アクティブ/アクティブモードの有効化| 無効 | 無効 |
| BGP の構成 | 無効 | 無効 |

### 接続の構成
GW_vnet_on-premises の接続ページから接続を追加します。
今回は以下のように接続を構成しました。

| パラメータ名 | 設定値 |
|:-----------|:------------|
| 接続の種類 | VNet 対 VNet |
| 双方向接続の確立 | 有効 |
| 最初の接続の名前 | vnet_on-premises-to-vnet_hub |
| 2番目の接続の名前 | vnet_hub-to-vnet_on-premises |
| リージョン | Japan East |
| 最初の仮想ネットワーク ゲートウェイ | GW_vnet_on-premises |
| 2番目の仮想ネットワーク ゲートウェイ | GW_vnet_hub |
| 共有キー (PSK) | （任意の値） |

正常に構成できると状態が「接続済み」となります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3478068/74eae2c8-b232-4324-a4a3-9e7d886f601c.png)

## プライベート DNS ゾーンのリンク
Databricks のフロントエンド用のプライベートエンドポイントと Web ブラウザー認証用のプライベートエンドポイントへの名前解決のためにプライベート DNS ゾーン（azuredatabricks.net）を vnet_on-premises にリンクさせます。
プライベート DNS ゾーン（azuredatabricks.net）のレコードは以下のような形です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3478068/f5b41cce-a028-4ac5-bbaa-b3c061e003ce.png)

https://qiita.com/satoshi_enomoto/items/f8b688c1a0ae6bcd6364#azure-databricks-%E3%83%AF%E3%83%BC%E3%82%AF%E3%82%B9%E3%83%9A%E3%83%BC%E3%82%B9%E3%81%A8%E3%83%97%E3%83%A9%E3%82%A4%E3%83%99%E3%83%BC%E3%83%88%E3%82%A8%E3%83%B3%E3%83%89%E3%83%9D%E3%82%A4%E3%83%B3%E3%83%88%E3%82%92%E4%BD%9C%E6%88%90

## 接続確認
リモートデスクトップ接続で VM（vm-client）に入って、Databricks ワークスペースに接続すると以下のように接続できました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3478068/294c5ea8-08fe-4b7c-96e0-8e5cbe4c63b1.png)

:::note warn
ワークスペースに接続できない場合
[こちら](https://qiita.com/satoshi_enomoto/items/75a5ba02c034e05094a8#%E3%82%AF%E3%83%A9%E3%82%A4%E3%82%A2%E3%83%B3%E3%83%88%E3%82%B5%E3%83%BC%E3%83%90%E4%B8%8A%E3%81%A7%E3%81%AE%E5%8B%95%E4%BD%9C%E7%A2%BA%E8%AA%8D)の記事で VM（vm-client）をデプロイしてプロキシ設定をしていると、接続ができない事象が発生しました。
そのため、プロキシ設定を元に戻すことでワークスペースに接続できるようになりました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3478068/8d59cf5d-bc0d-4920-9fbf-aee1eeedfb84.png)

:::

## おわりに
実際のオンプレミスネットワークとvnet_hubとの接続に使用されることがある Express Route の場合は他にも必要な設定があるのかなと思います。（名前解決のための Azure DNS Private Resolver など）
以下の記事をご参照ください。

https://qiita.com/Isato-Hiyama/items/5a3926d0508948734735

また、VNet 間接続については以下の記事がとても参考になりましたので、併せてご参照ください。

https://qiita.com/carol0226/items/635408e1f343ba8bc649