😼

Azure Databricksをインフラ視点で使う(3)【サーバレスの設定編】

2025/01/28に公開

はじめに

前々回の記事ではAzure DatabricksをTerraformを使って基本的な構成を行いました。

https://zenn.dev/yotan/articles/7da1f3b7271830

また、前回の記事ではプライベートリンクを設定したストレージアカウントを追加しました。

https://zenn.dev/yotan/articles/fc66b9e5092ef7

いよいよ最終段階である、Databricksが(多分)一押ししているサーバレスのコンピュートからプライベートリンクされたストレージアカウントを利用していきたいと思います。

なぜこの設定が必要なのか

Azure Databricksとストレージアカウントをユーザ作成の仮想ネットワーク内に閉じ込めたため、Databricks社管轄のAzureサブスクリプション上にあるサーバレス用のインスタンス(仮想マシン)から、パブリックネットワーク経由でストレージアカウントにアクセスできなくなるからです。

自前でコンピュートを用意してそこからSQLやノートブックを利用するのであれば、同じ仮想ネットワーク内にインスタンスが作成されるので、問題なくストレージアカウントにアクセスできます。

基本的に以下のURLにある手順を行います。

https://learn.microsoft.com/azure/databricks/security/network/serverless-network-security/serverless-private-link?WT.mc_id=AZ-MVP-5002499

2024年末にSQL Warehouse以外の用途でもサーバレスが利用できるようになりました。

https://www.databricks.com/blog/announcing-comprehensive-azure-private-link-coverage-outbound-access-your-managed-azure

https://x.com/yo_ta_n/status/1882953588470845834

お試しする場合は、先ずは前回の記事を参考にAzure側のインフラのデプロイと、Databricks側の設定を済ませておきましょう。

手順

ネットワーク接続構成

Azure DatabricksはEntraテナント毎、リージョン毎にネットワーク接続や、メタストア?が管理されています。

今回は東日本リージョン用のネットワーク接続構成(NCC)を作成します。

まずは、Databricksワークスペースの右上のプルダウンから「アカウントを管理」を選択します。

img

クラウドリソースメニューから「ネットワーク接続構成を追加」を選択します。

img

名前は適当に。「ncc-japaneast」とかで良いと思います。

リージョンももちろん「japaneast」で。

img

ワークスペースをNCCにアタッチ

ワークスペースメニューの一覧から、今回作成したワークスペースを選択します。

img

ネットワーク接続構成のプルダウンから、先ほど作成した「ncc-japaneast」を選択して、「更新」をクリックします。

img

プライベートリンクの追加

ネットワーク接続構成の一覧からncc-japaneastを選び、タブから「プライベートエンドポイントルール」を選択後、「プライベートエンドポイントルールを追加」を選択します。

img

AzureリソースIDにはストレージアカウントのリソースIDを入力します。

Azureのサブリソースタイプは、今回は「Dfs」と入力します。用途に応じてBlobだったりQueueなど仮想ネットワーク経由でサーバレスコンピュートからアクセスする必要があるPaaSのサブリソースを後から複数追加できます。

img

追加を行った直後は、プライベートエンドポイントの状態が「PENDING」になっています。

img

Azureポータルから先に作成したストレージアカウントの「ネットワーク」を開き、「プライベートエンドポイント接続」を開きます。

「保留中」になっているものが、DatabricksのNCCから接続依頼が来ているやつです。

こちらのチェックボックスをONにして、「承認」をクリックします。

img

承認理由は適当に入力して、「はい」をクリックします。

img

NCCの一覧画面をリロードすると、ステータスが「ESTABLISHED」に変わり、正常にプライベートエンドポイントでの接続が行われたことが確認できます。

img

このあと、5分ほど待機することで完了です。

とりあえず確認

では確認しましょう。

SQLエディタでちゃんとクエリが実行されましたね。

img

ノートブックからも確認します。

まずは、SQLクエリの実行。

img

つづいて、ボリューム上のcsvファイルを読み込んで表示

img

うまく行きましたね。

今後やること

  • Databricksワークスペース自体をプライベートネットワーク経由のみでアクセスさせるように構成してみる
  • もう少しDatabricksそのものの知見を深める

おわりに

とにかく先が長そうな試用なので、記事を分割して少しずつ取り込んでいきたいと思います。

ここから先のToDoは時間を見つけて試していきたいと思いますが、今回の記事を含めシリーズ3部作でひとまず大きな目標は達成できたかなと。

大切なお客様のデータなどをしっかり守るためにはインフラ・ネットワークレベルから高いセキュリティ設定を行う必要があります。

皆さんのお役に立てば幸いです。

Discussion