Skip to main content
CoreWeave 샌드박스에서 Claude Code 클라우드 세션을 실행하세요. Claude Code 웹 앱(claude.ai/code)에서 Claude에게 작업을 맡기면 샌드박스에 호스팅된 오케스트레이터가 해당 세션용 워커 샌드박스를 프로비저닝합니다. 배포가 끝나면 로컬 컴퓨터의 연결을 끊어도 됩니다. 이 가이드에서는 Anthropic의 자체 호스팅 환경과 실행 가능한 레시피를 사용합니다. 이 레시피는 Sandboxes 소프트웨어 개발 키트(SDK)를 직접 사용합니다. 대화형 터미널이나 Remote Control을 사용하려면 Claude Code를 참조하세요. API로 관리되는 에이전트 루프에 대해서는 Claude Managed Agents를 참조하세요. 이 레시피에서 Anthropic 러너는 Claude Code 클라우드 세션 하나를 실행하며, 워커는 이 러너를 호스팅하는 샌드박스입니다. Anthropic 러너는 CoreWeave Kubernetes Service(CKS) 클러스터에서 샌드박스를 실행하는 CoreWeave 관리형 러너와는 별개입니다.

사전 요구 사항

시작하기 전에 다음 항목이 준비되어 있는지 확인하세요.
  • 소유자가 자체 호스팅 환경을 활성화한 Claude Team 또는 Enterprise 조직. Anthropic의 사전 요구 사항을 참조하세요.
  • Claude에 연결되어 있고 내 계정에서 액세스할 수 있는 GitHub 저장소. 처음에는 테스트용 저장소로 시작하세요. GitHub 연결 방법은 Claude Code 웹 앱 문서를 참조하세요.
  • SANDBOX_USER ID 및 액세스 관리(IAM) 액션 권한이 있는 CoreWeave API 액세스 토큰, 그리고 이 섹션에서 설명하는 리소스를 수용할 수 있는 서버리스 용량. 이 레시피는 CoreWeave 인증을 명시적으로 사용합니다.
  • Git, Python 3.11 이상, uv가 설치된 Linux 또는 macOS 컴퓨터
이 레시피는 GPU가 필요하지 않습니다. 오케스트레이터용으로 CPU 1개와 메모리 2GiB를, 워커마다 CPU 2개와 메모리 4GiB를 요청합니다. 기본적으로 실행 중인 워커는 최대 4개까지 허용됩니다. 오케스트레이터는 유휴 상태에서도 요금이 부과되며, Claude 사용 요금은 별도로 청구됩니다. 예산을 산정할 때 참고로, 오케스트레이션만 24시간 실행해도 24 CPU-시간과 48 GiB-시간이 소요됩니다. 여기에 워커 런타임을 요청 리소스 기준으로 더한 뒤 계정의 요율을 적용하세요.

레시피로 빠르게 시작하기

Claude 환경을 만들고 오케스트레이터를 배포한 다음, 워커의 출력을 확인한 후 배포를 중지하세요.

Claude 환경 생성

Anthropic의 환경 설정 가이드를 따르세요. 소유자가 Cloud environments 관리 페이지에서 Allow self-hosted environments를 활성화한 다음, Self-hosted environments 아래에 환경을 생성합니다. 이 Claude Code 클라우드 환경은 소유자가 claude.ai 관리 설정에서 생성합니다. Claude Managed Agents는 이와 별개로 Claude Console에서 생성한 환경과 키를 사용합니다. 환경 키와 ccpool_... ID를 따로 보관해 두세요. 관리 페이지에 액세스할 수 없다면 소유자에게 제공해 달라고 요청하세요. ID는 환경을 식별하고, 키는 오케스트레이터를 인증하는 데 사용됩니다. 오케스트레이터와 워커 인프라는 이후 단계에서 레시피를 통해 배포됩니다.

레시피 설치

레시피를 로컬에 설치하고 오케스트레이터에 필요한 사용자 인증 정보를 설정하세요.
.env 파일을 편집하여 두 변수를 모두 설정하세요. .env 파일은 비공개로 유지하고 버전 관리 대상에서 제외하세요. 또는 시크릿 관리자에서 이 변수들을 주입할 수도 있습니다. 이미 설정된 환경 변수가 있으면 .env 파일보다 우선 적용됩니다.

