> ## 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.

# CLI 빠르게 시작하기

> vesslctl로 몇 분 만에 생산성을 높일 수 있는 세 가지 워크플로우를 알아봐요.

<div>
  <Frame>
    <img style={{ borderRadius: '0.5rem' }} src="https://mintcdn.com/dora/7JB7El29TavR1keb/images/vesslctl-quickstart-banner.png?fit=max&auto=format&n=7JB7El29TavR1keb&q=85&s=45bce711e33f908fb236d08f6cf41441" alt="VESSL Cloud CLI의 환영 배너. ASCII VESSL 워드마크와 지원 GPU 라인업(A100, H100, H200, B200, GB200, B300, Ada), 그리고 세 가지 시작 커맨드(vesslctl auth login, vesslctl workspace create, vesslctl --help)를 보여줘요." width="2440" height="2048" data-path="images/vesslctl-quickstart-banner.png" />
  </Frame>
</div>

이 페이지에서는 터미널에서 VESSL Cloud를 사용할 때 자주 마주치는 세 가지 실전 시나리오를 안내해요.

## Prerequisites

* **VESSL Cloud 계정**: 아직 없으면 [가입하기](https://cloud.vessl.ai/~/signup).
* **`vesslctl` 설치**: [CLI 개요](/ko/cli/overview#installation)의 한 줄 설치 명령으로 받으세요.
* **계정 로그인**: `vesslctl auth login`으로 브라우저 OAuth 흐름을 마쳐 주세요.
* **SSH 키 등록** (Workspace 접속용, 선택): `vesslctl ssh-key add`로 키를 등록하거나 [SSH 키 명령](/ko/cli/commands/ssh-key)에서 관리해요.
* **크레딧 충전**: [Billing](/ko/admin/billing/credits)에서 카드 등록 후 크레딧을 충전해 주세요. 잔액이 0 이하이면 Workspace나 Job 생성이 차단돼요.

## GPU 인스턴스 실행하기

인터랙티브 GPU Workspace를 실행하고, SSH로 접속한 다음, 작업이 끝나면 일시정지해요.

<Steps>
  <Step title="Workspace 생성">
    ```bash theme={null}
    vesslctl workspace create \
      --name my-dev-box \
      --cluster <cluster-name> \
      --resource-spec <spec-name> \
      --image pytorch/pytorch:2.3.0-cuda12.1-cudnn8-devel
    ```

    `<cluster-name>`과 `<spec-name>`은 `vesslctl cluster list`와 `vesslctl resource-spec list`에서 확인할 수 있어요. 생성 후 `vesslctl workspace list`에서 Workspace slug(예: `my-dev-box-abc123`)를 복사해 다음 단계에서 사용해요.
  </Step>

  <Step title="Workspace 상태 확인">
    ```bash theme={null}
    vesslctl workspace show <workspace-slug>
    ```

    상태가 **running**으로 표시될 때까지 기다려 주세요.
  </Step>

  <Step title="SSH로 접속">
    ```bash theme={null}
    vesslctl workspace ssh <workspace-slug>
    ```
  </Step>

  <Step title="비용 절약을 위해 일시정지">
    하루 작업이 끝나면 Workspace를 일시정지하세요. 파일과 환경은 그대로 보존되면서 비용은 절감돼요.

    ```bash theme={null}
    vesslctl workspace pause <workspace-slug>
    ```
  </Step>

  <Step title="나중에 다시 시작">
    중단했던 곳에서 바로 이어서 작업할 수 있어요:

    ```bash theme={null}
    vesslctl workspace start <workspace-slug>
    ```
  </Step>
</Steps>

***

## 데이터셋 업로드하기

Volume을 만들고, CLI로 데이터를 업로드한 다음, 내용을 확인해요.

<Steps>
  <Step title="Volume 생성">
    ```bash theme={null}
    vesslctl volume create \
      --name training-data \
      --storage <storage-name> \
      --teams <team-name> \
      --description "ImageNet subset for fine-tuning"
    ```

    `<storage-name>`은 `vesslctl storage list`, `<team-name>`은 `vesslctl team list`에서 확인할 수 있어요. `--name`, `--storage`, `--teams`는 모두 필수예요. 생성 후 `vesslctl volume list`에서 Volume slug(예: `training-data-abc123`)를 복사해 다음 단계에서 사용해요.
  </Step>

  <Step title="데이터셋 업로드">
    ```bash theme={null}
    vesslctl volume upload <volume-slug> ./dataset/
    ```

    단일 파일이나 전체 디렉터리를 한 줄로 올릴 수 있어요. 특정 경로 아래에 두고 싶으면 `--remote-prefix datasets/v1/`, 제외할 패턴이 있으면 `--exclude "*.pyc"` 플래그를 사용해요.
  </Step>

  <Step title="업로드 확인">
    ```bash theme={null}
    vesslctl volume ls <volume-slug> --prefix /
    ```
  </Step>
</Steps>

<Info>
  DVC, `aws s3 cp`, 커스텀 파이프라인 등 S3 호환 도구와 연동이 필요하면 `vesslctl volume token <volume-slug>`로 임시 S3 자격 증명과 엔드포인트 URL을 받아서 쓰면 돼요.
</Info>

***

## 배치 잡 제출하기

배치 잡을 제출하고, 진행 상황을 확인하고, 로그를 가져와요.

<Steps>
  <Step title="Job 제출">
    ```bash theme={null}
    vesslctl job create \
      --name nightly-train \
      --resource-spec <spec-name> \
      --image pytorch/pytorch:2.3.0-cuda12.1-cudnn8-devel \
      --cmd "python train.py --epochs 10 --lr 3e-4"
    ```
  </Step>

  <Step title="Job 상태 확인">
    ```bash theme={null}
    vesslctl job list
    ```
  </Step>

  <Step title="로그 스트리밍">
    ```bash theme={null}
    vesslctl job logs <job-slug> --follow
    ```

    `vesslctl job list`에서 Job slug(예: `nightly-train-abc123`)를 복사해서 넣어 주세요. `--follow` 플래그를 사용하면 Job이 완료될 때까지 실시간으로 로그를 스트리밍해요.
  </Step>
</Steps>
