> ## 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 状態のノードを 1 つ以上含む、稼働中のクラスターが必要です。また、Python の例を実行するには [`uv`](https://docs.astral.sh/uv/getting-started/installation/) も必要です。

<h2 id="run-your-first-sandbox">
  最初のサンドボックスを実行する
</h2>

<Steps>
  <Step title="アクセス権を付与する">
    ランナーを有効にするには、**Sandbox Admin** を付与する [Access Policy](https://console.coreweave.com/organization/iam/access-policies) の作成または更新を管理者に依頼してください。サンドボックスを実行するだけのユーザーには **Sandbox User** が必要です。[アクセスポリシーを作成する](/security/iam/access-policies/manage#create-an-access-policy)を参照してください。
  </Step>

  <Step title="ランナーを有効にする">
    ランナーは、クラスターのコンピュート上にサンドボックスの Pod をスケジュールします。各クラスターでホストできるマネージドランナーは 1 つです。管理者がすでにランナーを有効にしている場合は、その 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 アクセストークン](/ja/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 での同等のコードについては、[配置モードを選択する](/ja/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 の例やデプロイメントのトラブルシューティングについては、[ランナーのデプロイと管理](/ja/products/sandboxes/operations/managed-runners)を参照してください。

<h2 id="optional-customize-the-sandbox-policy">
  オプション: サンドボックスのポリシーをカスタマイズする
</h2>

ランナーのポリシーは、そのランナーがスケジュールするサンドボックスに適用されます。この例では、ランナーのポリシーを置き換えます。既存の共有ランナーの場合は、変更する前にその管理者と調整してください。

この例を `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` フィールドで設定されるのはデフォルト値のみで、送信先は制限されません。詳しくは、[サンドボックスポリシーを設定する](/ja/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>

以下のガイドを参照してください。

* [サンドボックスポリシーを設定する](/ja/products/sandboxes/profiles/configure): リソース、ネットワークアクセス、セキュリティ設定をカスタマイズします。
* [ランナーのデプロイと管理](/ja/products/sandboxes/operations/managed-runners): ランナーの確認、更新、トラブルシューティングを行います。
* [サンドボックスの配置とスピルオーバー](/ja/products/sandboxes/placement): CKS とサーバーレスキャパシティの間で相互にフォールバックします。
* [Python クライアント](/ja/products/sandboxes/client): コマンドの実行、ファイルの操作、サンドボックスのライフサイクル管理を行います。
