Azure Databricks サーバーレス計算リソースの導入とセキュアなインフラ設計ガイド

Tech

本記事はGeminiの出力をプロンプト工学で整理した業務ドラフト(未検証)です。

Azure Databricks サーバーレス計算リソースの導入とセキュアなインフラ設計ガイド

【導入】

データ基盤の管理負荷を最小化し、インフラ運用のオーバーヘッドを排除しながら、スケーラブルなデータ分析とAI開発を加速させます。

【アーキテクチャ設計】

サーバーレス計算リソース(SQL Warehouse, Notebooks, Workflows)の導入により、従来の「カスタマーVNet内へのVMデプロイ」から、Databricksが管理する「サーバーレス計算プレーン」への移行が実現します。これにより、クラスターの起動時間の短縮(数秒)と、パッチ適用等の運用負担の解消が図られます。

graph TD
    subgraph Azure_Cloud
        subgraph Customer_Subscription
            ADLS["Storage: ADLS Gen2"]
            PE["Private Endpoint"]
        end

        subgraph Databricks_Serverless_Plane
            SC["Serverless Compute"]
            NCC["Network Connectivity Config"]
        end

        subgraph Control_Plane
            Auth["Microsoft Entra ID"]
            WS["Databricks Workspace"]
        end
    end

    User -->|Access| WS
    WS -->|Provision| SC
    SC -->|Secure Access via NCC| PE
    PE -->|Data Access| ADLS
    WS -->|Identity| Auth

アーキテクチャの核心は「Network Connectivity Config (NCC)」です。サーバーレス計算プレーンから顧客リソース(ADLS Gen2等)へプライベートに接続するためのネットワーク境界を定義します。

【実装・デプロイ手順】

サーバーレス機能を有効化したワークスペースをTerraformで構成する例です。サーバーレス計算リソースの利用には、Premium価格レベルが必須となります。

# Azure Databricks ワークスペースの作成

resource "azurerm_databricks_workspace" "this" {
  name                = "dbw-serverless-prod"
  resource_group_name = azurerm_resource_group.this.name
  location            = azurerm_resource_group.this.location
  sku                 = "premium"

  # サーバーレス計算リソースのネットワーク接続設定 (NCC)


  # ※ 現時点ではAPIまたはAzure Portalからの構成が主流

  tags = {
    Environment = "Production"
    Engine      = "Serverless"
  }
}

# サーバーレスSQL Warehouseの作成例 (Databricks Provider)

resource "databricks_sql_endpoint" "serverless" {
  name             = "Serverless_Warehouse"
  cluster_size     = "X-Small"
  max_num_clusters = 5
  auto_stop_mins   = 10
  enable_serverless_compute = true
}
  1. ワークスペース作成: SKUを premium に指定してデプロイ。

  2. Unity Catalogの有効化: サーバーレスリソースの利用にはUnity Catalogのメタストア割り当てが強く推奨(ほぼ必須)されます。

  3. NCCの構成: Azure Portalの「Network Connectivity Configs」から、サーバーレスプレーンから自社VNetのPrivate Endpointへの接続を許可します。

【アイデンティティとセキュリティ】

サーバーレス環境では、従来のインスタンスプロファイルではなく、Unity Catalog (UC) によるガバナンスが前提となります。

  • 認証と認可: Microsoft Entra ID(旧Azure AD)と完全に統合。SCIMによるユーザー同期を行い、Unity Catalogでテーブル・ファイル単位のRBACを制御します。

  • ネットワークセキュリティ: サーバーレス計算プレーンはDatabricks管理ですが、NCCを使用することで、ストレージアカウント側のファイアウォールで「信頼されたサービス」または「Private Endpoint」経由のアクセスのみを許可する構成が可能です。

  • データ保護: E2管理(Encrypt Everything)を適用し、顧客管理キー(CMK)による二重暗号化を検討してください。

【運用・コスト最適化】

サーバーレスは「使った分だけ」の課金(DBU単位)であり、従来のクラスターのような「アイドリング中のVMコスト」を削減できます。

  • 可観測性: system.billing.usage などのシステムテーブルをクエリすることで、ノートブックやジョブごとのサーバーレス消費コストをリアルタイムに可視化します。

  • オートスケール: サーバーレスSQL Warehouseでは、同時実行数に基づき自動でコンピュートがスケールダウンするため、手動のサイジング調整が不要です。

  • SKU選択: 計算負荷が高いETL処理にはサーバーレスを、常時稼働させる固定的なストリーミング処理にはリザーブドインスタンス併用のクラシッククラスターを使い分けるハイブリッド戦略が有効です。

【まとめ】

  1. Unity Catalogの必須化: サーバーレス計算リソースをフル活用するには、Unity Catalogへの移行が前提条件となるため、既存のHive Metastoreからの移行計画を優先すること。

  2. ネットワーク設計の変更: 従来のVNet Injectionとは異なり、NCC(Network Connectivity Config)を用いた新しい接続定義が必要になる点に注意。

  3. コスト特性の理解: 起動時間は劇的に改善されますが、DBU単価はクラシックより高く設定されているため、短時間実行ジョブやアドホック分析で最大のROIを発揮します。

ライセンス:本記事のテキスト/コードは特記なき限り CC BY 4.0 です。引用の際は出典URL(本ページ)を明記してください。
利用ポリシー もご参照ください。

コメント

タイトルとURLをコピーしました