Spot Instance와 Preemptible GPU: AI 비용을 70% 절감하는 방법
2025년 12월 8일 업데이트
2025년 12월 업데이트: 공급 제약이 완화되면서 spot과 on-demand GPU 가격이 크게 수렴했습니다. AWS는 2025년 6월에 on-demand H100 가격을 44% 인하했으며(시간당 약 $3.90), spot 프리미엄 우위가 축소되었습니다. Hyperbolic과 같은 저가 제공업체는 H100을 시간당 $1.49, H200을 시간당 $2.15에 제공하여 전통적인 spot 가격과 경쟁력을 갖추고 있습니다. GPU 렌탈 시장은 33억 4천만 달러에서 339억 달러로 성장하고 있습니다(2023-2032). spot instance는 중단 가능한 워크로드에서 여전히 비용 절감을 제공하지만, 계산 방식이 바뀌었습니다. 이제 on-demand가 더 많은 사용 사례에서 합리적이며, 새로운 저가 클라우드 제공업체들이 전통적인 spot 경제학을 변화시켰습니다.
Spotify는 전체 추천 엔진 훈련 파이프라인을 AWS Spot instance 중심으로 설계하여 머신러닝 인프라 비용을 연간 820만 달러에서 240만 달러로 절감했으며, 중단 가능한 GPU가 프로덕션 AI 워크로드를 처리할 수 있음을 입증했습니다.¹ 하지만 함정이 있습니다: p4d.24xlarge 인스턴스는 AWS가 용량을 다시 필요로 할 때 2분의 경고와 함께 사라지므로, 팀은 5분마다 체크포인트를 저장하고 중요한 작업에 대해 삼중 중복성을 유지해야 합니다. spot instance 오케스트레이션을 마스터한 조직은 on-demand 가격 대비 70-91%의 비용 절감을 달성하지만, 순진하게 배포하는 경우 예상치 못한 종료로 인해 몇 주간의 훈련 진행률을 잃게 됩니다.²
AWS Spot, Google Cloud Preemptible VM, Azure Spot VM은 클라우드 제공업체가 언제든지 사라질 수 있는 초과 용량을 대폭 할인된 가격에 판매하기 때문에 동일한 하드웨어를 제공합니다.³ 8개의 H100 GPU를 탑재한 p5.48xlarge 인스턴스는 on-demand에서 시간당 $98.32이지만 Spot에서는 평균 $19.66입니다. 이는 80% 할인으로 AI 경제학을 변화시킵니다.⁴ 이 모델이 작동하는 이유는 클라우드 제공업체가 유지보수, 장애, 수요 급증을 위해 15-30%의 여유 용량을 유지하면서, 즉시 회수할 권리를 보유하면서 유휴 리소스를 수익화하기 때문입니다.
중단 가능한 GPU 용량의 경제학
클라우드 제공업체는 공급과 수요에 따라 가격이 변동하는 지속적인 경매를 통해 spot instance 가격을 책정합니다. GPU 인스턴스용 AWS Spot 가격은 on-demand 요금보다 70%에서 91% 저렴하며, ml.p4d.24xlarge 인스턴스는 $32.77 on-demand 가격 대비 시간당 $3.90에서 $29.49까지 다양합니다.⁵ Google Preemptible GPU는 고정된 60-80% 할인을 제공하지만 수요와 관계없이 최대 24시간 후에 종료됩니다.⁶ Azure Spot은 청구서 충격을 방지하는 구성 가능한 최대 가격으로 유사한 60-90% 할인을 제공합니다.
가장 큰 할인은 인기가 적은 지역과 오래된 GPU 세대에서 나타납니다. US-West-2 spot 가격은 수요 집중으로 인해 US-East-2보다 20% 높게 운영됩니다. V100 인스턴스는 91% 할인을 달성하는 반면, 새로운 H100은 거의 75% 할인을 초과하지 않습니다. 기업 워크로드가 감소함에 따라 야간 및 주말 기간에 10-15%의 추가 절약을 제공합니다. 스마트 오케스트레이션은 이러한 패턴을 활용하여 비용을 최소화하기 위해 지역과 시간대를 넘나들며 워크로드를 이전합니다.
중단률은 인스턴스 유형, 지역, 시간에 따라 극적으로 다양합니다. 1천만 spot instance 시간 분석에 따르면:⁷
- A100 인스턴스: 시간당 2.3% 중단률
- V100 인스턴스: 시간당 0.8% 중단률
- H100 인스턴스: 시간당 4.1% 중단률
- 주말 중단률: 평일보다 40% 낮음
- US-East-1: US-West-2보다 3배 높은 중단률
spot instance에서 번영하는 워크로드 패턴
특정 AI 워크로드는 자연스럽게 spot instance 모델에 적합합니다:
하이퍼파라미터 튜닝: 파라미터 공간의 병렬 탐색은 개별 작업 실패를 허용합니다. 각 실험은 독립적으로 실행되므로 중단은 단일 구성에만 영향을 미칩니다. Optuna와 Ray Tune은 spot instance 장애를 자동으로 처리하여 종료된 작업을 새 인스턴스에서 재시작합니다.⁸ 조직들은 spot instance만을 사용한 하이퍼파라미터 검색에서 75%의 비용 절감을 보고합니다.
배치 추론: 수백만 개의 이미지나 문서 처리가 많은 인스턴스에 분산됩니다. 작업 큐는 완료된 항목과 대기 중인 항목을 추적합니다. 중단은 단순히 미완성 작업을 큐로 반환합니다. 자동 스케일링 그룹이 교체 인스턴스를 자동으로 시작합니다. Netflix는 spot instance를 사용하여 매일 1억 개의 썸네일을 처리하며 연간 320만 달러를 절약합니다.⁹
데이터 전처리: 훈련 데이터용 ETL 파이프라인은 spot 용량의 혜택을 받습니다. Apache Spark와 같은 프레임워크는 진행 상황을 자동으로 체크포인트합니다. 중단된 작업은 새 인스턴스의 체크포인트에서 재개됩니다. 대부분의 전처리의 무상태 특성이 spot instance를 이상적으로 만듭니다. Uber의 특성 엔지니어링 파이프라인은 90%가 spot instance에서 실행됩니다.¹⁰
개발 및 테스트: 비프로덕션 환경은 중단을 우아하게 허용합니다. 개발자들은 실험 중 가끔의 중단을 예상합니다. 비용 절감으로 더 큰 개발 클러스터가 가능합니다. CI/CD 파이프라인은 실패한 작업을 자동으로 재시도합니다. GitHub Actions는 spot runner에 대해 70% 낮은 가격을 제공합니다.¹¹
체크포인팅을 활용한 분산 훈련: 적절한 체크포인팅 전략으로 대형 모델 훈련이 가능해집니다. 10-30분마다 모델 상태를 내구성 있는 저장소에 저장합니다. 인스턴스 변동 중 효과적인 배치 크기를 유지하기 위해 그래디언트 누적을 사용합니다. 사용 가능한 인스턴스에 맞게 조정되는 탄력적 훈련을 구현합니다. OpenAI는 초기 GPT 모델을 60% spot instance를 사용하여 훈련했습니다.¹²
중단 처리 전략
성공적인 spot instance 사용에는 정교한 중단 관리가 필요합니다:
체크포인팅 프레임워크: 정기적인 간격으로 자동 체크포인팅을 구현합니다. PyTorch Lightning은 구성 가능한 체크포인트 빈도로 내장된 spot instance 지원을 제공합니다.¹³ 모델 가중치와 함께 옵티마이저 상태, 학습률 스케줄, 무작위 시드를 저장합니다. 내구성을 위해 객체 저장소에 체크포인트를 저장합니다. 새 인스턴스에서 훈련을 원활하게 재개합니다.
인스턴스 다양화: 여러 인스턴스 유형, 가용 영역, 지역에 워크로드를 분산합니다. AWS Spot Fleet은 다양한 용량 풀을 자동으로 관리합니다.¹⁴ 가용성을 최대화하기 위해 10-15개의 다른 인스턴스 유형을 구성합니다. 더 나은 가용성을 위해 약간 비최적의 인스턴스를 허용합니다. 원활한 전환을 위해 20%의 용량 버퍼를 유지합니다.
우아한 종료 핸들러: AWS는 인스턴스 메타데이터 서비스를 통해 2분의 종료 알림을 제공합니다. Google은 30초의 Preemptible 경고를 제공합니다. 종료 알림 시 즉시 체크포인팅을 트리거하는 시그널 핸들러를 구현합니다. 종료 전에 로그와 메트릭을 플러시합니다. 고아 비용을 방지하기 위해 임시 리소스를 정리합니다.
하이브리드 아키텍처: 중요한 구성 요소에 대해 spot instance를 on-demand 용량과 결합합니다. 워커는 spot을 사용하는 동안 파라미터 서버는 on-demand에서 실행합니다. 안정적인 인스턴스에서 최소 실행 가능한 용량을 유지합니다. 추가 처리량을 위해 spot으로 버스트합니다. 가격 및 가용성 신호를 기반으로 spot 용량을 확장합니다.
큐 기반 아키텍처: 메시지 큐를 사용하여 작업 스케줄링과 실행을 분리합니다. Amazon SQS 또는 Apache Kafka가 대기 중인 작업을 추적합니다. 워커는 사용 가능할 때 작업을 가져옵니다. 완료된 작업은 영구 저장소를 업데이트합니다. 실패한 작업은 재시도를 위해 큐로 반환됩니다.
프로덕션 시스템을 위한 구현 패턴
프로덕션 등급 spot instance 배포는 입증된 패턴을 따릅니다:
멀티 리전 오케스트레이션:
# Kubernetes Spot Instance 구성
apiVersion: v1
kind: NodePool
spec:
spotInstances:
enabled: true
maxPrice: 0.50 # 최대 시간당 가격
regions:
- us-east-1
- us-west-2
- eu-west-1
instanceTypes:
- g5.xlarge
- g5.2xlarge
- g4dn.xlarge
diversificationStrategy: lowestPrice
onDemandBaseCapacity: 2
spotInstancePools: 10
체크포인트 관리: ```python class SpotTraining: def init(self): self.checkpoint_frequency = 600 # 10분 self.s3_bucket = "checkpoints"
def train(self):
if self.detect_termination_notice():
self.emergency_checkpoint()
self.graceful_shutdown()
if time.time() - self.last_checkpoint > self.checkpoint_frequency: