AWS Spot Instance 이해하기

by 멘토사피엔스

클라우드 컴퓨팅은 기업에 유례없는 민첩성과 확장성을 제공하며 IT 환경의 패러다임을 변화시켰습니다. AWS와 같은 클라우드 공급자는 인프라 관리의 부담을 줄여주고, 필요한 만큼만 자원을 사용하는 'Pay-as-you-go' 모델로 초기 비용 장벽을 낮추는 데 기여했습니다.


그러나 이러한 편리함 뒤에는 사용량에 비례하는 클라우드 비용의 복잡성이라는 새로운 과제가 존재합니다. 특히 가장 보편적으로 사용되는 On-Demand 인스턴스는 즉각적인 사용성을 제공하지만, 예측 가능한 워크로드나 대규모 운영 환경에서는 불필요하게 높은 비용을 지불하게 만드는 주범이 되기도 합니다.


이러한 상황에서 클라우드 자원을 최적화하여 재정적 가치를 극대화하는 FinOps(Cloud Financial Operations)는 모든 클라우드 사용자에게 필수적인 역량이 되었습니다. AWS는 이러한 비용 효율성을 지원하기 위해 On-Demand 외에도 Reserved Instance, Savings Plans, 그리고 파격적인 할인을 제공하는 Spot Instance와 같은 다양한 구매 옵션을 제공합니다.


본 글에서는 On-Demand 인스턴스만으로는 해결하기 어려운 비용 최적화의 한계를 명확히 짚어보고, AWS Spot Instance가 어떻게 유휴 컴퓨팅 자원을 활용하여 최대 90%에 이르는 비용 절감 효과를 가져올 수 있는지 알아보겠습니다. Spot Instance의 핵심 특성인 '중단 가능성'을 이해하고, 어떤 워크로드에 가장 적합하며 어떻게 안정적으로 활용할 수 있는지 판단해보고자 합니다.


Spot Instance 이해하기


On-Demand 인스턴스만 사용했을 때의 한계


AWS에서 가장 직관적으로 사용되는 인스턴스 유형은 On-Demand 인스턴스입니다. 예약 없이 필요할 때 바로 생성할 수 있고, 사용한 만큼만 과금되므로 초기 설정이 간편하고 유연성도 높습니다. 그러나 이러한 편의성 뒤에는 상당한 비용 부담이라는 단점이 숨어 있습니다.


시간당 요금이 가장 높습니다. 같은 사양의 인스턴스를 기준으로, On-Demand 인스턴스는 Reserved Instance나 Spot Instance 대비 2~5배 비쌀 수 있습니다.

예측 가능한 부하에도 낭비가 발생합니다. 주간 업무 시간처럼 수요가 일정한 상황에서도 항상 On-Demand를 사용하면, 필요 이상으로 과금을 감수해야 합니다.

비용 최적화 여지가 적습니다. 할인 구조 없이 정가 기준으로 청구되기 때문에, 비용을 줄이기 위한 전략적 여유가 없습니다.


따라서 On-Demand만으로 인프라를 구성하는 것은 편리하지만, 대규모 트래픽이나 상시 운영 환경에서는 매우 비효율적인 선택이 될 수 있습니다. 이 때문에 많은 기업들이 비용 절감을 위해 Spot Instance를 포함한 다양한 인스턴스 믹스 전략을 도입하게 됩니다.


비용 최적화 관점에서 Spot Instance의 의미


Spot Instance는 AWS에서 미사용 EC2 용량을 최대 90% 저렴한 가격에 제공하는 인스턴스 유형입니다. AWS가 실시간으로 여유 리소스를 경매처럼 판매하는 방식으로, 사용자는 더 낮은 가격에 동일한 컴퓨팅 성능을 사용할 수 있습니다.


AWS 입장에서는 유휴 리소스를 활용하고, 사용자 입장에서는 비용을 획기적으로 줄일 수 있는 상호 보완적 모델입니다. 특히 반복적인 작업, 비정기적 배치 처리, 탄력적 아키텍처를 가진 시스템에서 매우 유효한 비용 최적화 수단으로 자리잡고 있습니다.


일정 수준의 중단 허용성을 갖춘 워크로드라면 Spot을 통해 극적인 비용 절감을 실현할 수 있습니다.

Spot Instance의 의미를 비용 최적화 관점에서 보면 다음과 같습니다.


정상가(On-Demand)의 10~30% 수준 가격 : 동일한 EC2 인스턴스라도 Spot을 선택하면 70~90% 비용을 절감할 수 있으며, 장기 실행 시 큰 폭의 예산 절약 효과를 가져옵니다.

