Databricks GCP のノード割り当て設定の確認

Databricks GCP クラスターのプリエンプティブルノードと代替容量を復旧要件に合わせてください。

説明

Databricks GCP クラスターのプリエンプティブルインスタンスは回収されることがあり、処理の中断や再処理が必要になる場合があります。費用削減だけでなく、中断の許容範囲、オンデマンドノード、フォールバックの方針も考慮する必要があります。

想定される影響

  • インスタンスの回収で実行中の処理が中断することがあります。
  • クラスターの復旧や再処理にかかる費用が増えることがあります。
  • 本番の分析処理の完了時刻が予測しにくくなることがあります。

対処方法

ワークロードの要件に応じて PREEMPTIBLE_WITH_FALLBACK_GCP または ON_DEMAND_GCP を選択してください。対応する provider バージョンで first_on_demand に必要なオンデマンドノード数を指定し、回収後の復旧と費用をテストしてください。フォールバックや自動終了の設定だけでは、無停止の実行を保証できません。

例

以下はデータソース定義を省略した Databricks provider v1.133.0 の設定例です。変更前は PREEMPTIBLE_GCP を使い、オンデマンドノード数を明示していません。

変更前

hcl
resource "databricks_cluster" "example" {
  cluster_name            = "data"
  spark_version           = data.databricks_spark_version.latest.id
  node_type_id            = data.databricks_node_type.smallest.id
  autotermination_minutes = 20

  autoscale {
    min_workers = 1
    max_workers = 50
  }

  gcp_attributes {
    availability = "PREEMPTIBLE_GCP"
    zone_id      = "AUTO"
  }
}

変更後

hcl
resource "databricks_cluster" "example" {
  cluster_name            = "Shared Autoscaling"
  spark_version           = data.databricks_spark_version.latest.id
  node_type_id            = data.databricks_node_type.smallest.id
  autotermination_minutes = 20

  autoscale {
    min_workers = 1
    max_workers = 50
  }

  gcp_attributes {
    availability           = "PREEMPTIBLE_WITH_FALLBACK_GCP"
    zone_id                = "AUTO"
    first_on_demand        = 1
  }
}

変更後は first_on_demand = 1 によりドライバーをオンデマンドに配置し、プリエンプティブル容量を確保できない場合は残りのノードをオンデマンドに切り替えられます。zone_id = "AUTO" は一つの可用性ゾーンを自動選択する設定であり、ノードを複数のゾーンに分散する設定ではありません。

参考資料