Cloud

AWS Spot Instances

Vince_rf 2024. 10. 10. 03:58

Spot 인스턴스는 AWS EC2에서 제공하는 클라우드 컴퓨팅 인스턴스의 한 종류로, 사용하지 않는 EC2 컴퓨팅 용량을 저렴하게 구매할 수 있는 방식입니다. 기본적으로 AWS는 정해진 가격에 인스턴스를 제공하는 온디맨드 인스턴스가 있지만, Spot 인스턴스는 사용하지 않는 여유 용량을 경매처럼 제공해 더 저렴하게 사용할 수 있게 해줍니다.

Spot 인스턴스의 특징:

  1. 저렴한 비용: Spot 인스턴스는 온디맨드 인스턴스에 비해 최대 90% 저렴하게 사용할 수 있습니다. 가격은 AWS의 가용 용량에 따라 변동되며, 여유 용량이 많을수록 더 저렴해집니다.
  2. 일시적 사용: Spot 인스턴스는 AWS의 여유 용량에 기반하기 때문에 언제든지 종료될 수 있습니다. 사용 중이던 인스턴스가 AWS에서 더 이상 여유가 없을 경우 중단될 수 있으며, 이에 대비해 애플리케이션이 중단을 견딜 수 있어야 합니다.
  3. 주로 사용되는 경우:
    • 대규모 연산 작업: 데이터 분석, 배치 작업, 비디오 렌더링 등 중단에 덜 민감한 작업.
    • 비용 절감이 중요한 경우: 예산이 제한적이고, 인스턴스가 종료될 때 애플리케이션이 다시 시작될 수 있는 구조일 때.
    • 스케일 아웃 시스템: 중단이 허용되는 확장 가능한 시스템 (예: Kubernetes 클러스터에서 워커 노드로 사용).
  4. 종료 알림: AWS는 Spot 인스턴스를 종료하기 2분 전에 알림을 제공하므로, 애플리케이션에서 이 알림을 받아 처리할 수 있는 구조를 마련하면 데이터를 저장하거나 적절한 마무리를 할 수 있습니다.

Spot 인스턴스의 사용 사례:

  • Kubernetes 클러스터: Spot 인스턴스는 Karpenter나 AWS의 자동 스케일러와 같은 도구를 사용하여 비용 효율적인 워크로드 처리를 할 수 있습니다. 노드가 중단되면 새 노드가 자동으로 생성되어 작업이 지속됩니다.
  • 빅데이터 분석: 비용 절감이 중요한 대규모 데이터 분석 작업에 자주 사용됩니다.
  • CI/CD 파이프라인: 테스트 및 배포 같은 일시적인 작업에 적합합니다.

요약하자면, Spot 인스턴스는 비용을 절감할 수 있는 큰 장점이 있지만, 안정적으로 사용할 수 없기 때문에 항상 중단에 대비한 설계가 필요합니다.

 

Spot 인스턴스가 **"여유 용량에 기반해서 종료된다"**는 의미는 AWS가 보유하고 있는 EC2 인스턴스의 가용 용량이 줄어들면, Spot 인스턴스를 더 이상 제공할 수 없게 된다는 뜻입니다. AWS는 데이터 센터에서 EC2 인스턴스를 여러 용도로 사용하고, 그 중 일부는 온디맨드 인스턴스나 예약 인스턴스로 이미 예약된 상태입니다. **남은 용량(여유 용량)**을 Spot 인스턴스로 저렴하게 제공하는 것입니다.

종료 상황의 예시:

  1. 여유 용량이 충분할 때: AWS는 사용되지 않는 여유 용량을 Spot 인스턴스로 제공하고, 이를 구매한 사용자는 저렴한 비용으로 인스턴스를 사용할 수 있습니다.
  2. 여유 용량이 줄어들 때: 다른 사용자가 온디맨드 인스턴스를 대규모로 요청하거나 예약 인스턴스 수요가 늘어날 경우, AWS의 가용 용량이 감소하게 됩니다. 이때 Spot 인스턴스를 유지할 수 있는 여유가 없어지면, AWS는 Spot 인스턴스를 중단해야 합니다.
  3. 종료 알림: AWS는 여유 용량이 줄어 Spot 인스턴스를 더 이상 유지할 수 없을 때, Spot 인스턴스를 중단하기 2분 전에 알림을 제공합니다. 이를 통해 사용자는 작업을 저장하거나 적절한 종료 조치를 할 수 있습니다.

Spot 인스턴스가 종료되는 이유:

  • AWS의 온디맨드 고객이나 예약 인스턴스 사용자가 증가하여 EC2 용량이 부족할 경우, Spot 인스턴스가 우선적으로 종료됩니다.
  • Spot 인스턴스는 AWS의 남는 용량을 기반으로 제공되기 때문에, 더 높은 우선순위를 가진 인스턴스들이 수요를 채우는 상황이 발생하면 Spot 인스턴스는 계속 사용할 수 없게 됩니다.

왜 여유 용량을 기반으로 제공하나?

AWS는 특정 시간대나 특정 리전에서 EC2 용량을 항상 최대로 사용하지 않기 때문에, 사용되지 않는 용량을 Spot 인스턴스로 제공하여 자원 활용률을 높이고 동시에 사용자에게 저렴한 옵션을 제공하려는 목적이 있습니다.

이 때문에 Spot 인스턴스는 저렴하지만, 언제든지 종료될 가능성이 있는 일종의 "임시 자원"입니다. Spot 인스턴스가 필요 없을 때는 종료되고, 다시 여유 용량이 생기면 새로 제공될 수 있습니다.

 

 

TerraForm 사용 예시

capacity_type        = "SPOT"



 

AWS에서 제공하는 인스턴스 타입에는 이런 신기한 유형도 있었구나

'Cloud' 카테고리의 다른 글

EBS 최적화 (EBS-Optimized)  (0) 2024.10.10
Amazon VPC CNI  (5) 2024.10.10
AWS CoreDNS  (2) 2024.10.10
[AWS] AWS CLI 설치  (0) 2024.10.09
[VPC] 서브넷 로드밸런서 태그  (0) 2024.09.20