> ## Documentation Index
> Fetch the complete documentation index at: https://docs.cloud.vessl.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Job 만들기

> VESSL Cloud에서, 또는 vesslctl로 배치 잡을 만드는 방법을 알아봐요.

## 개요

Job은 컨테이너에서 명령어를 실행하고 끝나면 자동으로 종료돼요. 학습·추론·배치 처리 워크로드에 적합해요.

Job을 만드는 방법은 세 가지예요.

* **VESSL Cloud**: **Create Job** 폼을 채워서 제출해요. 처음 몇 번 만들 때 좋아요.
* **CLI**: `vesslctl job create`로 제출해요. 자동화, 스크립트, 재현 가능한 실행에 좋아요.
* **Workspace 변환**: Workspace의 이미지, 리소스 스펙, 볼륨을 그대로 Job으로 복제해요. [Workspace를 Job으로 변환하기](/ko/member/workspace/convert-to-job)를 참고하세요.

## Prerequisites

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

## VESSL Cloud에서 만들기

사이드바에서 **Jobs**를 열고 **Create Job**을 누른 뒤 폼을 채워 주세요. 대부분의 항목은 Workspace 생성 흐름과 같아요. Job은 실행할 명령어가 추가되고 대화형 요소(SSH, 포트)가 빠져요.

<div>
  <Frame>
    <img src="https://mintcdn.com/dora/6odhrZOFCpJA7mWd/images/jobs-create-form.png?fit=max&auto=format&n=6odhrZOFCpJA7mWd&q=85&s=bc3e5907711c1c15d26cdb3baf9ed386" alt="Job 이름, 명령어, 작업 디렉터리, 조직 시크릿을 연결하는 환경 변수, 하드웨어 구성(GPU 종류·리전·개수), Persistent volume, 컨테이너 이미지, 그리고 Create 버튼이 있는 Pricing summary로 구성된 Create a new Job 폼" width="1600" height="1547" data-path="images/jobs-create-form.png" />
  </Frame>

  <small>예시: Create a new Job 폼</small>
</div>

| 항목                         | 설명                                                                        |
| -------------------------- | ------------------------------------------------------------------------- |
| **Job name**               | Job 이름이에요. 기본값으로 임의의 이름이 만들어져요.                                           |
| **Command**                | Job이 시작될 때 실행할 명령어예요. 예: `python train.py --epochs 10`.                   |
| **Working directory**      | (선택) 명령어가 실행될 디렉터리예요. 비워 두면 이미지의 기본 작업 디렉터리를 써요.                          |
| **Environment Variables**  | 키-값 변수를 추가하고, 자격 증명은 평문 대신 [조직 시크릿](/ko/admin/secrets/overview)을 연결해서 써요. |
| **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로 만들기

클러스터, 리소스 스펙, 컨테이너 이미지, 실행할 명령어와 함께 필요한 볼륨이나 환경 변수를 지정해 주세요.

```bash theme={null}
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
```

<Tip>
  사용 가능한 클러스터와 GPU 스펙은 `vesslctl cluster list`와 `vesslctl resource-spec list`로 확인할 수 있어요. 전체 플래그 목록은 [`vesslctl job create`](/ko/cli/commands/job#create)에서 볼 수 있어요.
</Tip>

## 결과 파일 저장하기

Job은 임시 컨테이너에서 실행되기 때문에 마운트된 볼륨 밖에 저장한 파일은 Job이 끝나면 사라져요. 결과를 남기려면 Object 또는 Cluster storage 볼륨을 하나 이상 연결해 주세요.

* **Object storage** (`--object-volume`): 클러스터 간에 공유돼요. 학습된 모델이나 평가 지표처럼 최종 결과물을 저장할 때 좋아요. `/output` 같은 별도 경로에 마운트하세요.
* **Cluster storage** (`--cluster-volume`): 클러스터 안에서 빠르게 동작해요. 장기 학습 중간 체크포인트를 남길 때 좋아요. `/workspace` 같은 경로에 마운트하세요.

```bash theme={null}
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"
```

<Warning>
  Temporary storage는 Job이 `succeeded` 상태로 끝나도 함께 삭제돼요. 학습 스크립트가 `/tmp`나 현재 디렉터리에 결과를 쓰는데 볼륨을 연결하지 않으면 결과가 전부 사라져요.
</Warning>

## Job 설정 재사용하기

기존 Job의 설정을 JSON으로 내보내 두면 나중에 그대로 재제출할 수 있어요:

```bash theme={null}
vesslctl job export my-job-abc123 > job-config.json
vesslctl job create --file job-config.json
```

## Workspace 안에서 Job 제출하기

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

## 함께 보기

* [Workspace를 Job으로 변환하기](/ko/member/workspace/convert-to-job)
* [Job 목록 조회하기](/ko/member/job/list)
* [Job 상세 정보 보기](/ko/member/job/details)
* [볼륨 만들기](/ko/member/volume/create)
