본문으로 건너뛰기

스팟 GPU

스팟 GPU이란?

스팟 GPU은 유휴 GPU 자원을 활용하여 대폭 할인된 가격으로 제공되는 요금제 입니다. 온디맨드 대비 최대 50% 할인된 가격으로 GPU 자원을 이용할 수 있습니다.

단, 자원 상황에 따라 가상 머신이 회수될 수 있으며, 가격이 변경될 수 있습니다.

주요 특징

항목내용
가격온디맨드 대비 대폭 할인 (할인율은 변동 가능)
회수 사전 알림종료 1~2분 전 메타데이터 API로 확인 가능
대상 자원GPU 인스턴스
상시 가동 (Always On)사용 불가

스팟 GPU 생성하기

  1. 컴퓨트 > 가상 머신 > 가상 머신 만들기로 이동합니다.
  2. 기본 설정 단계에서 가격 유형스팟으로 선택합니다.
  3. 인스턴스 유형을 선택합니다.
    • 각 인스턴스 유형 옆에 현재 가용 상태가 표시됩니다.
    • "현재 사용 가능"으로 표시된 인스턴스 유형만 생성할 수 있습니다.
  4. 나머지 설정을 완료하고 가상 머신을 생성합니다.
노트

스팟 GPU은 상시 가동(Always On) 옵션을 사용할 수 없습니다. 스팟 선택 시 해당 옵션은 자동으로 비활성화됩니다.

가용 자원 확인하기

스팟 자원의 가용 상태를 확인하는 방법은 두 가지입니다.

1. 가상 머신 생성 화면

스팟 가격 유형을 선택하면 인스턴스 유형 목록에서 각 유형별 가용 수량을 확인할 수 있습니다.

2. 인프라 > 리소스 현황 > 스팟 탭

모든 스팟 인스턴스 유형의 가용 상태를 한눈에 확인할 수 있습니다.

상태설명
현재 사용 가능자원이 확보되어 가상 머신을 생성하거나 실행할 수 있습니다.
현재 자원 부족자원이 부족하여 생성 및 실행이 불가합니다. 잠시 후 다시 확인해 주세요.
정보

스팟 자원은 유휴 GPU를 활용하므로, 가용 상태가 수시로 변동될 수 있습니다.

스팟 GPU 실행/중지

  • 실행: 가용 자원이 있을 때만 실행할 수 있습니다. 자원이 부족하면 실행 버튼이 비활성화되며, 가상 머신 상세 페이지에 안내 메시지가 표시됩니다.
  • 중지: 일반 가상 머신과 동일하게 중지할 수 있습니다.

가격 안내

  • 스팟 가격은 가상 머신 실행 시점에 적용됩니다.
  • 가상 머신을 재실행하면 변경된 가격이 적용될 수 있습니다.
  • 요금은 시간당 단가로 표시되며, 실제 사용 시간(초 단위)에 따라 정산됩니다.

회수 (Reclamation)

스팟 GPU은 자원 상황에 따라 회수될 수 있습니다.

회수 프로세스

  1. 회수가 결정되면 메타데이터 API를 통해 종료 예정 시각이 제공됩니다.
  2. 1~2분의 유예 시간 후 가상 머신이 강제 종료됩니다.

회수 감지 방법 (메타데이터 API)

가상 머신 내부 터미널(SSH 또는 웹 콘솔)에서 아래 명령어를 실행하여 회수 예정 여부를 확인할 수 있습니다.

curl -s --unix-socket /run/eci-guest-agent.sock http://localhost/vm/metadata?key=spot_termination_time

응답 예시:

  • 회수가 예정되지 않은 경우: 404 page not found
  • 회수가 예정된 경우: 종료 액션과 예정 시각 반환
"2026-04-08T05:00:00+00:00"

이 API를 주기적으로 폴링하여 회수를 사전에 감지할 수 있습니다.

중요한 작업은 주기적으로 체크포인트를 저장하고, 회수 알림 수신 시 즉시 데이터를 저장하세요.

