Language
검색

클라우드 GPU 가격 비교: 시간당 단가보다 먼저 봐야 하는 것들

컴퓨터 방열판 핀을 가까이서 찍은 매크로 사진

·

조회수 8
클라우드 GPU를 고를 때 시간당 단가만 보면 안 되는 이유는 무엇인가?
컴퓨터비전 작업에서는 GPU가 노는 시간과 데이터 전송료가 청구서를 좌우하기 때문이다. 고해상도 이미지를 계속 읽어야 해서 스토리지 대역폭과 CPU 전처리가 병목이 되기 쉽고, 이때 비싼 GPU를 빌려도 대부분의 시간을 대기로 보낸다. 여기에 데이터를 밖으로 빼낼 때 붙는 전송료가 예상 밖으로 크다.

컴퓨터비전 프로젝트의 클라우드 비용은 “GPU 시간당 얼마”로 계산했다가 두 배 이상 어긋나는 일이 흔하다. 원인은 두 가지다. GPU가 놀고 있는 시간데이터를 옮기는 값이다.

이 글은 시간당 단가표 대신 그 두 가지를 어떻게 볼 것인지에 초점을 맞춘다. 단가는 자주 바뀌지만 이 구조는 잘 안 바뀐다.

컴퓨터비전 워크로드가 다른 점

언어 모델 학습은 대체로 연산 자체가 병목이다. 컴퓨터비전은 다르다.

  • 입력이 무겁다. 고해상도 이미지와 비디오를 매 스텝 읽어야 한다
  • 전처리가 CPU를 먹는다. 디코딩, 리사이즈, 증강(augmentation)이 CPU에서 돌면 GPU가 기다린다
  • 데이터셋이 크다. 수십 기가에서 테라바이트 단위가 흔하고, 이걸 옮기는 값이 든다

그래서 GPU 사양표(연산 성능)만 보고 고르면 실패한다. 볼 항목의 우선순위가 다르다.

순위 항목
1 VRAM 용량 배치 크기와 입력 해상도를 결정한다. 부족하면 아예 못 돌린다
2 vCPU 수와 메모리 데이터 로딩·증강이 여기서 돈다. 부족하면 GPU가 논다
3 로컬 디스크(NVMe) 데이터셋을 로컬에 두면 네트워크 스토리지보다 훨씬 빠르다
4 GPU 연산 성능 위 셋이 충족된 다음에 의미가 있다
5 시간당 단가 마지막에 본다

GPU 사용률을 먼저 확인하는 습관을 들이면 이 순서가 왜 이런지 바로 이해된다. 학습 중 nvidia-smi로 사용률을 봤을 때 계속 50% 아래를 오간다면, 더 비싼 GPU를 빌려도 그 돈이 대기 시간에 쓰인다.

# 데이터 로딩 병목을 줄이는 기본 설정
loader = DataLoader(
    dataset,
    batch_size=64,
    num_workers=8,        # CPU 코어 수에 맞춰 조정
    pin_memory=True,      # CPU→GPU 전송 가속
    persistent_workers=True,
    prefetch_factor=4,
)

num_workers를 0이나 2로 둔 채 GPU 탓을 하는 경우가 정말 많다. 이 한 줄이 다른 어떤 인스턴스 업그레이드보다 싸다.

제공사 유형별 성격

업체명을 나열하는 대신 성격으로 나눈다.

대형 종합 클라우드 — 리전과 부가 서비스가 가장 많고 기업 요구사항(보안, 규정 준수, VPC)을 충족한다. 대신 GPU 시간당 단가가 가장 비싼 편이고 요금 구조가 복잡하다. 회사 인프라와 통합해야 하거나 규정 준수가 필요할 때 선택한다.

GPU 특화 클라우드 — GPU 임대에 집중해 같은 카드가 훨씬 싸다. 대신 부가 서비스가 적고, 가용성이 시간대에 따라 들쭉날쭉할 수 있다. 개인 연구나 스타트업의 실험에 가장 합리적이다.

분산형·마켓형 — 개인·소규모 사업자가 내놓은 GPU를 빌린다. 가장 싸다. 대신 안정성과 보안 수준이 제공자마다 다르고, 민감한 데이터를 올리기에는 부적절하다. 공개 데이터셋으로 하는 실험에 맞는다.

스폿·선점형 인스턴스 — 어느 유형이든 제공되는 할인 옵션이다. 언제든 회수될 수 있는 대신 크게 싸다. 학습처럼 중단됐다 이어서 할 수 있는 작업에 적합하다. 반드시 체크포인트를 자주 저장하는 코드가 전제다.

숨은 비용: 데이터 전송료와 스토리지

여기서 예산이 어긋난다.

이그레스(egress, 밖으로 나가는 전송) — 클라우드로 데이터를 넣는 것은 대체로 무료이고, 빼내는 것에 요금이 붙는다. 데이터셋을 올렸다가 결과물과 체크포인트를 내려받고, 다른 클라우드로 옮기는 과정에서 GPU 요금에 맞먹는 금액이 나오는 경우가 있다.

스토리지 — 인스턴스를 껐다고 저장 요금이 멈추는 게 아니다. 데이터셋을 붙여둔 볼륨은 계속 과금된다. 실험이 끝나면 정리해야 한다.

대책 세 가지

  1. 데이터셋을 한 번만 올린다. 실험마다 다시 올리지 말고 스냅샷을 만들어 재사용한다
  2. 체크포인트는 이그레스가 무료이거나 싼 오브젝트 스토리지로 뺀다. 학습 중 자동 동기화해두면 인스턴스가 회수돼도 안전하다
  3. 필요한 것만 내려받는다. 전체 체크포인트가 아니라 최종 가중치만
# 학습 중 체크포인트를 외부 스토리지로 주기적 동기화
while true; do
  rclone sync ./checkpoints remote:project/checkpoints --transfers 4
  sleep 600
done

비용을 줄이는 실전 순서

  1. 먼저 작은 인스턴스에서 파이프라인을 완성한다. 코드 버그를 비싼 GPU 위에서 잡지 않는다
  2. GPU 사용률을 확인한다. 낮으면 데이터 로딩부터 고친다
  3. 혼합 정밀도(AMP)를 켠다. 대부분의 비전 모델에서 정확도 손실 없이 속도와 메모리가 개선된다
  4. 스폿 인스턴스 + 체크포인트 자동 저장으로 전환한다
  5. 끝나면 즉시 인스턴스와 볼륨을 정리한다. 잊고 켜둔 GPU가 가장 비싼 실수다
  6. 예산 알림을 건다. 대부분의 클라우드가 금액 임계값 알림을 제공한다

⚠️ GPU 시간당 단가, 이그레스 요금, 인스턴스 종류는 제공사와 리전마다 다르고 자주 바뀐다. 실제 금액은 각 제공사의 공식 요금 계산기로 확인할 것.

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *