Databricks

Databricks Compute Access Modesを正しく選ぶ: Single User / Shared / No Isolation

2026-03-26
更新: 2026-03-27
NicheeLab編集部

Databricksのクラスタ(Compute)を作成する際、最初に選択を求められるのがAccess Modeです。 Access Modeはクラスタの分離レベルとUnity Catalog対応を決定し、一度起動すると変更できません。 選択を誤ると「Unity CatalogのテーブルにアクセスできないMLプロジェクトのクラスタ」や 「セキュリティ監査に引っかかる共有クラスタ」が生まれるため、管理者・開発者の双方が正しく理解すべきトピックです。

この記事では、3つのAccess Mode(Single User / Shared / No Isolation Shared)の技術的な違いを 比較表で整理し、Unity Catalog環境での推奨構成、ジョブクラスタと対話型クラスタの使い分け、 そしてDatabricks認定試験で出題されるパターンを網羅します。

3つのAccess Modeの概要

Databricksのクラスタには3種類のAccess Modeがあります。それぞれのモードはプロセス分離の強度が異なり、 使える機能と制約も変わります。

  • Single User Mode: 1人のユーザーまたは1つのService Principalがクラスタを排他的に使用する。 最も制約が少なく、すべてのDatabricks機能が利用可能。Unity Catalog対応。
  • Shared Mode: 複数ユーザーが同一クラスタを共有する。プロセスレベルの分離が行われ、 各ユーザーのコードは他ユーザーから隔離される。Unity Catalog対応。ただし機能制約あり。
  • No Isolation Shared Mode: 複数ユーザーが同一プロセス空間でコードを実行する。 分離なし。Unity Catalog非対応。新規環境では非推奨。

3モード比較表

比較項目Single UserSharedNo Isolation Shared
Unity Catalog対応対応対応非対応
同時利用ユーザー数1人(排他利用)複数人複数人
プロセス分離排他のため分離不要プロセスレベル分離あり分離なし(同一プロセス)
対応言語Python / SQL / Scala / RPython / SQL / Scala(制約あり)Python / SQL / Scala / R
RDD API利用可能利用不可利用可能
カスタムライブラリ制約なし(pip/conda/jar)ノートブックスコープのみ制約なし
init scriptsすべて利用可能制限あり(global init scriptsのみ)すべて利用可能
MLランタイム対応非対応対応
UDF(ユーザー定義関数)Python / Scala UDF利用可能Python UDFのみ(制約つき)Python / Scala UDF利用可能
Spark Config カスタム自由に設定可能一部制限あり自由に設定可能
テーブルACL(レガシー)非対応非対応有効化可能
セキュリティ推奨度高(排他利用で安全)高(プロセス分離あり)低(分離なし・非推奨)

Single User Mode の詳細

Single User Modeはクラスタ作成時に「割り当てるユーザー」を1人指定し、そのユーザーだけがクラスタを利用できます。 他のユーザーがアタッチしようとするとエラーになります。

排他利用のためプロセス分離は不要で、RDD API、カスタムJARライブラリ、init scripts、 MLランタイム(GPU含む)など、Databricksの全機能を制約なく使用できます。 Unity Catalog環境では、Single User Modeが最も推奨される選択肢です。

Single User Modeのコスト上のトレードオフは「クラスタの共有ができない」点です。 10人のチームが同時作業するとき、全員がSingle Userクラスタを起動するとクラスタ数が10台に膨らみます。 この課題はクラスタポリシーでインスタンスタイプやオートターミネーション時間を制限し、 さらにServerless Computeを活用することで緩和できます。

Shared Mode の詳細と制約

Shared Modeは複数ユーザーが1つのクラスタを共有しつつ、プロセスレベルの分離で安全性を確保します。 Unity Catalogにも対応しているため、コスト効率を重視する対話型ワークロードに適しています。