선택 가능한 활용 영역이 넓습니다 : 웹 크롤링, 데이터 분석, 대규모 머신러닝 학습, 미디어 렌더링, CI/CD 등 중단되더라도 자동 복구 가능한 워크로드에 적합합니다.

자동 스케일링 및 중단 대응을 위한 전략 수립 가능 : AWS에서는 Spot 중단 알림(2분 전 제공), EC2 Auto Scaling 그룹, Spot Fleet, EC2 Fleet, Spot Capacity Rebalancing 같은 기능을 제공해 안정적 운영을 지원합니다.

예약형/온디맨드와 조합 가능 : 서비스 핵심 노드는 On-Demand나 Reserved로 운영하고, 가변 부하는 Spot으로 처리하면 안정성과 비용 절감을 동시에 달성할 수 있습니다.


즉, Spot Instance는 단순히 “싼 서버”를 넘어서, 아키텍처의 탄력성을 활용해 비용을 전략적으로 절감하는 방식을 의미합니다. 클라우드 인프라가 커질수록 Spot 도입 여부는 전체 운영비용의 수준을 결정짓는 핵심 요소가 됩니다.


AWS가 Spot Instance를 제공하는 이유


AWS는 전 세계 수많은 리전과 가용 영역(AZ)에 걸쳐 막대한 규모의 EC2 인프라를 운영하고 있습니다. 그러나 고객의 사용 패턴은 일정하지 않기 때문에, 항상 일정 비율의 유휴(Idle) 컴퓨팅 자원이 발생합니다.


이러한 유휴 자원을 그대로 두면 수익을 창출하지 못하고 낭비가 되기 때문에, AWS는 이를 Spot Instance라는 형태로 할인된 가격에 제공하여 다음과 같은 이점을 실현합니다.


유휴 자원 수익화

사용되지 않고 놀고 있는 리소스를 저렴하게 제공함으로써, AWS 입장에서도 리소스 활용률을 높이고 수익을 일부라도 회수할 수 있습니다.


클라우드 인프라 활용 효율 향상

유휴 자원이 계속해서 순환되며 필요한 작업에 쓰이도록 만들어 전체 인프라 자원의 효율을 높일 수 있습니다.


고객 확보와 진입 장벽 완화

스타트업이나 비용에 민감한 사용자도 저렴한 가격으로 AWS 서비스를 체험하고 도입할 수 있게 됩니다. 이는 장기적으로 On-Demand나 Reserved 인스턴스로 전환될 가능성을 높이는 마케팅 전략이기도 합니다.


즉, Spot Instance는 AWS가 남는 자원을 ‘중단 가능성’이라는 조건과 맞바꾸어 낮은 가격에 제공함으로써, 유휴 리소스를 효과적으로 활용하는 전략적 서비스입니다. 고객에게는 초저가 인프라 기회를, AWS에게는 활용률과 수익을 동시에 제공하는 윈-윈 구조라 할 수 있습니다.


Spot Instance가 최대 90% 저렴한 이유


Spot Instance는 On-Demand 인스턴스와 동일한 성능과 기능을 제공하면서도, 최대 90%까지 저렴한 가격으로 사용할 수 있습니다. 이 극적인 할인은 아래와 같은 구조적 이유에서 비롯됩니다.


유휴 자원을 활용한 공급 기반 할인

Spot 인스턴스는 AWS가 남는 컴퓨팅 자원을 활용해 제공하는 서비스입니다. 즉, 고객이 사용하지 않는 순간에도 인프라가 놀고 있는 경우, 이를 Spot으로 할인 제공함으로써 잉여 자원으로도 수익을 일부 확보합니다.


중단 가능성 조건을 수반한 가격

Spot Instance는 언제든지 중단될 수 있다는 전제 하에 운영됩니다. 즉, AWS에서 해당 리소스를 회수해야 할 경우(다른 고객의 On-Demand 수요가 발생하면), 2분 전 사전 통보 후 인스턴스를 종료합니다.


자동 가격 조정 시스템

Spot 인스턴스의 가격은 고정된 것이 아니라 수요-공급에 따라 변동되는 동적 요금제입니다. 리전, 가용 영역, 인스턴스 타입에 따라 수시로 조정되며, 일반적으로 지속적으로 저렴한 수준을 유지합니다.


Spot Instance의 핵심 특성


중단 가능성


