메인 콘텐츠로 건너뛰기

개요

Job은 컨테이너에서 명령어를 실행하고 끝나면 자동으로 종료돼요. 학습·추론·배치 처리 워크로드에 적합해요. Job을 만드는 방법은 세 가지예요.
  • VESSL Cloud: Create Job 폼을 채워서 제출해요. 처음 몇 번 만들 때 좋아요.
  • CLI: vesslctl job create로 제출해요. 자동화, 스크립트, 재현 가능한 실행에 좋아요.
  • Workspace 변환: Workspace의 이미지, 리소스 스펙, 볼륨을 그대로 Job으로 복제해요. Workspace를 Job으로 변환하기를 참고하세요.

Prerequisites

  • 충분한 크레딧 잔액: 잔액이 0 이하이면 Job을 만들 수 없어요. Billing에서 카드를 등록하고 크레딧을 충전해 주세요.
  • (CLI만) 로그인된 vesslctl: vesslctl auth login으로 브라우저 OAuth 흐름을 마쳐 주세요. 자세한 셋업은 CLI 빠르게 시작하기에 있어요.
  • (선택) 결과 저장용 볼륨: 모델·체크포인트를 영구 보관하려면 Object 또는 Cluster storage 볼륨을 미리 만들어 두세요.

VESSL Cloud에서 만들기

사이드바에서 Jobs를 열고 Create Job을 누른 뒤 폼을 채워 주세요. 대부분의 항목은 Workspace 생성 흐름과 같아요. Job은 실행할 명령어가 추가되고 대화형 요소(SSH, 포트)가 빠져요.
Job 이름, 명령어, 작업 디렉터리, 조직 시크릿을 연결하는 환경 변수, 하드웨어 구성(GPU 종류·리전·개수), Persistent volume, 컨테이너 이미지, 그리고 Create 버튼이 있는 Pricing summary로 구성된 Create a new Job 폼
항목설명
Job nameJob 이름이에요. 기본값으로 임의의 이름이 만들어져요.
CommandJob이 시작될 때 실행할 명령어예요. 예: python train.py --epochs 10.
Working directory(선택) 명령어가 실행될 디렉터리예요. 비워 두면 이미지의 기본 작업 디렉터리를 써요.
Environment Variables키-값 변수를 추가하고, 자격 증명은 평문 대신 조직 시크릿을 연결해서 써요.
Hardware ConfigurationGPU 종류(A100, H100, CPU only), 리전, GPU 개수를 골라요. 개수마다 시간당 가격과 가용성이 표시돼요.
Persistent volume결과를 여러 실행에 걸쳐 남기려면 Object 또는 Cluster storage 볼륨을 마운트 경로와 함께 연결해요.
Container imageManaged 이미지(PyTorch, CUDA, Python)나 직접 만든 Custom 이미지를 골라요.
오른쪽 Pricing summary를 확인하고 Create를 누르면 제출돼요. Job 상세 페이지로 이동하고, 거기서 상태·로그·메트릭을 확인할 수 있어요.

CLI로 만들기

클러스터, 리소스 스펙, 컨테이너 이미지, 실행할 명령어와 함께 필요한 볼륨이나 환경 변수를 지정해 주세요.
vesslctl job create \
  --name my-training-job \
  --resource-spec <spec-slug> \
  --image quay.io/vessl-ai/torch:2.9.1-cuda13.0.1-py3.13-slim \
  --cmd "python train.py --epochs 10" \
  --env WANDB_API_KEY=<your-key> \
  --object-volume <volume-slug>:/output \
  --tag training-run-2026-04
사용 가능한 클러스터와 GPU 스펙은 vesslctl cluster listvesslctl resource-spec list로 확인할 수 있어요. 전체 플래그 목록은 vesslctl job create에서 볼 수 있어요.

결과 파일 저장하기

Job은 임시 컨테이너에서 실행되기 때문에 마운트된 볼륨 밖에 저장한 파일은 Job이 끝나면 사라져요. 결과를 남기려면 Object 또는 Cluster storage 볼륨을 하나 이상 연결해 주세요.
  • Object storage (--object-volume): 클러스터 간에 공유돼요. 학습된 모델이나 평가 지표처럼 최종 결과물을 저장할 때 좋아요. /output 같은 별도 경로에 마운트하세요.
  • Cluster storage (--cluster-volume): 클러스터 안에서 빠르게 동작해요. 장기 학습 중간 체크포인트를 남길 때 좋아요. /workspace 같은 경로에 마운트하세요.
vesslctl job create \
  --name my-training-job \
  --resource-spec <spec-slug> \
  --image quay.io/vessl-ai/torch:2.9.1-cuda13.0.1-py3.13-slim \
  --object-volume <output-volume-slug>:/output \
  --cmd "python train.py --output /output"
Temporary storage는 Job이 succeeded 상태로 끝나도 함께 삭제돼요. 학습 스크립트가 /tmp나 현재 디렉터리에 결과를 쓰는데 볼륨을 연결하지 않으면 결과가 전부 사라져요.

Job 설정 재사용하기

기존 Job의 설정을 JSON으로 내보내 두면 나중에 그대로 재제출할 수 있어요:
vesslctl job export my-job-abc123 > job-config.json
vesslctl job create --file job-config.json

Workspace 안에서 Job 제출하기

실행 중인 Workspace에는 워크로드 토큰으로 인증된 vesslctl이 미리 세팅돼 있어요. JupyterLab 터미널에서 스크립트를 다듬다가 같은 셸에서 그대로 배치 잡으로 제출할 수 있어요. 자세한 내용은 vesslctl workspace를 참고하세요.

함께 보기