ただし、プロセス分離のために以下の機能制約があります。

  • RDD APIが利用不可: DataFrame APIのみ。レガシーなRDDコードの実行は不可
  • MLランタイム非対応: ML系ライブラリ(mlflow.pyfunc、分散学習など)のためのMLクラスタはSingle User Modeが必須
  • init scriptsの制限: クラスタスコープのinit scriptsは利用不可。管理者が設定したglobal init scriptsのみ
  • カスタムライブラリの制限: クラスタレベルのライブラリインストールは不可。ノートブック内の%pip installのみ
  • Spark Configの制限: セキュリティに影響するSpark設定の変更は制限される

Shared Modeは「SQLアナリストが中心のチーム」「コスト効率を最優先する軽量な探索分析」に適しています。 機械学習やRDDベースの処理が必要な場合はSingle User Modeを選択してください。

No Isolation Shared Mode(非推奨)

No Isolation Shared Modeは複数ユーザーが同一のJVMプロセス内でコードを実行するため、 ユーザー間のデータ分離が一切ありません。あるユーザーのPythonコードが他ユーザーの変数空間にアクセスしたり、 環境変数に設定された認証情報を読み取ったりするリスクがあります。

Unity Catalogでは細粒度のアクセス制御(テーブルごとのGRANT/REVOKE)を行いますが、 No Isolation Modeではプロセスレベルの分離がないため、Unity Catalogの権限境界を維持できません。 そのためUnity Catalog非対応であり、Databricksは新規環境での利用を推奨していません。

既存のNo Isolation Shared Modeクラスタを運用している場合、以下の移行パスが推奨されます。

  • MLワークロード → Single User Mode + MLランタイムへ移行
  • SQL/軽量分析 → Shared Modeへ移行
  • RDDコード → Single User Mode + DataFrame APIへのリライト検討

ジョブクラスタ vs 対話型クラスタでの選択ガイド

ユースケースクラスタ種別推奨Access Mode理由
本番ETLジョブJob ClusterSingle User(SP指定)Service Principalの排他利用でセキュリティ・監査性が最も高い
開発用ノートブック(ML)All-PurposeSingle UserMLランタイム・RDD・カスタムライブラリを全て利用可能
アナリスト向け共有All-PurposeSharedSQL中心でコスト効率を重視。複数人で1クラスタを共有
SQL WarehouseSQL Warehouse(固有のAccess Mode)SQL Warehouseは専用のアクセス制御モデルで動作
レガシーRDDパイプラインAll-PurposeSingle UserRDD APIはShared Modeで使えないため

Unity Catalog前提でのベストプラクティス

Unity Catalogを有効化した環境では、Access Modeの選択がデータガバナンスの基盤になります。 以下の設計原則を推奨します。

  • デフォルトはSingle User Mode: Cluster Policyで新規クラスタのAccess ModeをSingle Userに固定し、 ユーザーが意図せずNo Isolationクラスタを作成するのを防止する
  • Shared Modeは限定利用: SQLアナリストチームなど、RDD/MLが不要なグループだけにShared Mode用のPolicyを割り当てる
  • No Isolation Shared Modeの新規作成を禁止: Cluster Policyでaccess_modeをfixed値に設定し、No Isolationの選択肢を排除する
  • ジョブクラスタはService Principal + Single User: 人間のユーザーではなくService Principalをクラスタに割り当て、 最小権限で本番ジョブを実行する
# Cluster PolicyでAccess Modeを制限する定義例
{
  "spark_conf.spark.databricks.cluster.profile": {
    "type": "fixed",
    "value": "singleNode",
    "hidden": true
  },
  "access_mode": {
    "type": "allowlist",
    "values": ["SINGLE_USER", "USER_ISOLATION"],
    "defaultValue": "SINGLE_USER"
  }
}

試験で問われるポイント

Access Modesは Data Engineer Associate、Platform Administration 関連のドメインで出題されます。 以下のパターンを整理しておきましょう。

  • 「Unity CatalogのテーブルにアクセスするにはどのAccess Modeが必要か」→ Single User または Shared(No Isolationは不可)
  • 「MLランタイムを使うにはどのAccess Modeが必要か」→ Single User Mode のみ
  • 「RDD APIを使えるAccess Modeはどれか」→ Single User または No Isolation Shared(Sharedでは不可)
  • 「複数ユーザーが安全にクラスタを共有するにはどのモードか」→ Shared Mode(プロセス分離あり)
  • 「クラスタのAccess Modeは起動後に変更できるか」→ 変更不可。新しいクラスタを作り直す必要がある