Spot Instance는 가장 큰 특징으로 언제든지 중단될 수 있다는 조건을 갖고 있습니다. 이는 비용이 저렴한 대신 사용자가 일정 수준의 리스크를 감수해야 한다는 의미이며, 이 구조는 다음과 같은 방식으로 동작합니다.


Spot 인스턴스는 AWS의 유휴 자원을 기반으로 제공되며, 다른 고객이 해당 자원을 On-Demand로 요청하면, AWS는 Spot 인스턴스를 회수(terminate)할 수 있습니다. 즉, Spot은 항상 On-Demand보다 낮은 우선순위를 가지며, 리소스가 부족해지면 가장 먼저 중단 대상이 됩니다.


중단 전 예고 시간

AWS는 Spot 인스턴스를 종료하거나 중단하기 전에 2분간의 사전 알림을 제공합니다. 이 알림은 다음 경로로 전달됩니다.


인스턴스 내부 메타데이터 엔드포인트

CloudWatch Events

Auto Scaling 그룹의 상태 변경 알림 등


이 시간을 활용하여 애플리케이션은 상태 저장, 체크포인트 생성, graceful shutdown 등의 대응이 가능합니다.


중단 유형

Terminate: 인스턴스 완전 종료 (기본값)

Stop: 인스턴스 정지 후 중단 상태로 대기 (EBS 기반만 가능)

Hibernate: RAM 상태까지 보존하고 절전 모드로 진입


Spot 인스턴스 생성 시 중단 시 동작을 설정할 수 있으며, Stop이나 Hibernate는 상태 복원에 유리하지만 약간의 설정 제약과 지연이 수반됩니다.


Spot Instance의 중단 가능성은 일정한 위험 요인이므로, 아래 조건을 만족하는 워크로드에 적합합니다. 따라서 워크로드 적합성 판단은 아래와 같은 시스템 및 구조를 고려하여 선택할 수 있습니다.


중단이 전체 서비스 장애로 이어지지 않는 구조

병렬 작업 또는 일괄 처리(batch) 작업

컨테이너 기반의 빠른 재시작 가능 시스템 (예: ECS, Kubernetes)

자동 복구 전략(ASG, Checkpoint, 스냅샷 등)을 갖춘 환경


스팟 재고 및 가격 변동


Spot Instance는 AWS의 유휴 컴퓨팅 자원을 기반으로 하기 때문에, 수요와 공급에 따라 재고와 가격이 유동적으로 변동됩니다. 이는 Spot의 높은 할인율 뒤에 숨겨진 비예측성 요소이며, 사용자는 이를 이해하고 적절히 대응할 수 있어야 합니다.


Spot Instance는 각 리전 및 가용영역(AZ), 인스턴스 타입별로 AWS가 남는 자원이 있을 때만 제공됩니다. 즉, 특정 시점에 사용 가능한 Spot 인스턴스가 없을 수도 있으며, 인기 있는 인스턴스 타입일수록 재고 경쟁이 치열해질 수 있습니다.


예로 m5.large는 자주 사용되므로 Spot 재고가 부족할 가능성이 큽니다. 반면, 덜 사용되는 c6id.large는 할인율이 높고 지속적으로 제공될 수 있습니다.


Spot Instance의 가격은 고정되어 있지 않으며, 실시간 입찰이 아닌 AWS의 동적 요금 모델에 의해 결정됩니다. 즉 가격이 실시간 수요/공급에 따라 자동 조정되는 방식입니다. 사용자는 입찰 가격을 입력하지 않고 AWS가 내부적으로 정한 “현재 시장 가격”이 존재하며, 그 가격으로 자동 구매됩니다.


공급이 많고 수요가 적을 때는 가격이 매우 낮아지며 최대 90% 저렴해질 수 있습니다. 반대로 공급이 부족하고 수요가 많아지면 가격이 오르거나, 인스턴스가 중단될 수 있습니다.


이러한 특징들로 인해 Spot 요청이 특정 타입, AZ에 고정되어 있으면 재고 부족 시 할당 실패 가능성이 높아집니다. 그리고 갑작스러운 이벤트(예: 블랙 프라이데이, EC2 수요 급증) 시, Spot 가격이 급등하거나 중단이 잦아질 수 있습니다. 따라서 다양한 인스턴스 타입과 AZ를 조합하는 전략(Spot Fleet, EC2 Auto Scaling 그룹 등)이 필요합니다.


