**잡(Job)**은 지정된 GPU 또는 CPU 리소스에서 명령어를 실행하고 완료되면 자동으로 종료돼요. Workspace와 달리 잡은 비대화형(non-interactive)이에요.
잡은 이런 작업에 적합해요:
- 모델 학습 및 파인튜닝
- 배치 추론 및 평가
- 데이터 전처리 파이프라인
- 하이퍼파라미터 스윕(여러 잡을 동시에 실행)
잡 vs Workspace
| 잡 | Workspace |
|---|
| 상호작용 | 비대화형 (명령어 실행) | 대화형 (SSH, JupyterLab) |
| 생명주기 | 시작 → 실행 → 자동 완료 | 일시정지 또는 종료할 때까지 실행 유지 |
| 과금 | 실행 중에만 | 실행 중 + 일시정지 중 (감소된 요금) |
| 적합한 용도 | 학습, 배치 처리, 스윕 | 개발, 디버깅, 탐색 |
잡 생성하기
VESSL Cloud 콘솔이나 CLI에서 잡을 생성할 수 있어요.
콘솔에서: 사이드바에서 Jobs를 클릭하고 Create Job을 선택하세요. 클러스터, 리소스 스펙, 컨테이너 이미지를 선택하고 실행할 명령어를 입력하면 돼요.
CLI에서:
vesslctl job create \
--name my-training-job \
--cluster <cluster-name> \
--resource-spec <spec-name> \
--image quay.io/vessl-ai/torch:2.9.1-cuda13.0.1-py3.13-slim \
--cmd "python train.py --epochs 10"
vesslctl cluster list와 vesslctl resource-spec list로 사용 가능한 클러스터와 GPU 스펙을 확인할 수 있어요. 전체 CLI 레퍼런스는 vesslctl job을 참고하세요.
잡 모니터링
잡을 제출하면 잡 목록 페이지에서 진행 상황을 확인할 수 있어요. 각 잡에는 상태, 리소스(GPU 종류와 수량), 소요 시간, 생성자가 표시돼요. 잡을 클릭하면 상세 로그와 리소스 사용량을 확인할 수 있어요.
CLI에서도 볼 수 있어요:
vesslctl job list --state running
vesslctl job show <job-slug>
잡 상태
| 상태 | 의미 |
|---|
scheduling | 리소스가 확보될 때까지 대기하는 상태예요. Waiting for GPU capacity처럼 큐에 들어간 이유가 함께 표시돼요. |
running | 명령어가 할당된 리소스에서 실제로 실행되고 있어요. |
completed | 명령어가 성공적으로 끝났어요(exit code 0). 연결된 볼륨에 저장된 결과는 유지돼요. |
failed | 명령어가 0이 아닌 코드로 종료됐거나 컨테이너가 비정상 종료됐어요(예: OOMKilled). 로그를 확인해 원인을 파악하세요. |
terminated | 잡이 끝나기 전에 사용자가 직접 취소했어요. |
결과 파일 저장하기
잡은 임시 컨테이너에서 실행되기 때문에, 연결된 볼륨 밖에 저장한 파일은 잡이 끝나면 사라져요. 결과를 남기려면 볼륨을 하나 이상 연결해 주세요.
- Object storage (
--object-volume): 클러스터 간에 공유돼요. 학습된 모델이나 평가 지표처럼 최종 결과물을 저장할 때 좋아요. /output 같은 별도 경로에 마운트하세요.
- Cluster storage (
--cluster-volume): 클러스터 안에서 빠르게 동작해요. 장기 학습 중간 체크포인트를 남길 때 좋아요. /Workspace 같은 경로에 마운트해요.
vesslctl job create \
--name my-training-job \
--resource-spec <spec-name> \
--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는 잡이 completed 상태로 끝나도 함께 삭제돼요. 학습 스크립트가 /tmp나 현재 디렉터리에 결과를 쓰는데 볼륨을 안 연결해두면 결과가 전부 사라져요.
잡 로그 보기
잡이 실행 중이거나 끝난 뒤에도 로그를 확인할 수 있어요.
vesslctl job logs <job-slug> --follow # 실시간 스트리밍
vesslctl job logs <job-slug> --limit 500 # 마지막 500줄
잡 상세 페이지의 Logs 탭에서도 확인할 수 있어요.
실행 중인 잡 취소하기
콘솔에서 케밥 메뉴 → Terminate를 누르거나, CLI에서 종료할 수 있어요.
vesslctl job terminate <job-slug>
취소하면 컴퓨팅 과금이 즉시 멈춰요. 이미 마운트된 볼륨에 저장한 데이터는 그대로 유지돼요.
다음 단계