설명
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"는 시작할 가용 영역을 자동으로 선택하는 설정이며, 실행 중인 클러스터를 여러 가용 영역에 분산하는 설정은 아닙니다.