가격 변동 예측은 어렵습니다. AWS는 Spot 가격을 예측할 수 있는 공식 API는 제공하지 않지만, Spot Instance Advisor를 통해 각 인스턴스의 중단 빈도와 할인율 정보를 제공합니다. 예를 들어, 중단율이 낮고 할인율이 높은 조합을 선택하면 보다 안정적인 Spot 운영이 가능합니다.


중단 시 처리 방식


Spot Instance는 AWS의 유휴 자원을 기반으로 제공되기 때문에, AWS가 해당 자원을 회수할 필요가 생기면 사전 통보 후 인스턴스를 중단시킵니다. 이때 Spot Instance는 두 가지 방식으로 종료될 수 있습니다.


기본 처리 방식: Terminate (종료)

대부분의 Spot Instance는 중단될 때 즉시 Terminate, 즉 인스턴스가 완전히 삭제됩니다. 이는 일반적인 EC2 Terminate와 동일하게, 인스턴스가 사라지고 로컬 스토리지(Ephemeral)도 함께 제거됩니다.


중단 시 사전 통보는 2분 전에 Instance Action 이벤트로 알리게 됩니다. /spot/termination-time 메타데이터 또는 CloudWatch Event를 통해 감지가 가능합니다. 중단 알림을 받은 후 종료까지의 2분 간 시간 동안 데이터 백업, 알림 전송, 재시작 준비 등 처리가 가능합니다.


이 방식은 일시적인 작업이나 Stateless 환경, 또는 자동 복구가 가능한 아키텍처에 적합합니다.


옵션 설정: Stop (정지) – EBS 기반 인스턴스만 가능

일부 상황에서는 Spot Instance를 중단할 때 Stop(정지) 상태로 설정할 수 있습니다. 이는 인스턴스가 메모리 상태는 초기화되지만, EBS 루트 디스크는 그대로 보존되며 나중에 재시작할 수 있는 상태를 의미합니다.


루트 볼륨이 EBS여야 하며, Spot 요청 생성 시 “Spot Interruption Behavior”를 Stop으로 설정해야 합니다. 가능한 경우에만 Stop이 적용되며, 여전히 일부 상황에서는 Terminate될 수 있습니다.


중단되더라도 데이터를 잃지 않고 재시작 가능해 비용 최적화와 안정성을 동시에 확보할 수 있습니다.


중단 감지 및 대응 자동화의 핵심을 정리하면 아래와 같습니다.

CloudWatch Events 또는 EC2 Instance Metadata의 /spot/termination-time을 모니터링

2분 내에 로그 저장, 작업 중단, 대체 인스턴스 요청 등의 처리를 자동화

Auto Scaling Group과 결합해 중단 시 다른 인스턴스로 자동 대체 가능


언제 Spot을 써야 할까?


Spot Instance는 비용 효율성이 매우 뛰어나지만, 언제든지 중단될 수 있는 특성 때문에 모든 워크로드에 적합하지는 않습니다. 따라서 Spot은 중단 내성이 있는 워크로드에서 활용할 때 가장 이상적입니다. 아래는 Spot Instance에 적합한 대표적인 워크로드 유형입니다.


비동기 배치 처리 (Asynchronous Batch Jobs)

예: 대용량 로그 처리, 이미지/영상 변환, 데이터 ETL 파이프라인

특징: 작업이 한 번에 끝나지 않아도 되며, 중간에 끊겨도 재시작이 가능

이점: 비용을 크게 줄이면서도 반복적인 배치 작업을 처리 가능


머신러닝 학습/훈련 (ML Training)

예: PyTorch, TensorFlow 기반 모델 학습

특징: 장시간 CPU/GPU 자원이 필요한 작업이지만, 대부분 체크포인트 저장이 가능

이점: Spot의 고사양 인스턴스를 활용해 학습 비용을 수십 % 절감

보완책: SageMaker Spot Training 사용 시 자동으로 중단 감지 및 복구 처리


컨테이너 기반 서비스 (EKS, ECS)

예: 마이크로서비스 기반의 웹 백엔드, 이벤트 처리 워커 등

특징: 개별 컨테이너가 중단돼도 다른 인스턴스에서 재시작 가능

이점: Auto Scaling Group + Mixed Instances 전략과 결합하면 안정성과 비용 절감을 동시에 확보

특히 ECS/Fargate Spot 또는 EKS의 NodeGroup에 Spot을 추가해 운영 워크로드의 일부만 Spot으로 구성할 수 있음


CI/CD 빌드 및 테스트 환경

예: GitHub Actions, Jenkins, GitLab CI 등의 테스트/빌드 서버

