Azure Databricks Serverless 移行ガイド:インフラ管理不要のデータプラットフォーム構築

Tech

  • RESEARCH-FIRST: Azure Databricks Serverless (SQL/Notebooks/Workflows) のGA仕様に基づき構成。

  • PLAN: 管理プレーンとサーバーレスコンピュートプレーンの分離、Unity Catalog必須要件を反映。

  • STYLE: シニアアーキテクト視点での技術密度、論理的構造の維持。

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

Azure Databricks Serverless 移行ガイド:インフラ管理不要のデータプラットフォーム構築

【導入】

データ基盤のVM管理負荷を排除し、即時スケールと秒単位課金により、分析パイプラインの運用コストと起動待ち時間を最小化します。

【アーキテクチャ設計】

従来のDatabricks(Classic)との最大の違いは、コンピュートリソースが「顧客のAzureサブスクリプション内(VNet)」ではなく、「Databricksが管理するコンピュートプレーン」で実行される点です。これにより、ネットワーク設計の簡素化とセキュリティの集中管理を両立します。

graph TD
    subgraph Azure_Customer_Tenant["Azure Customer Tenant"]
        A[User/Analyst] -->|Access| B["Azure Databricks Workspace"]
        B -->|Metadata/Governance| C["Unity Catalog"]
        D["Storage: ADLS Gen2"] |Serverless Access| E
    end

    subgraph Databricks_Managed_Plane["Serverless Compute Plane"]
        E["Serverless Compute / SQL Warehouse"]
    end

    B -->|Task Dispatch| E
    E -->|Private Connectivity| D
  • コントロールプレーン: ワークスペースの管理、ジョブのスケジューリング、認証を担う。

  • サーバーレスコンピュートプレーン: Databricksが管理する安全な環境で、Sparkクラスターが即座に起動。

  • データプレーン: 顧客のADLS Gen2等に格納されたデータに対し、マネージドな接続経路を確立。

【実装・デプロイ手順】

サーバーレス機能を有効化するには、Premium以上のSKUとUnity Catalogのセットアップが必須です。以下にTerraformを用いた構成例を示します。

# Azure Databricks Workspaceの作成(Premium SKU)

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"

  # サーバーレス・コンピュートの有効化設定(メタデータ設定)

  tags = {
    Environment = "Production"
    ManagedBy   = "Terraform"
  }
}

# Serverless SQL Warehouseの作成

resource "databricks_sql_endpoint" "serverless_sqlw" {
  name             = "Serverless-Warehouse"
  cluster_size     = "X-Small"
  max_num_clusters = 5
  auto_stop_mins   = 10
  enable_serverless_compute = true # サーバーレスの指定
}

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

サーバーレス環境では、従来のVNetインジェクションに依存しないセキュリティ設計が求められます。

  1. Unity Catalog (UC) によるガバナンス:

    • サーバーレス・コンピュートはUCが必須です。カタログ、スキーマ、テーブルレベルのRBACを適用します。
  2. ストレージ接続の秘匿化:

    • 「ストレージ資格情報 (Storage Credentials)」および「外部ロケーション (External Locations)」を使用し、ユーザーに直接アクセスキーを渡さない構成をとります。
  3. ネットワークセキュリティ:

    • Network Connectivity Config (NCC) を構成し、サーバーレス・コンピュートプレーンからAzureリソースへの通信をPrivate Link経由に限定します。

【運用・コスト最適化】

サーバーレスの最大の利点は「アイドルコストの排除」です。

  • 可観測性: system.billing.usage などのシステムテーブル(System Tables)を有効化し、サーバーレスSKUの消費量をSQLでリアルタイム監視します。

  • コスト最適化:

    • サーバーレスSQL Warehouseの「オートストップ」時間を短縮(例:1分〜10分)。

    • 開発環境ではクラスターサイズを最小に固定。

  • パフォーマンス: Pro/Classicよりも起動が高速(数秒)なため、ジョブ実行時のみ起動する運用にシフトします。

【まとめ】

Azure Databricks Serverlessの導入にあたっては、以下の3点に留意してください。

  1. Unity Catalogへの移行: 従来のHive Metastore構成ではサーバーレスを利用できません。UCへのメタデータ移行を先行させる必要があります。

  2. ネットワーク設計の変更: VNet内でのパケットフィルタリングから、NCCを利用したPrivate Link経由のアクセス制御へのマインドセット変更が必須です。

  3. コンピュートプレーンの所在: 計算資源がAzureの自社サブスクリプション外で動作するため、コンプライアンス部門との事前合意(Databricksマネージド環境の許容)を確認してください。

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

コメント

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