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

# 자체 컴퓨팅 사용

> CoreWeave Kubernetes Service 클러스터에서 샌드박스를 활성화하고 첫 명령어를 실행하세요.

CoreWeave Kubernetes Service(CKS) 클러스터의 컴퓨팅 리소스에서 샌드박스를 실행하세요.

<h2 id="before-you-begin">
  시작하기 전에
</h2>

스케줄링 가능한 준비 완료(Ready) 상태의 노드가 하나 이상 있는 실행 중인 클러스터가 필요합니다. Python 예시를 실행하려면 [`uv`](https://docs.astral.sh/uv/getting-started/installation/)도 필요합니다.

<h2 id="run-your-first-sandbox">
  첫 번째 샌드박스 실행하기
</h2>

<Steps>
  <Step title="액세스 권한 부여">
    러너를 활성화하려면 Admin에게 **Sandbox Admin** 권한을 부여하는 [액세스 정책](https://console.coreweave.com/organization/iam/access-policies)을 생성하거나 업데이트해 달라고 요청하세요. 샌드박스를 실행하기만 하는 사용자에게는 **Sandbox User** 권한이 필요합니다. 자세한 내용은 [액세스 정책 생성](/security/iam/access-policies/manage#create-an-access-policy)을 참조하세요.
  </Step>

  <Step title="러너 활성화">
    러너는 클러스터의 컴퓨팅 리소스에 샌드박스 파드를 스케줄링합니다. 클러스터당 관리형 러너를 하나씩 호스팅할 수 있습니다. Admin이 이미 러너를 활성화했다면 해당 러너의 ID를 사용하세요.

    1. [Clusters](https://console.coreweave.com/clusters) 페이지를 열고 클러스터를 선택하세요.
    2. **Sandbox runner** 카드에서 **Enable sandbox runner**를 클릭하세요.
    3. **Status**가 **Ready**로, **Connection**이 **Connected**로 표시될 때까지 기다린 다음 **Runner ID**를 선택하여 복사하세요.

    러너가 연결되면 CoreWeave에서 기본 정책을 제공하므로, [정책을 사용자 지정](#optional-customize-the-sandbox-policy)하지 않고도 바로 예시를 실행할 수 있습니다.
  </Step>

  <Step title="사용자 인증 정보 발급">
    [Tokens](https://console.coreweave.com/tokens) 페이지에서 **Create Token**을 클릭하고 토큰 세부 정보를 입력한 다음 **Create**를 클릭하세요. **Token Secret**은 한 번만 표시되므로 바로 복사하여 터미널에 설정하세요.

    ```bash theme={"system"}
    export CWSANDBOX_API_KEY="[API-ACCESS-TOKEN]"
    ```

    토큰 권한 및 설정에 대한 자세한 내용은 [CoreWeave API 액세스 토큰](/ko/products/sandboxes/placement#coreweave-api-access-token)을 참조하세요.
  </Step>

  <Step title="샌드박스 실행">
    다음 코드를 `hello.py`로 저장하고 `[RUNNER-ID]`를 러너 ID로 바꾸세요. 해당 러너를 대상으로 지정하려면 `placement_mode="cks"`와 `runner_ids`를 모두 설정해야 합니다.

    ```python title="hello.py" theme={"system"}
    from cwsandbox import AuthStrategy, Sandbox

    with Sandbox.run(
        auth=AuthStrategy.COREWEAVE_API_KEY,
        placement_mode="cks",
        runner_ids=["[RUNNER-ID]"],
        resources={"cpu": "1", "memory": "1Gi"},
    ) as sandbox:
        print(sandbox.exec(["echo", "Hello!"]).result().stdout)
    ```

    Python 3.11과 샌드박스 클라이언트로 실행하세요. 둘 중 설치되지 않은 항목이 있으면 이 명령어가 자동으로 설치합니다.

    ```bash theme={"system"}
    uv run --python 3.11 --with 'cwsandbox>=1.10.0' hello.py
    ```

    예시를 실행하면 다음과 같이 출력되며, 실행이 끝나면 샌드박스가 중지됩니다.

    ```text title="출력" theme={"system"}
    Hello!
    ```

    기본 배치 모드는 서버리스입니다. 클러스터에서 실행해야 하는 요청에는 `placement_mode="cks"`를 그대로 지정하세요. TypeScript 예시는 [배치 모드 선택](/ko/products/sandboxes/placement#select-a-placement-mode)을 참조하세요.
  </Step>
</Steps>

<h2 id="optional-manage-runners-with-the-cli">
  선택 사항: CLI로 러너 관리하기
</h2>

[CoreWeave Intelligent CLI](https://github.com/coreweave/cwic#installation)를 Cloud console 대신 사용할 수도 있습니다. CLI를 설치한 다음 API 액세스 토큰으로 로그인하세요.

```bash theme={"system"}
cwic auth login "[API-ACCESS-TOKEN]"
```

CLI는 토큰을 로컬에 저장합니다. 반면 Python 클라이언트는 `CWSANDBOX_API_KEY`를 대신 읽습니다.

다른 클러스터에서 러너를 활성화하려면 러너 ID를 정한 다음 생성 마법사를 시작하세요.

```bash theme={"system"}
cwic sandbox runner create [RUNNER-ID]
```

클러스터와 출시 채널을 선택한 다음, 제출하기 전에 편집기에서 러너 설정과 정책을 검토하세요.

러너 상태를 확인하세요:

```bash theme={"system"}
cwic sandbox runner get [RUNNER-ID]
```

`INSTALL`이 `READY`로, `CONN`이 `CONNECTED`로 표시될 때까지 기다리세요. REST API 예시와 배포 문제 해결 방법은 [러너 배포 및 관리](/ko/products/sandboxes/operations/managed-runners)를 참조하세요.

<h2 id="optional-customize-the-sandbox-policy">
  선택 사항: 샌드박스 정책 사용자 지정하기
</h2>

러너의 정책은 해당 러너가 스케줄링하는 샌드박스에 적용됩니다. 이 예제는 러너의 기존 정책을 대체합니다. 기존 공유 러너를 사용하는 경우 해당 러너의 Admin과 변경 사항을 협의하세요.

이 예제를 `policy.json`으로 저장하세요. 이 예제는 CPU 및 메모리 기본값을 지정하고, 리소스 요청량을 제한하며, 기본 이그레스 목록을 비워 둡니다. 수명 기본값은 15분이며, 최댓값은 아닙니다.

```json title="policy.json" theme={"system"}
{
  "displayName": "default",
  "constraints": {
    "resources": {
      "defaultCpu": "1",
      "defaultMemory": "2Gi",
      "maxCpu": "4",
      "maxMemory": "8Gi",
      "requireLimits": true
    },
    "network": {
      "defaultEgress": []
    },
    "security": {
      "allowPrivileged": false,
      "allowedRuntimeClasses": ["kata-qemu"],
      "defaultCpuRuntimeClass": "kata-qemu"
    },
    "lifecycle": { "defaultLifetimeSeconds": 900 }
  }
}
```

활성화한 러너에 적용한 다음, 저장된 정책을 확인하세요.

```bash theme={"system"}
cwic sandbox runner policy edit [RUNNER-ID] -f policy.json
cwic sandbox runner policy describe [RUNNER-ID]
```

사용자가 요청할 수 있는 아웃바운드 대상을 제한하려면 `allowedEgress`를 설정하세요. `defaultEgress` 필드는 기본값을 지정할 뿐, 대상을 제한하지는 않습니다. 자세한 내용은 [샌드박스 정책 설정](/ko/products/sandboxes/profiles/configure)을 참조하세요.

<h2 id="optional-disable-the-runner">
  선택 사항: 러너 비활성화
</h2>

샌드박스를 계속 만들려면 러너를 활성화된 상태로 두세요. 러너가 더 이상 필요하지 않으면 실행 중인 샌드박스를 중지한 다음, 아래 두 가지 방법 중 하나로 러너를 비활성화하세요.

<Tabs>
  <Tab title="Cloud console">
    1. 클러스터의 **Sandbox runner** 카드를 여세요.
    2. **Disable sandbox runner**를 클릭하고 확인하세요.
  </Tab>

  <Tab title="CLI">
    ```bash theme={"system"}
    cwic sandbox runner delete [RUNNER-ID]
    ```

    확인 메시지가 표시되면 삭제를 확인하세요.
  </Tab>
</Tabs>

러너를 비활성화하면 클러스터에서 러너가 제거됩니다. 해당 클러스터에서 샌드박스를 다시 사용하려면 러너를 활성화하세요.

<h2 id="next-steps">
  다음 단계
</h2>

다음 가이드를 살펴보세요.

* [샌드박스 정책 설정](/ko/products/sandboxes/profiles/configure): 리소스, 네트워크 액세스, 보안 설정을 사용자 지정합니다.
* [러너 배포 및 관리](/ko/products/sandboxes/operations/managed-runners): 러너를 점검 및 업데이트하고 문제를 해결합니다.
* [샌드박스 배치 및 스필오버](/ko/products/sandboxes/placement): CKS와 서버리스 용량 간에 폴백을 구성합니다.
* [Python 클라이언트](/ko/products/sandboxes/client): 명령어를 실행하고, 파일을 다루며, 샌드박스 라이프사이클을 관리합니다.
