Databricks Azure 노드 할당 설정 점검

Databricks Azure 클러스터의 스팟 VM 사용과 온디맨드 대체 전략을 작업의 중단 허용 범위에 맞추세요.

설명

Databricks Azure 클러스터의 스팟 VM은 비용 효율적이지만 회수될 수 있습니다. 중요한 분석 작업에 사용할 때는 온디맨드 노드와 fallback을 고려해 재실행 비용과 가용성 요구를 함께 관리해야 합니다.

SPOT_AZURE는 first_on_demand 이후의 노드에 적용됩니다. first_on_demand = 1인 예제의 드라이버는 온디맨드이므로 모든 노드가 스팟인 구성은 아닙니다.

잠재적 영향

  • 스팟 자원 회수 시 분석 작업이 중단될 수 있습니다.
  • 공유 클러스터와 예약 작업의 복구가 지연될 수 있습니다.
  • 재시도나 온디맨드 전환으로 비용이 늘어날 수 있습니다.

해결 방법

작업의 중요도에 따라 SPOT_WITH_FALLBACK_AZURE 또는 온디맨드 구성을 선택하세요. 드라이버와 필요한 노드에 온디맨드를 사용하도록 first_on_demand를 검토하고, 자원 회수 후 재시도와 비용을 시험하세요. 자동 종료 시간은 유휴 비용 관리 설정이며 스팟 회수를 막지 않습니다.

예시

다음은 데이터 소스 정의를 생략한 구성 발췌입니다. Databricks provider v1.133.0의 Azure 속성을 사용하며, 변경 전에는 온디맨드 드라이버 다음의 노드를 SPOT_AZURE로 요청합니다.

변경 전

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
  }

  azure_attributes {
    availability           = "SPOT_AZURE"
    first_on_demand        = 1
  }
}

변경 후

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
  }

  azure_attributes {
    availability           = "SPOT_WITH_FALLBACK_AZURE"
    first_on_demand        = 1
  }
}

변경 후에는 스팟 용량을 확보할 수 없을 때 온디맨드로 대체할 수 있습니다. fallback은 자원 확보를 돕지만 이미 실행 중인 작업이 중단되지 않는다는 보장은 아닙니다.

참조