問題で確認

Data Engineer / Administration

問題 1

データサイエンスチームがUnity Catalogに登録されたテーブルを使ってMLモデルをトレーニングしたい。MLランタイム(DBR ML)を使用し、カスタムPythonライブラリとRDD APIも必要である。管理者が設定すべきクラスタのAccess Modeとして最も適切なものはどれか。

  1. Single User Modeで、データサイエンティストのユーザーを割り当てる
  2. Shared Modeで、チーム全員が同一クラスタを共有する
  3. No Isolation Shared Modeで、全機能を制約なく利用する
  4. Access Modeを指定せずにクラスタを作成し、デフォルト設定を使用する

正解: A

MLランタイム・RDD API・カスタムライブラリの3要件をすべて満たすのはSingle User Modeのみです。Shared ModeはRDD APIとMLランタイムが非対応のため不適格。No Isolation Shared ModeはUnity Catalog非対応のため、Unity Catalogのテーブルにアクセスできません。Access Modeを指定しないクラスタは存在せず、作成時に必ず選択が必要です。

よくある質問

Single User ModeとShared Modeの最大の違いは何ですか?

Single User Modeはクラスタを1ユーザー(または1 Service Principal)が排他的に使用し、RDD API・カスタムライブラリ・init scriptsを含むすべての機能を利用できます。一方、Shared Modeは複数ユーザーが同一クラスタを共有しますが、RDD APIが使えず、MLランタイムが非対応で、init scriptsにも制限があります。Unity Catalog環境ではSingle User Modeが推奨されます。

No Isolation Shared Modeはなぜ非推奨になったのですか?

No Isolation Shared Modeは複数ユーザーが同一プロセス空間でコードを実行するため、あるユーザーのコードが他ユーザーの変数や認証情報にアクセスできるリスクがあります。Unity Catalogではプロセス分離が必須のため、No Isolation Shared ModeはUnity Catalog非対応です。Databricksは新規環境での使用を推奨しておらず、既存環境でもSharedまたはSingle Userへの移行を推奨しています。

ジョブクラスタのAccess Modeはどう選ぶべきですか?

ジョブクラスタはデフォルトでSingle User Modeが割り当てられ、ジョブオーナーまたは指定したService Principalが排他利用します。ジョブは非対話的に1タスクずつ実行するため、複数ユーザーの共有が不要であり、Single User Modeが最適です。Unity Catalogのテーブルにアクセスするジョブは必ずSingle UserまたはShared Modeのクラスタが必要です。

この記事で学んだ内容を問題で確認しましょう

16,000問以上の問題で実力チェック

無料で問題を解いてみる
この記事の著者

NicheeLab編集部

データエンジニアリング・クラウド資格の専門家。Databricks・Snowflake等の認定資格を保有し、実務経験に基づいた問題作成・解説を行っています。NicheeLab運営。


関連記事
Databricks

Databricks資格一覧|全7試験・難易度・勉強法

Databricks認定資格全7試験の一覧・難易度・出題範囲・合格ラインを徹底解説。2026年最新版の公式試験ガイドに準...

Databricks

Databricks試験の難易度ランキング|全7資格を徹底比較

Databricks認定全7試験の難易度をランキング形式で徹底比較。合格率・学習時間・出題傾向から難易度を分析。...

Databricks

Databricks資格の勉強方法|最短合格ルートと学習時間の目安

Databricks認定資格に最短で合格するための勉強方法を完全ガイド。公式リソース・問題集・学習スケジュールを徹底解説...

Databricks

Databricks Data Engineer Associate完全解説|出題範囲・問題例・合格戦略

Databricks Certified Data Engineer Associate試験を徹底解説。5つの出題ドメイ...

Databricks

Databricks Data Engineer Professional完全解説|上級試験の攻略法

Databricks Certified Data Engineer Professional試験を徹底解説。10の出題...

Databricksの記事一覧 (105件)
© 2026 NicheeLab All rights reserved.