오케스트레이터 배포

[ENVIRONMENT-ID]를 실제 ccpool_... ID로 바꾸세요.
이 명령어는 오케스트레이터 샌드박스 ID를 출력하고, 설정이 완료될 때까지 기다린 다음, Anthropic에 연결되면 Connected를 출력합니다. 설정에는 몇 분 정도 걸릴 수 있습니다. timeout이 발생했다고 해서 정리 작업까지 수행된 것은 아닙니다. 재시도하기 전에 status와 logs를 확인하세요. 로컬 .deployment.json 파일은 삭제하지 마세요. 이 파일에는 배포를 관리하는 데 필요한 ID와 설정이 기록되며, 사용자 인증 정보는 포함되지 않습니다. 이후의 명령어는 레시피 디렉터리에서 실행하세요.

작업 보내기

Claude Code 웹 앱에서 조직, 연결된 저장소, 자체 호스팅 환경을 선택하세요. 확인 단계에서 사용할 파일을 생성하려면 다음 프롬프트를 정확히 그대로 보내세요.
작업을 보내면 세션이 큐에 추가되고 워커 생성이 트리거됩니다.

결과 확인

터미널에서 배포 목록을 조회하세요.
Connected: True와 샌드박스 ID가 포함된 Worker: 줄이 출력되는지 확인하세요. Claude가 작업을 마치면 다음 명령어의 [WORKER-ID]를 해당 ID로 바꾸세요.
예상 출력은 CWS_CLOUD_OK입니다. 이 단계에서는 Claude의 응답과 관계없이 Sandboxes SDK로 샌드박스의 파일을 직접 확인합니다. 워커가 유휴 상태로 전환되어 중지되기 전에 파일을 조회하세요. 다른 작업을 보냈다면 해당 작업이 생성한 파일을 대신 조회하세요.

정리

결과를 저장한 후 다음과 같이 배포를 중지하세요.
이 명령어는 오케스트레이터와 해당 워커를 중지하고, 실행 중인 워커가 남아 있지 않은지 확인한 후 .deployment.json 파일을 삭제합니다. 이때 실행 중인 작업은 중단되고, 해당 샌드박스에만 저장된 파일은 삭제됩니다. Claude 환경은 그대로 유지되므로 나중에 다시 배포할 때 사용할 수 있습니다.

인테그레이션 작동 방식

이 레시피는 두 가지 역할을 배포합니다. 워커는 Anthropic git 프록시를 통해 저장소에 액세스합니다. 레시피는 로컬 Claude 로그인 정보나 GitHub 토큰을 워커에 복사하지 않습니다. 단, 모델 요청, 프롬프트, 응답, 도구 결과는 여전히 Anthropic을 거칩니다. 훅은 Anthropic 온디맨드 러너 규약에 따라 워크로드를 비동기로 제출하고 일회용 작업 지시서로 등록합니다. 레시피는 오케스트레이터 프로세스가 재시작된 후 중복 제출이 발생하지 않도록 지시서 ID를 오케스트레이터의 디스크에 기록합니다. 생성 여부가 불확실하면 안전하게 실패(fail closed) 처리되므로, 재시도하기 전에 상태를 검사해야 합니다. 워커는 프로세스 래퍼 안에서 실행됩니다. 이 래퍼는 종료 코드를 기록하고, 프로세스를 재시도하지 않고 샌드박스를 완료합니다. 시작에 실패하면 로그를 확인하세요. 샌드박스가 완료되었다는 사실만으로는 작업이 성공했다고 볼 수 없습니다. 레시피는 Claude Code 버전을 2.1.284로, Sandboxes SDK 버전을 1.14.2로 고정합니다. 각 샌드박스는 python:3.12-bookworm에서 시작하며 부트스트랩 과정에서 Git과 Claude를 설치합니다. 워커 시작 과정에는 스케줄링, 설치, 등록, 저장소 체크아웃이 포함됩니다.

배포 설정하기