체크포인트 저장 가이드

스팟 GPU은 언제든 회수될 수 있으므로, 중요한 작업 상태를 주기적으로 저장해두는 것이 좋습니다.

1. 회수 감지 스크립트

가상 머신 내부에서 아래 스크립트를 백그라운드로 실행하면, 회수 알림 수신 시 자동으로 체크포인트를 저장할 수 있습니다.

#!/bin/bash
# spot_watcher.sh — 회수 감지 시 체크포인트 저장

while true; do
HTTP_CODE=$(curl -s -o /tmp/spot_response -w "%{http_code}" \
--unix-socket /run/eci-guest-agent.sock http://localhost/vm/metadata?key=spot_termination_time)
if [ "$HTTP_CODE" -eq 200 ]; then
echo "회수 알림 수신: $(cat /tmp/spot_response)"
# 체크포인트 저장 명령어를 여기에 추가하세요
/path/to/save_checkpoint.sh
break
fi
sleep 5
done

실행 방법:

chmod +x spot_watcher.sh
nohup ./spot_watcher.sh &

2. PyTorch 학습 체크포인트 예시

import torch
import os

CHECKPOINT_PATH = "/data/checkpoints/checkpoint.pt"

# 체크포인트 저장
def save_checkpoint(model, optimizer, epoch, step, loss):
os.makedirs(os.path.dirname(CHECKPOINT_PATH), exist_ok=True)
torch.save({
'epoch': epoch,
'step': step,
'model_state_dict': model.state_dict(),
'optimizer_state_dict': optimizer.state_dict(),
'loss': loss,
}, CHECKPOINT_PATH)

# 체크포인트 불러오기 (재시작 시)
def load_checkpoint(model, optimizer):
if os.path.exists(CHECKPOINT_PATH):
ckpt = torch.load(CHECKPOINT_PATH)
model.load_state_dict(ckpt['model_state_dict'])
optimizer.load_state_dict(ckpt['optimizer_state_dict'])
return ckpt['epoch'], ckpt['step']
return 0, 0 # 처음부터 시작

회수 시점에만 저장하지 말고, 학습 중 일정 간격(예: 매 N 스텝)으로 체크포인트를 저장하세요. 유예 시간(1~2분) 내에 저장이 완료되지 않을 수 있습니다.

제한 사항

  • 상시 가동 (Always On): 스팟 GPU에서는 사용할 수 없습니다.
  • 재해복구 (DR): 스팟 GPU에서는 사용할 수 없습니다.
  • 가상 클러스터: 가상 클러스터에서는 스팟 자원을 사용할 수 없습니다.
  • 과금 범위: 스팟 할인은 GPU 가상 머신 실행 요금에만 적용됩니다. 연결된 블록 스토리지, 공인 IP 등은 일반 요금이 부과되며, 가상 머신이 중지되어도 해당 리소스 요금은 계속 발생합니다. 불필요한 리소스는 삭제하여 추가 과금을 방지하세요.

FAQ

Q. 스팟 GPU이 갑자기 종료되었어요.

A. 스팟 자원은 유휴 GPU를 활용하므로, 자원 상황에 따라 회수될 수 있습니다. 메타데이터 API를 활용하여 사전에 회수를 감지하고, 중요한 데이터는 주기적으로 저장해 주세요.

Q. 실행 버튼이 비활성화되어 있어요.

A. 현재 스팟 자원이 부족한 상태입니다. 잠시 후 다시 시도하거나, 리소스 현황 > 스팟 탭에서 가용 상태를 확인해 주세요.

Q. 스팟 가격은 언제 적용되나요?

A. 가상 머신 실행 시점의 가격이 적용됩니다. 재실행 시 변경된 가격이 적용될 수 있습니다.

Q. 스팟 GPU에서 상시 가동 옵션을 사용할 수 없어요.

A. 스팟 GPU은 자원 회수 가능성이 있어 상시 가동 옵션을 지원하지 않습니다.