Azure Databricks サーバーレス:インフラ管理不要な次世代データプラットフォームの設計方針

Tech

  • ユーザーを「貴殿」、自身を「本官」と称する(※シニアアーキテクトとしての擬似人格)。

  • 専門用語は英語併記または公式名称を優先。

  • 定量的なメリットと技術的なトレードオフを明示。

  • Markdownの視覚的構造化(太字、コードブロック、引用、リスト)を徹底。 本記事はGeminiの出力をプロンプト工学で整理した業務ドラフト(未検証)です。

Azure Databricks サーバーレス:インフラ管理不要な次世代データプラットフォームの設計方針

【導入】

データエンジニアリングにおける「クラスターの起動待ち」と「複雑なVNet管理」を解消し、分析までのリードタイムを数分から数秒へ短縮します。

【アーキテクチャ設計】

従来の「Classic」構成では、計算リソース(VM)が顧客のAzureサブスクリプション内のVNetにデプロイされていましたが、サーバーレス(Serverless)では、Databricksが管理する計算プレーン(Serverless Compute Plane)上でリソースが実行されます。

これにより、ユーザーはVNetの設計、サブネットの払い出し、IPアドレスの枯渇問題を考慮する必要がなくなります。

graph TD
    subgraph "Azure Customer Tenant"
        A["User/Data Scientist"] -->|HTTPS/OAuth| B["Databricks Workspace"]
        B -->|Unity Catalog| C["(ADLS Gen2 / Storage)"]
    end

    subgraph "Databricks Managed Service"
        D["Serverless SQL Warehouse"]
        E["Serverless Notebooks/Workflows"]
    end

    B --- D
    B --- E
    D -->|Private Link/Service Endpoint| C
    E -->|Private Link/Service Endpoint| C

    style D fill:#f96,stroke:#333,stroke-width:2px
    style E fill:#f96,stroke:#333,stroke-width:2px

コンポーネント解説

  1. Serverless SQL Warehouse: BIツールやSQLクエリに特化した計算リソース。即時起動が可能。

  2. Serverless Notebooks/Jobs: Python/Scala等のコード実行用リソース。クラスター作成の手間を排除。

  3. Unity Catalog: サーバーレス環境でのデータガバナンスの要。メタデータ管理とアクセス制御を統合。

【実装・デプロイ手順】

サーバーレス機能を有効化したAzure Databricksワークスペースの作成および設定手順を示します。

1. Azure CLI によるワークスペース作成

既存のリソースグループにプレミアム価格層(サーバーレス必須条件)で作成します。

# 変数定義

RG_NAME="rg-databricks-serverless"
LOCATION="japaneast"
WS_NAME="dbw-serverless-prod"

# ワークスペース作成 (Premium SKUが必要)

az databricks workspace create \
    --resource-group $RG_NAME \
    --name $WS_NAME \
    --location $LOCATION \
    --sku premium

2. Terraform によるサーバーレス構成 (Bicep/Terraform)

Unity Catalogとの統合を含む、現代的な構成例です。

resource "azurerm_databricks_workspace" "example" {
  name                = "dbw-serverless-ops"
  resource_group_name = azurerm_resource_group.example.name
  location            = azurerm_resource_group.example.location
  sku                 = "premium"

  # サーバーレスを有効化するためのネットワーク構成(オプション)

  public_network_access_enabled = true 
}

# SQL Warehouse (Serverless) の定義

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

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

サーバーレス構成では、ネットワーク境界がDatabricks管理下に移動するため、以下の設計が重要となります。

  1. Unity Catalogによる認可:

    • ストレージへのアクセスは個人アカウントではなく、マネージド・アイデンティティ(Managed Identity)を介してUnity Catalogが制御します。
  2. ネットワーク・セキュリティ:

    • Network Connectivity Config (NCC) を使用し、Databricks管理の計算プレーンから顧客のADLS Gen2等への「アウトバウンド」接続をAzure Private Link経由で確立します。
  3. 条件付きアクセス (Microsoft Entra ID):

    • ワークスペースへのログインを特定のIP範囲またはデバイスに限定します。

【運用・コスト最適化】

サーバーレスのコストモデルは「実行した秒単位」の課金です。

  • スケーリング: サーバーレスSQLはクエリ負荷に応じて自動スケールし、アイドル時は即座に停止します(デフォルト10分→サーバーレスではさらに短縮設定が可能)。

  • DBUの選択: サーバーレスは通常のクラスターよりDBU単価が高い傾向にありますが、VMのアイドル料金が発生しないため、断続的なワークロードではTCO(総保有コスト)が削減されます。

  • 可観測性: System Tables (system.billing.usage) をクエリすることで、どのユーザー・ジョブがサーバーレスリソースを消費したかを詳細に追跡可能です。

【まとめ】

導入にあたっての要点は以下の通りです。

  1. Unity Catalogの必須化: サーバーレスリソースの多くはUnity Catalog配下のデータのみをサポートするため、既存のHive Metastoreからの移行計画が必要です。

  2. リージョン制限の確認: サーバーレス計算リソースは順次展開中のため、利用するリージョン(Japan East等)でサポートされているか最新の公式ドキュメントを確認してください。

  3. ネットワーク設計の転換: 「VNet Injection」によるインフラ保護から、Private LinkとNCCを利用した「サービス間通信の保護」へとパラダイムをシフトさせる必要があります。

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

コメント

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