특징: 일시적이고, 실패 시 재시도 구조로 설계된 자동화된 파이프라인

이점: 온디맨드 대비 최대 90% 절감된 비용으로 테스트 환경 운영 가능


대규모 데이터 분석 작업

예: Apache Spark, Hadoop, EMR 기반 데이터 처리

특징: 분산 처리 구조에서 일부 노드가 사라져도 전체 작업에 치명적 영향을 주지 않음

이점: 분석 비용의 대부분을 차지하는 컴퓨트 비용을 크게 줄일 수 있음


사용 비추천 워크로드


Spot Instance는 중단될 수 있는 특성 때문에 모든 서비스에 적합하지는 않습니다. 특히 다음과 같은 상태 유지형(Stateful) 또는 실시간 의존도가 높은 워크로드에는 사용을 권장하지 않습니다.


상태를 유지해야 하는 데이터베이스 (Stateful DB)

예: MySQL, PostgreSQL, MongoDB 등의 운영 중인 데이터베이스 인스턴스

이유: 인스턴스 중단 시 데이터 손실 또는 무결성 문제 발생 가능

설명: Spot은 언제든지 중단될 수 있으므로, DB 서버처럼 지속적인 데이터 쓰기/읽기가 일어나는 워크로드에는 적합하지 않음

대안: RDS, ElastiCache, Aurora 등 완전 관리형 DB 서비스 사용을 권장


세션 유지 기반 서비스 (Session-dependent Web Services)

예: 사용자 로그인 유지가 필요한 웹 앱, 실시간 채팅 서비스 등

이유: 인스턴스가 예고 없이 중단되면 사용자 경험에 직접적인 영향

설명: 사용자 세션 정보가 특정 인스턴스에 저장되는 경우, Spot이 중단되면 사용자가 갑작스럽게 로그아웃되거나 오류가 발생할 수 있음

해결책: Elastic Load Balancer + 세션 공유(Cache or DB) + 온디맨드 인스턴스 조합이 필요함


고가용성이 절대적으로 필요한 워크로드

예: 실시간 금융 거래 시스템, 의료 시스템, API Gateway 백엔드 등

이유: 예측 불가능한 중단으로 인해 서비스 장애나 신뢰성 문제 발생

설명: 장애를 최소화해야 하는 업무에서는 온디맨드 또는 예약 인스턴스로 안정적인 자원 확보가 필수


결론: Spot Instance, 비용 효율적인 클라우드 운영


AWS Spot Instance는 단순히 '가격이 저렴한' 컴퓨팅 자원을 넘어, 클라우드 인프라 운영 비용을 혁신적으로 절감할 수 있는 핵심 FinOps 전략입니다. On-Demand 인스턴스의 높은 시간당 요금과 예측 가능한 부하에서의 비효율성을 극복하며, AWS의 유휴 컴퓨팅 자원을 활용하여 최대 90%까지 저렴한 가격으로 동일한 성능을 제공합니다.

이는 AWS에게는 유휴 자원 수익화와 인프라 효율 증대라는 이점을, 고객에게는 파격적인 비용 절감 기회를 제공하는 상호 이익의 구조를 만듭니다.


Spot Instance의 가장 큰 특징인 '중단 가능성'은 신중한 접근을 요구하지만, AWS가 제공하는 2분 전 알림 기능과 EC2 Auto Scaling 그룹, Spot Fleet, Spot Capacity Rebalancing과 같은 강력한 관리 도구들을 통해 충분히 예측하고 대응할 수 있습니다.


특히 비동기 배치 처리, 머신러닝 학습, 컨테이너 기반 서비스, CI/CD 환경, 대규모 데이터 분석 작업 등 일정 수준의 중단 내성을 가진 워크로드에 Spot Instance를 전략적으로 적용함으로써, 서비스의 안정성을 크게 해치지 않으면서도 클라우드 컴퓨팅 비용을 획기적으로 줄일 수 있습니다.


반면, 상태를 유지해야 하는 데이터베이스, 세션 의존적인 웹 서비스, 절대적인 고가용성이 요구되는 워크로드에는 Spot Instance 사용을 지양하고 On-Demand 또는 Reserved Instance와 같은 안정적인 옵션을 활용하여 핵심 비즈니스의 연속성을 보장해야 합니다.


클라우드 자원의 특징을 이해하고, 워크로드의 특성에 맞는 최적의 구매 옵션을 선택하며, 중단에 대한 견고한 대응 전략을 마련할 수 있습니다.

keyword
매거진의 이전글APIGateway Cost Explorer 비용 분석