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 name | Job 이름이에요. 기본값으로 임의의 이름이 만들어져요. |
| Command | Job이 시작될 때 실행할 명령어예요. 예: python train.py --epochs 10. |
| Working directory | (선택) 명령어가 실행될 디렉터리예요. 비워 두면 이미지의 기본 작업 디렉터리를 써요. |
| Environment Variables | 키-값 변수를 추가하고, 자격 증명은 평문 대신 조직 시크릿을 연결해서 써요. |
| Hardware Configuration | GPU 종류(A100, H100, CPU only), 리전, GPU 개수를 골라요. 개수마다 시간당 가격과 가용성이 표시돼요. |
| Persistent volume | 결과를 여러 실행에 걸쳐 남기려면 Object 또는 Cluster storage 볼륨을 마운트 경로와 함께 연결해요. |
| Container image | Managed 이미지(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 list와 vesslctl 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를 참고하세요.
함께 보기