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 분산을 잡 단위로 제어하는 웹훅이다.

핵심 메커니즘

  1. 쿠버네티스 웹훅으로 executor Pod 생성을 인터셉트
  2. 잡별 Spot/온디맨드 비율에 따라 각 Pod에 레이블 부여
  3. 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