Cloud Run 샌드박스는 2세대 환경의 기존 서비스 내에서 신뢰할 수 없는 코드를 실행하거나 AI 에이전트와 같은 도구를 실행할 수 있는 빠르고 안전하며 격리된 환경을 제공합니다. 샌드박스는 지연 시간이 매우 최적화되어 있으며 컨테이너와 동일한 인스턴스 내에서 실행되어 할당된 CPU와 메모리를 공유합니다.
이 페이지에서는 컨테이너에서 샌드박스를 구성하는 방법을 설명합니다. CLI를 사용하여 샌드박스와 상호작용하는 코드를 작성하는 방법에 대한 자세한 내용은 Cloud Run의 코드 실행을 참조하세요.
시작하기 전에
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
- gcloud CLI를 설치하고 초기화합니다.
- 2세대 실행 환경에서 Cloud Run 서비스를 배포합니다 .
필요한 역할
Cloud Run 서비스를 구성하고 배포하는 데 필요한 권한을 얻으려면 관리자에게 다음 IAM 역할을 부여해 달라고 요청하세요.
- Cloud Run 서비스에 대한 Cloud Run 개발자(
roles/run.developer) 역할 - 서비스 계정 사용자 (
roles/iam.serviceAccountUser) 서비스 ID에 대한
소스 코드에서 서비스 또는 함수를 배포하는 경우 프로젝트와 Cloud Build 서비스 계정에 추가 역할을 부여해야 합니다.
Cloud Run과 연결된 IAM 역할 및 권한 목록은 Cloud Run IAM 역할 및 Cloud Run IAM 권한을 참조하세요. Cloud Run 서비스가 Cloud 클라이언트 라이브러리와 같은Google Cloud API와 상호작용하는 경우에는 서비스 ID 구성 가이드를 참조하세요. 역할 부여에 대한 자세한 내용은 배포 권한 및 액세스 관리를 참조하세요.
샌드박스 사용 설정
구성을 변경하면 새 버전이 생성됩니다. 이를 변경하는 명시적 업데이트가 없으면 이후 버전에도 이 구성 설정이 자동으로 적용됩니다.
샌드박스를 사용 설정하면 Cloud Run 서비스가 2세대 실행 환경에 배포됩니다. Cloud Run 서비스에서 샌드박스를 사용 설정하려면 Google Cloud CLI 또는 YAML 구성을 사용하세요.
gcloud
서비스를 배포하거나 업데이트하려면 --sandbox-launcher 플래그를 지정하세요.
새 서비스를 배포하려면 다음 명령어를 실행합니다.
gcloud beta run deploy SERVICE --image IMAGE_URL --sandbox-launcher
다음을 바꿉니다.
- SERVICE: Cloud Run 서비스 이름
- IMAGE_URL: 컨테이너 이미지에 대한 참조(예:
us-docker.pkg.dev/cloudrun/container/hello:latest). Artifact Registry를 사용하는 경우 저장소 REPO_NAME이 이미 생성되어 있어야 합니다. URL은LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG형식을 따릅니다.
기존 서비스를 업데이트하려면 다음 명령어를 실행합니다.
gcloud beta run services update SERVICE --sandbox-launcher
YAML
새 서비스를 만드는 경우에는 이 단계를 건너뜁니다. 기존 서비스를 업데이트하는 경우 YAML 구성을 다운로드합니다.
gcloud run services describe SERVICE --format export > service.yaml
컨테이너 구성 내에서
sandboxLauncher속성이true로 설정되도록 YAML 파일을 업데이트합니다.apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE annotations: run.googleapis.com/launch-stage: BETA spec: template: spec: containers: - name: CONTAINER image: IMAGE_URL sandboxLauncher: true port: 8080다음을 바꿉니다.
- SERVICE: Cloud Run 서비스 이름
- CONTAINER: 컨테이너 이름
- IMAGE_URL: 컨테이너 이미지에 대한 참조(예:
us-docker.pkg.dev/cloudrun/container/hello:latest). Artifact Registry를 사용하는 경우 저장소 REPO_NAME이 이미 생성되어 있어야 합니다. URL은LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG형식을 따릅니다.
다음 명령어를 사용하여 서비스를 만들거나 업데이트합니다.
gcloud run services replace service.yaml
gcloud run services replace명령어는service.yaml파일이 있는 경우 기본적으로 이 파일을 사용합니다.
샌드박스는 호스트 컨테이너에 할당된 CPU와 메모리를 공유합니다. 기본 컨테이너의 CPU 및 메모리 한도가 애플리케이션과 동시에 실행하는 활성 샌드박스를 모두 수용할 수 있는지 확인합니다.
샌드박스 사용 중지
서비스에서 샌드박스를 실행하는 기능을 사용 중지하려면 Google Cloud CLI 또는 YAML 구성을 사용하세요.
gcloud
다음 명령어를 실행하여 --no-sandbox-launcher 플래그를 사용하여 서비스를 업데이트합니다.
gcloud beta run services update SERVICE --no-sandbox-launcher
SERVICE를 서비스 이름으로 바꿉니다.
YAML
새 서비스를 만드는 경우에는 이 단계를 건너뜁니다. 기존 서비스를 업데이트하는 경우 YAML 구성을 다운로드합니다.
gcloud run services describe SERVICE --format export > service.yaml
컨테이너 구성 내에서
sandboxLauncher속성을 삭제하도록 YAML 파일을 업데이트합니다.apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE spec: template: spec: containers: - name: CONTAINER image: IMAGE_URL port: 8080다음을 바꿉니다.
- SERVICE: Cloud Run 서비스 이름
- CONTAINER: 컨테이너 이름
- IMAGE_URL: 컨테이너 이미지에 대한 참조(예:
us-docker.pkg.dev/cloudrun/container/hello:latest). Artifact Registry를 사용하는 경우 저장소 REPO_NAME이 이미 생성되어 있어야 합니다. URL은LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG형식을 따릅니다.
다음 명령어를 사용하여 서비스를 만들거나 업데이트합니다.
gcloud run services replace service.yaml
gcloud run services replace명령어는service.yaml파일이 있는 경우 기본적으로 이 파일을 사용합니다.
샌드박스 설정 보기
Cloud Run 서비스의 현재 샌드박스 설정을 보려면 다음 안내를 따르세요.
콘솔
콘솔 Google Cloud 에서 Cloud Run 서비스 페이지로 이동합니다.
서비스를 클릭하여 서비스 세부정보 페이지를 엽니다.
업데이트 기록 탭을 클릭합니다.
컨테이너 탭에서 샌드박스 런처 설정을 찾아 샌드박스 처리된 컨테이너가 사용 설정 또는 사용 중지되었는지 확인합니다.
gcloud
다음 명령어를 사용하세요.
gcloud beta run services describe SERVICE
SERVICE를 서비스 이름으로 바꿉니다.
샌드박스 처리된 컨테이너가 사용 설정되었는지 확인하려면 반환된 구성에서
sandboxLauncher: true속성을 찾습니다.
서비스에서 샌드박스의 신뢰할 수 없는 코드를 실행하려면 Cloud Run의 코드 실행을 참조하세요.