Skip to main content

RunPod

RunPod는 GPU 자원을 빠르게 확보해 실험을 시작할 때 유용합니다. 다만 빠른 시작만 보고 운영 원칙을 생략하면 비용/보안 문제가 빠르게 발생합니다.

학습 목표

  • RunPod를 언제 쓰고 언제 다른 플랫폼으로 옮겨야 하는지 판단할 수 있습니다.
  • 실험 환경 표준화(이미지, 볼륨, 키 관리) 방법을 이해합니다.
  • 비용 누수와 보안 리스크를 줄이는 운영 체크를 적용할 수 있습니다.

적합한 사용 시나리오

시나리오RunPod 적합도대안
단기 파인튜닝 실험✅ 최적
임시 고성능 추론 서버 검증✅ 적합
사내 인프라 없는 초기 PoC✅ 적합
안정적 SLA 필요한 프로덕션❌ 부적합AWS/GCP/Azure
24/7 상시 서빙❌ 비용 비효율온프렘 또는 Reserved Instance

Pod 생성 워크플로우

1

GPU 선택

목적에 맞는 GPU를 선택합니다.
GPUVRAM적합 용도
RTX 309024GB7B 이하 모델 파인튜닝
RTX A600048GB13B 모델, 배치 추론
A100 80GB80GB70B 모델, 대규모 실험
H10080GB최대 성능 학습/추론
2

템플릿 이미지 선택

RunPod 제공 템플릿 또는 커스텀 Docker 이미지를 사용합니다.
# 권장 템플릿: RunPod PyTorch 2.x + CUDA
# 또는 커스텀 이미지 지정
runpodctl create pod \
  --name "finetune-exp-01" \
  --gpu "NVIDIA RTX A6000" \
  --imageName "runpod/pytorch:2.4.0-py3.11-cuda12.4.0-devel-ubuntu22.04" \
  --volumeSize 50
3

볼륨 경로 표준화

코드, 데이터, 체크포인트, 로그 경로를 분리합니다.
/workspace/
├── code/          # Git clone (항상 최신)
├── data/          # 학습 데이터 (볼륨 마운트)
├── checkpoints/   # 모델 체크포인트
├── logs/          # 학습 로그
└── outputs/       # 최종 산출물
4

환경변수 주입

API 키와 시크릿은 RunPod 환경변수로 주입합니다.
# RunPod UI → Pod Settings → Environment Variables
HF_TOKEN=hf_xxxxx
WANDB_API_KEY=xxxxx
코드나 로그에 API 키가 남지 않도록 반드시 환경변수를 사용하세요.
5

실험 시작

SSH 또는 웹 터미널로 접속하여 실험을 시작합니다.
ssh root@{pod-ip} -p {port} -i ~/.ssh/id_ed25519
cd /workspace/code
python train.py --config config.yaml

비용 관리

비용 구조

항목과금 방식절감 전략
GPU 시간분 단위 과금Spot/Community GPU 활용
스토리지GB/월실험 종료 후 볼륨 정리
네트워크Ingress 무료, Egress 유료결과만 외부 전송

비용 통제 설정

# RunPod CLI로 자동 종료 설정
runpodctl update pod {pod-id} --stopAfter 4h

# 또는 실험 스크립트 끝에 자동 종료 추가
python train.py && runpodctl stop pod {pod-id}

비용 알림 설정

  1. RunPod 대시보드 → Billing → Spending Limit 설정
  2. 일일/주간 사용량 알림 이메일 활성화
  3. 팀 환경이면 팀 예산 한도를 별도로 설정

운영 기본 원칙

  1. 템플릿 이미지 버전을 고정합니다.
  2. 데이터/체크포인트는 볼륨 경로를 표준화합니다.
  3. API 키는 환경변수로 주입하고 코드에 저장하지 않습니다.
  4. 유휴 인스턴스 자동 종료 정책을 사용합니다.
  5. 비용 상한 알림을 설정합니다.

실무 운영 체크

실험 시작 전

  • 목적, 예상 GPU 시간, 종료 조건 정의
  • 볼륨에 데이터가 정상 마운트됐는지 확인
  • 이전 실험 체크포인트 백업 여부 확인

실험 중

  • GPU 사용률, VRAM 사용량, 오류 로그 모니터링
  • 체크포인트가 정상 저장되고 있는지 주기적 확인
  • 비용 누적량 중간 점검

실험 후

# 1. 산출물 외부 백업
rsync -avz /workspace/outputs/ user@backup-server:/backups/exp-01/

# 2. 볼륨 정리 (불필요한 중간 체크포인트 제거)
rm -rf /workspace/checkpoints/checkpoint-[1-9]*

# 3. Pod 종료
runpodctl stop pod {pod-id}

# 4. 비용 기록
echo "exp-01: A6000 x 6h = $X.XX" >> /workspace/cost-log.txt
가장 흔한 비용 누수 원인입니다. 종료 책임자와 종료 체크리스트를 명시적으로 두세요.
코드, 데이터, 체크포인트, 로그 경로를 분리하세요. 실험이 실패해도 결과물을 복구할 수 있어야 합니다.
트래픽이 안정적으로 늘고 SLA가 필요해지면, 임대형 실험 환경에서 운영형 인프라로 이전 계획을 세워야 합니다. 월 GPU 비용이 Reserved Instance 대비 1.5배를 넘으면 전환 시점입니다.
Spot(Community) GPU는 최대 80% 저렴하지만 언제든 회수될 수 있습니다. 체크포인트를 자주 저장하는 학습에는 적합하고, 중단 불가한 추론 서빙에는 On-Demand를 사용하세요.

체크리스트

  • 이미지 버전과 실행 명령이 문서화되어 있나요?
  • 유휴 자동 종료와 비용 알림이 있나요?
  • 키/토큰이 코드/로그에 남지 않나요?
  • 결과 백업 후 종료 절차가 있나요?
  • 볼륨 경로가 표준화되어 있나요?
  • 비용 기록이 실험 단위로 남고 있나요?