deploy를 실행할 때 옵션을 지정하세요. 두 수명 옵션 모두 1~720시간 범위의 값을 사용할 수 있습니다. 유휴 timeout은 최대 10,080분(7일)이며, 워커 수명에서 5분을 뺀 값보다 짧아야 합니다. 오케스트레이터를 30일 동안 실행하려면 배포 시 --orchestrator-hours 720을 추가하세요. 수명은 생성 후에 연장할 수 없습니다. Claude 환경당 레시피 배포는 하나만 실행하세요. 레시피는 오케스트레이터 샌드박스를 자동으로 교체하지 않습니다. 레시피의 수퍼바이저는 같은 샌드박스 안에서 Claude Code 오케스트레이터 프로세스를 재시작하므로 로컬 주문 원장이 유지됩니다. 하지만 샌드박스가 실패하거나 만료되면 이 원장도 사라집니다. 배포를 모니터링하고, 세션 결과를 저장하고, 만료 전에 교체 계획을 세우세요. 계획된 교체를 진행하려면 실행 중인 작업을 종료하고 stop을 실행한 다음 다시 배포하세요. 제출 결과가 불확실하거나 호스트 장애가 발생해 복구해야 할 때는 먼저 대기 중인 세션과 기존 리소스를 점검하세요. 툴체인을 추가하려면 레시피의 bootstrap.sh 스크립트에서 워커 분기를 편집한 다음 사용 중인 저장소로 테스트하세요. 라이프사이클 훅과 세션 설정은 자체 호스팅 환경에서 세션 사용자 지정하기를 참조하세요.

세션 모니터링

연결 상태, 워커, 최근 로그를 확인하세요.
status는 오케스트레이터의 연결 상태와 대략적인 만료 시간을 보고합니다. 모든 세션이 유휴 상태가 되고 유휴 timeout이 지난 후 대기열에 추가된 새 세션이 없으면 워커 수는 0이 됩니다. 용량을 사용할 수 있으면 새 세션이 워커를 생성합니다. 후속 요청은 현재 워커가 연결되어 있는 동안 해당 워커에서 계속 처리될 수 있습니다. 오케스트레이터의 health 리스너는 자체 샌드박스 내부에만 있습니다. 이 명령어는 Sandboxes SDK를 사용하므로 공개 엔드포인트가 필요하지 않습니다. 워커의 설치 출력을 확인하려면 해당 워커의 로그 명령어에 --bootstrap을 추가하세요. 이 로그에는 설정이 끝난 후의 Anthropic 러너 출력도 포함됩니다.

워커가 중지되기 전에 결과 저장하기

Anthropic 러너는 유휴 세션을 해제한 뒤 종료됩니다. 또한 샌드박스 수명이 끝나기 5분 전부터 종료 절차를 시작합니다. 그래도 오래 실행되는 턴은 수명의 강제 종료 시점에 도달해 중단될 수 있습니다. 보존할 작업이 있다면 Claude에게 커밋하고 푸시하도록 요청한 다음, GitHub에서 브랜치를 확인하세요. 텍스트 아티팩트는 레시피의 read 명령어를 사용해 출력을 로컬 파일로 리디렉션하세요. 이 레시피는 자동 푸시나 스냅샷을 설정하지 않습니다. 해제 이후의 후속 요청은 새 워커에서 실행될 수 있으므로, 푸시하지 않은 파일이 남아 있으리라고 기대하지 마세요. 다른 워크플로의 영속성 옵션은 파일 시스템 스냅샷을 참조하세요. Anthropic 러너의 해제 동작은 Anthropic 러너 레퍼런스를 참조하세요.

문제 해결

아웃바운드 트래픽을 제한하는 경우 Anthropic 러너 트래픽과 Debian, PyPI, Claude 다운로드 서비스로부터의 부트스트랩 다운로드를 모두 허용해야 합니다. 이 레시피는 이그레스 허용 목록을 설정하지 않습니다. 네트워크 요구 사항과 보안 강화 방법은 Anthropic의 프로덕션 배포 가이드를 참고하세요.

다음 단계

다음 리소스를 활용해 변경 사항을 검증하거나 다른 인테그레이션을 살펴보세요.
마지막 수정일 2026년 10월 15일