Spot Instance Management
클라우드 Spot 인스턴스의 비용 절감과 인터럽션 위험을 균형 있게 관리하는 패턴
핵심 개념
클라우드 Spot/Preemptible 인스턴스는 온디맨드 인스턴스 대비 최대 90% 저렴하지만 클라우드 공급자가 언제든 회수할 수 있다. 데이터 엔지니어링에서 Spark, 배치 처리 등의 워크로드에 Spot을 활용하려면 인터럽션 복구 전략과 워크로드 특성에 맞는 Spot 비율 조정이 필요하다.
핵심 위험: 동시 인터럽션
가장 치명적인 시나리오는 같은 잡의 여러 executor가 동일 Spot 인스턴스에 몰렸을 때 인스턴스 회수 시 모든 executor가 동시에 사라지는 것이다. AWS는 2분 경고를 제공하지만, 대규모 장시간 잡에서는 Spark 기본 decommissioning이 불충분하다.
Notion의 Spot Balancer 패턴
Notion이 AWS와 협력하여 오픈소스로 공개한 Spot Balancer는 쿠버네티스 워크로드에서 Spot 분산을 잡 단위로 제어하는 웹훅이다.
핵심 메커니즘
- 쿠버네티스 웹훅으로 executor Pod 생성을 인터셉트
- 잡별 Spot/온디맨드 비율에 따라 각 Pod에 레이블 부여
- Spot executor 손실 시 Spark 네이티브 재시도 메커니즘으로 복구 — 동시 손실로 인한 연쇄 실패 방지
인터페이스 설계
원시 비율값 노출 대신 RELIABILITY_OVER_COST, COST_OVER_RELIABILITY 등 named stability weight 제공 — 인프라 전문 지식 없이 트레이드오프 선택 가능
인프라 스택과의 연계
Spot Balancer는 단독으로 사용하기보다 다음과 조합할 때 효과 극대화:
- Karpenter / EKS Auto Mode: 인스턴스 타입 없이 CPU/메모리 요건만 선언, 동적 프로비저닝
- MostAllocated 스케줄러: 동일 노드에 여러 잡 executor를 bin-packing하여 리소스 효율화
쿼터 관리와 Spot의 조합
Pinterest Piqama처럼 조직 전체의 리소스 쿼터 관리 시스템은 Spot 활용과 결합하여:
- 이력 데이터 기반으로 동적 한도 산정
- 배치 스케줄러와 온라인 서비스에 각각 맞는 시행 전략 적용
- 소비량을 재무 비용과 직접 연결
트레이드오프
| 전략 | 비용 절감 | 신뢰성 | 적합 워크로드 |
|---|---|---|---|
| 100% 온디맨드 | 없음 | 최고 | SLA 엄격한 프로덕션 |
| 혼합 (Spot Balancer) | 60-90% | 높음 | 배치, 데이터 처리 |
| 100% Spot | 최대 | 낮음 | 멱등성 있는 단순 잡 |
연관 개념
Source: Notion - Balancing Cost and Reliability for Spark on Kubernetes, Pinterest - Piqama Pinterest Quota Management Ecosystem