Databricks AWS 노드 할당 설정 점검

Databricks AWS 클러스터의 스팟 노드, 온디맨드 노드와 가용 영역 선택이 작업의 복구 요구에 맞는지 확인하세요.

설명

Databricks AWS 클러스터의 스팟 노드는 회수될 수 있어 작업이 중단되거나 다시 실행될 수 있습니다. 온디맨드 노드 수와 fallback 사용 여부를 작업의 중요도와 중단 허용 범위에 맞춰 결정해야 합니다.

availability는 first_on_demand로 지정한 온디맨드 노드 이후의 노드에 적용됩니다. 따라서 SPOT만으로 모든 노드가 스팟이라고 판단할 수는 없습니다.

잠재적 영향

  • 스팟 회수로 작업이 중단되거나 재시작될 수 있습니다.
  • 배치 처리나 공유 분석 환경의 복구 시간이 늘어날 수 있습니다.
  • 온디맨드 전환이나 재처리로 예상 비용이 달라질 수 있습니다.

해결 방법

중단을 허용하기 어려운 작업에는 온디맨드 노드를 사용하거나 SPOT_WITH_FALLBACK을 검토하세요. 드라이버를 온디맨드로 유지하려면 first_on_demand를 1 이상으로 설정하고, 가용 영역과 복구 절차를 함께 확인하세요. fallback도 작업의 무중단 실행을 보장하지 않으므로 비용과 재시도 동작을 시험하세요.

예시

다음은 데이터 소스 정의를 생략한 클러스터 구성 발췌입니다. 두 예제 모두 first_on_demand = 1이므로 드라이버는 온디맨드이고, 변경 전에는 나머지 노드에 SPOT을 사용합니다.

변경 전

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
  }

  aws_attributes {
    availability           = "SPOT"
    zone_id                = "auto"
    first_on_demand        = 1
    spot_bid_price_percent = 100
  }
}

변경 후

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
  }

  aws_attributes {
    availability           = "SPOT_WITH_FALLBACK"
    zone_id                = "auto"
    first_on_demand        = 1
    spot_bid_price_percent = 100
  }
}

변경 후에는 스팟 자원을 확보하지 못할 때 온디맨드로 대체할 수 있습니다. zone_id = "auto"는 시작할 가용 영역을 자동으로 선택하는 설정이며, 실행 중인 클러스터를 여러 가용 영역에 분산하는 설정은 아닙니다.

참조