Cloud Run 샌드박스는 작업자 풀 내에서 에이전트 워크플로를 실행하고, 신뢰할 수 없는 페이로드를 실행하고, 이벤트를 격리된 상태로 처리할 수 있는 빠르고 안전하며 격리된 환경을 제공합니다. 샌드박스는 지연 시간이 매우 최적화되어 있으며 컨테이너와 동일한 인스턴스 내에서 실행되어 할당된 CPU와 메모리를 공유합니다.
이 페이지에서는 컨테이너에서 샌드박스를 구성하는 방법을 설명합니다. CLI를 사용하여 샌드박스와 상호작용하는 코드를 작성하는 방법에 대한 자세한 내용은 Cloud Run의 코드 실행을 참조하세요.
시작하기 전에
- 계정에 로그인합니다. Google Cloud 를 처음 사용하는 경우 Google Cloud, 계정을 만들어 실제 시나리오에서 제품의 성능을 평가하세요. 신규 고객에게는 워크로드를 실행, 테스트, 배포하는 데 사용할 수 있는 $300의 무료 크레딧이 제공됩니다.
-
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.
-
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를 설치하고 초기화합니다.
- Cloud Run 작업자 풀을 배포합니다.
필요한 역할
Cloud Run 작업자 풀을 구성하고 배포하는 데 필요한 권한을 얻으려면 관리자에게 다음 IAM 역할을 부여해 달라고 요청하세요.
- Cloud Run 개발자 (
roles/run.developer) 역할(Cloud Run 작업자 풀에 대한) - 서비스 계정 사용자 (
roles/iam.serviceAccountUser) 역할(서비스 ID에 대한)
Cloud Run과 연결된 IAM 역할 및 권한 목록은 다음 항목을 참조하세요. Cloud Run IAM 역할 및 Cloud Run IAM 권한 Cloud Run 작업자 풀이 Cloud 클라이언트 라이브러리와 같은Google Cloud API와 상호작용하는 경우에는 서비스 ID 구성 가이드를 참조하세요. 역할 부여에 대한 자세한 내용은 배포 권한 및 액세스 관리를 참조하세요.
샌드박스 사용 설정
구성을 변경하면 새 버전이 생성됩니다. 이를 변경하는 명시적 업데이트가 없으면 이후 버전에도 이 구성 설정이 자동으로 적용됩니다.
Cloud Run 작업자 풀에서 샌드박스를 사용 설정하려면 Google Cloud CLI 또는 YAML 구성을 사용하세요.
gcloud
작업자 풀을 배포하거나 업데이트하려면 --sandbox-launcher 플래그를 지정합니다.
새 작업자 풀을 배포하려면 다음 명령어를 실행하세요.
gcloud beta run worker-pools deploy WORKER_POOL --image IMAGE_URL --sandbox-launcher
다음을 바꿉니다.
- WORKER_POOL: Cloud Run 작업자 풀 이름
IMAGE_URL: 작업자 풀이 포함된 컨테이너 이미지에 대한 참조(예:us-docker.pkg.dev/cloudrun/container/worker-pool:latest)
기존 작업자 풀을 업데이트하려면 다음 명령어를 실행하세요.
gcloud beta run worker-pools update WORKER_POOL --sandbox-launcher
YAML
새 작업자 풀을 만드는 경우에는 이 단계를 건너뜁니다. 기존 작업자 풀을 업데이트하는 경우 YAML 구성을 다운로드합니다.
gcloud run worker-pools describe WORKER_POOL --format export > worker-pool.yaml
컨테이너 구성 내에서
sandboxLauncher속성이true로 설정되도록 YAML 파일을 업데이트합니다.apiVersion: run.googleapis.com/v1 kind: WorkerPool metadata: name: WORKER_POOL annotations: run.googleapis.com/launch-stage: BETA spec: template: spec: containers: - name: CONTAINER image: IMAGE_URL sandboxLauncher: true다음을 바꿉니다.
- WORKER_POOL: Cloud Run 작업자 풀 이름
- CONTAINER: 컨테이너 이름
IMAGE_URL: 작업자 풀이 포함된 컨테이너 이미지에 대한 참조(예:us-docker.pkg.dev/cloudrun/container/worker-pool:latest)
다음 명령어를 사용하여 작업자 풀을 만들거나 업데이트합니다.
gcloud run worker-pools replace worker-pool.yaml
gcloud run worker-pools replace명령어는worker-pool.yaml파일이 있는 경우 기본적으로 이 파일을 사용합니다.
샌드박스는 호스트 컨테이너에 할당된 CPU와 메모리를 공유합니다. 기본 컨테이너의 CPU 및 메모리 한도가 애플리케이션과 동시에 실행하는 활성 샌드박스를 모두 수용할 수 있는지 확인합니다.
샌드박스 사용 중지
작업자 풀에서 샌드박스를 실행하는 기능을 사용 중지하려면 Google Cloud CLI 또는 YAML 구성을 사용하세요.
gcloud
다음 명령어를 실행하여 --no-sandbox-launcher 플래그를 사용하여 작업자 풀을 업데이트합니다.
gcloud beta run worker-pools update WORKER_POOL --no-sandbox-launcher
WORKER_POOL을 작업자 풀 이름으로 바꿉니다.
YAML
새 작업자 풀을 만드는 경우에는 이 단계를 건너뜁니다. 기존 작업자 풀을 업데이트하는 경우 YAML 구성을 다운로드합니다.
gcloud run worker-pools describe WORKER_POOL --format export > worker-pool.yaml
컨테이너 구성 내에서
sandboxLauncher속성을 삭제하도록 YAML 파일을 업데이트합니다.apiVersion: run.googleapis.com/v1 kind: WorkerPool metadata: name: WORKER_POOL spec: template: spec: containers: - name: CONTAINER image: IMAGE_URL다음을 바꿉니다.
- WORKER_POOL: Cloud Run 작업자 풀 이름
- CONTAINER: 컨테이너 이름
IMAGE_URL: 작업자 풀이 포함된 컨테이너 이미지에 대한 참조(예:us-docker.pkg.dev/cloudrun/container/worker-pool:latest)
다음 명령어를 사용하여 작업자 풀을 만들거나 업데이트합니다.
gcloud run worker-pools replace worker-pool.yaml
gcloud run worker-pools replace명령어는worker-pool.yaml파일이 있는 경우 기본적으로 이 파일을 사용합니다.
샌드박스 설정 보기
Cloud Run 작업자 풀의 현재 샌드박스 설정을 보려면 다음 안내를 따르세요.
콘솔
Google Cloud 콘솔에서 Cloud Run **작업자 풀** 페이지로 이동합니다.
작업자 풀을 클릭하여 작업자 풀 세부정보 페이지를 엽니다.
버전 탭을 클릭합니다.
컨테이너 탭에서 샌드박스 실행기 설정을 찾아 샌드박스 처리된 컨테이너가 사용 설정되어 있는지 사용 중지되어 있는지 확인합니다.
gcloud
다음 명령어를 사용하세요.
gcloud run worker-pools describe WORKER_POOL
WORKER_POOL을 작업자 풀 이름으로 바꿉니다.
샌드박스 처리된 컨테이너가 사용 설정되어 있는지 확인하려면 반환된 구성에서
sandboxLauncher: true속성을 찾습니다.
작업자 풀의 샌드박스에서 신뢰할 수 없는 코드를 실행하려면 Cloud Run의 코드 실행을 참조하세요.