Azure Databricksをインフラ視点で使う(3)【サーバレスの設定編】
はじめに
前々回の記事ではAzure DatabricksをTerraformを使って基本的な構成を行いました。
また、前回の記事ではプライベートリンクを設定したストレージアカウントを追加しました。
いよいよ最終段階である、Databricksが(多分)一押ししているサーバレスのコンピュートからプライベートリンクされたストレージアカウントを利用していきたいと思います。
なぜこの設定が必要なのか
Azure Databricksとストレージアカウントをユーザ作成の仮想ネットワーク内に閉じ込めたため、Databricks社管轄のAzureサブスクリプション上にあるサーバレス用のインスタンス(仮想マシン)から、パブリックネットワーク経由でストレージアカウントにアクセスできなくなるからです。
自前でコンピュートを用意してそこからSQLやノートブックを利用するのであれば、同じ仮想ネットワーク内にインスタンスが作成されるので、問題なくストレージアカウントにアクセスできます。
基本的に以下のURLにある手順を行います。
2024年末にSQL Warehouse以外の用途でもサーバレスが利用できるようになりました。
お試しする場合は、先ずは前回の記事を参考にAzure側のインフラのデプロイと、Databricks側の設定を済ませておきましょう。
手順
ネットワーク接続構成
Azure DatabricksはEntraテナント毎、リージョン毎にネットワーク接続や、メタストア?が管理されています。
今回は東日本リージョン用のネットワーク接続構成(NCC)を作成します。
まずは、Databricksワークスペースの右上のプルダウンから「アカウントを管理」を選択します。
クラウドリソースメニューから「ネットワーク接続構成を追加」を選択します。
名前は適当に。「ncc-japaneast」とかで良いと思います。
リージョンももちろん「japaneast」で。
ワークスペースをNCCにアタッチ
ワークスペースメニューの一覧から、今回作成したワークスペースを選択します。
ネットワーク接続構成のプルダウンから、先ほど作成した「ncc-japaneast」を選択して、「更新」をクリックします。
プライベートリンクの追加
ネットワーク接続構成の一覧からncc-japaneastを選び、タブから「プライベートエンドポイントルール」を選択後、「プライベートエンドポイントルールを追加」を選択します。
AzureリソースIDにはストレージアカウントのリソースIDを入力します。
Azureのサブリソースタイプは、今回は「Dfs」と入力します。用途に応じてBlobだったりQueueなど仮想ネットワーク経由でサーバレスコンピュートからアクセスする必要があるPaaSのサブリソースを後から複数追加できます。
追加を行った直後は、プライベートエンドポイントの状態が「PENDING」になっています。
Azureポータルから先に作成したストレージアカウントの「ネットワーク」を開き、「プライベートエンドポイント接続」を開きます。
「保留中」になっているものが、DatabricksのNCCから接続依頼が来ているやつです。
こちらのチェックボックスをONにして、「承認」をクリックします。
承認理由は適当に入力して、「はい」をクリックします。
NCCの一覧画面をリロードすると、ステータスが「ESTABLISHED」に変わり、正常にプライベートエンドポイントでの接続が行われたことが確認できます。
このあと、5分ほど待機することで完了です。
とりあえず確認
では確認しましょう。
SQLエディタでちゃんとクエリが実行されましたね。
ノートブックからも確認します。
まずは、SQLクエリの実行。
つづいて、ボリューム上のcsvファイルを読み込んで表示
うまく行きましたね。
今後やること
- Databricksワークスペース自体をプライベートネットワーク経由のみでアクセスさせるように構成してみる
- もう少しDatabricksそのものの知見を深める
おわりに
とにかく先が長そうな試用なので、記事を分割して少しずつ取り込んでいきたいと思います。
ここから先のToDoは時間を見つけて試していきたいと思いますが、今回の記事を含めシリーズ3部作でひとまず大きな目標は達成できたかなと。
大切なお客様のデータなどをしっかり守るためにはインフラ・ネットワークレベルから高いセキュリティ設定を行う必要があります。
皆さんのお役に立てば幸いです。
Discussion