Databricksのクラスタ起動には通常2〜5分かかります。これはクラウドプロバイダーからインスタンスを 新たにプロビジョニング(確保・起動・設定)する時間です。 Instance Poolは、事前にインスタンスを確保しておくことで、クラスタの起動時間を数十秒に短縮する仕組みです。
Instance Poolは「すぐに使えるインスタンスのプール(共有在庫)」です。 クラスタがPoolを使うよう設定されていると、起動時にPoolからアイドルインスタンスを取得して即座にアタッチします。 クラスタ終了時にはインスタンスをPoolに返却し、次のクラスタが再利用できるようにします。
クラスタなし → Pool起動のクラスタを作成
↓
Poolにアイドルインスタンスがある?
├── YES → 数秒で起動(Poolからインスタンスを取得)
└── NO → 通常の起動(クラウドからプロビジョニング、2-5分)
クラスタ終了時
↓
インスタンスをPoolに返却
↓
次のクラスタが再利用可能| パラメータ | 意味 | 推奨設定 |
|---|---|---|
| Min Idle Instances | 常にPoolに確保しておくアイドルインスタンス数 | ピーク時の同時起動クラスタ数を目安に |
| Max Capacity | Poolが保持できるインスタンスの最大数 | コスト上限を考慮して設定 |
| Instance Type | Poolで使用するインスタンスタイプ | ワークロードに応じて選択 |
| Idle Instance Auto-termination | アイドルインスタンスの自動終了時間 | Min Idle分は保持、超過分を自動終了 |
| Preloaded Spark Version | インスタンスに事前ロードするRuntime | 最もよく使うRuntimeバージョンを指定 |
Min Idle Instancesを増やすほど起動が高速になりますが、アイドルインスタンスのクラウドインフラコスト(EC2/VMの時間課金)が発生します。 コストと起動速度のバランスを取ることが重要です。
Instance PoolとCluster Policyを組み合わせるのがベストプラクティスです。 Policyで「このPoolを必ず使う」と強制すれば、ユーザーが勝手に高額インスタンスを直接プロビジョニングすることを防げます。
// Cluster Policy内でPoolを強制
{
"instance_pool_id": {
"type": "fixed",
"value": "pool-12345-abcde"
}
}Instance Poolではスポットインスタンス(AWS Spot / Azure Spot VM)も利用できます。 ドライバーノードはオンデマンド、ワーカーノードはスポットで構成するのが一般的なコスト最適化パターンです。 ただしスポットインスタンスは中断される可能性があるため、中断耐性のあるワークロード(バッチETL)向きです。
| 比較軸 | Poolあり | Poolなし |
|---|---|---|
| 起動時間 | 数秒〜30秒 | 2〜5分 |
| オートスケール追加 | 数秒 | 2〜5分 |
| コスト(アイドル時) | アイドルインスタンス分のインフラ費用あり | なし |
| インスタンスタイプの制御 | Poolで統一 | クラスタごとに自由 |
| 推奨環境 | 本番、頻繁に起動する環境 | 検証、稀にしか使わないクラスタ |
Data Engineer / Administration
問題 1
データエンジニアリングチームから「ジョブクラスタの起動に毎回3分以上かかり、短時間のバッチジョブの実行効率が悪い」という報告があった。起動時間を最小化するための最適な対策はどれか。
正解: A
Instance Poolは事前確保したインスタンスからクラスタを起動するため、起動時間を数秒に短縮できます。Cluster Policyはコスト制限が目的で起動時間には影響しません。実行頻度を下げるのは根本解決ではなく、All-Purpose Clusterの常時起動はコストが高すぎます。
Instance Poolを使うとコストは下がりますか?
直接的なDBUコストは変わりませんが、間接的なコスト削減効果があります。Poolにアイドルインスタンスが確保されているため起動時間が数十秒→数秒に短縮され、ジョブの実行時間が短くなります。またオートスケーリング時の追加ノード投入も高速化されるため、ピーク時の処理遅延が減ります。ただし、Poolに確保されたアイドルインスタンスにはクラウドインフラのコスト(EC2/VMの時間課金)が発生するため、最小インスタンス数の設定は慎重に行う必要があります。
Cluster PolicyとInstance Poolの関係は?
Cluster Policyは「どんなクラスタを作れるか」のルール、Instance Poolは「事前確保したインスタンスの共有プール」です。Policyの中でPoolを指定することで、「このPolicyを使うクラスタは必ずこのPoolのインスタンスを使う」と強制できます。両方を組み合わせるのがベストプラクティスです。
試験でInstance Poolはどう出題されますか?
Data Engineer AssociateおよびAdministration領域で出題されます。「クラスタの起動時間を短縮するには?」→ Instance Pool、「コストを制限するには?」→ Cluster Policy、という使い分けが主な問われ方です。Poolのmin/maxアイドルインスタンス数の意味、Pool内インスタンスの再利用のメリットも出題範囲です。
NicheeLab編集部
データエンジニアリング・クラウド資格の専門家。Databricks・Snowflake等の認定資格を保有し、実務経験に基づいた問題作成・解説を行っています。NicheeLab運営。
Databricks資格一覧|全7試験・難易度・勉強法
Databricks認定資格全7試験の一覧・難易度・出題範囲・合格ラインを徹底解説。2026年最新版の公式試験ガイドに準...
Databricks試験の難易度ランキング|全7資格を徹底比較
Databricks認定全7試験の難易度をランキング形式で徹底比較。合格率・学習時間・出題傾向から難易度を分析。...
Databricks資格の勉強方法|最短合格ルートと学習時間の目安
Databricks認定資格に最短で合格するための勉強方法を完全ガイド。公式リソース・問題集・学習スケジュールを徹底解説...
Databricks Data Engineer Associate完全解説|出題範囲・問題例・合格戦略
Databricks Certified Data Engineer Associate試験を徹底解説。5つの出題ドメイ...
Databricks Data Engineer Professional完全解説|上級試験の攻略法
Databricks Certified Data Engineer Professional試験を徹底解説。10の出題...