작업자 풀의 샌드박스 구성

Cloud Run 샌드박스는 작업자 풀 내에서 에이전트 워크플로를 실행하고, 신뢰할 수 없는 페이로드를 실행하고, 이벤트를 격리된 상태로 처리할 수 있는 빠르고 안전하며 격리된 환경을 제공합니다. 샌드박스는 지연 시간이 매우 최적화되어 있으며 컨테이너와 동일한 인스턴스 내에서 실행되어 할당된 CPU와 메모리를 공유합니다.

이 페이지에서는 컨테이너에서 샌드박스를 구성하는 방법을 설명합니다. CLI를 사용하여 샌드박스와 상호작용하는 코드를 작성하는 방법에 대한 자세한 내용은 Cloud Run의 코드 실행을 참조하세요.

시작하기 전에

  1. 계정에 로그인합니다. Google Cloud 를 처음 사용하는 경우 Google Cloud, 계정을 만들어 실제 시나리오에서 제품의 성능을 평가하세요. 신규 고객에게는 워크로드를 실행, 테스트, 배포하는 데 사용할 수 있는 $300의 무료 크레딧이 제공됩니다.
  2. 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 the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. 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 the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  5. Verify that billing is enabled for your Google Cloud project.

  6. gcloud CLI를 설치하고 초기화합니다.
  7. Cloud Run 작업자 풀을 배포합니다.

필요한 역할

Cloud Run 작업자 풀을 구성하고 배포하는 데 필요한 권한을 얻으려면 관리자에게 다음 IAM 역할을 부여해 달라고 요청하세요.

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

  1. 새 작업자 풀을 만드는 경우에는 이 단계를 건너뜁니다. 기존 작업자 풀을 업데이트하는 경우 YAML 구성을 다운로드합니다.

    gcloud run worker-pools describe WORKER_POOL --format export > worker-pool.yaml
  2. 컨테이너 구성 내에서 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)
  3. 다음 명령어를 사용하여 작업자 풀을 만들거나 업데이트합니다.

    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

  1. 새 작업자 풀을 만드는 경우에는 이 단계를 건너뜁니다. 기존 작업자 풀을 업데이트하는 경우 YAML 구성을 다운로드합니다.

    gcloud run worker-pools describe WORKER_POOL --format export > worker-pool.yaml
  2. 컨테이너 구성 내에서 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)
  3. 다음 명령어를 사용하여 작업자 풀을 만들거나 업데이트합니다.

    gcloud run worker-pools replace worker-pool.yaml

    gcloud run worker-pools replace 명령어는 worker-pool.yaml 파일이 있는 경우 기본적으로 이 파일을 사용합니다.

샌드박스 설정 보기

Cloud Run 작업자 풀의 현재 샌드박스 설정을 보려면 다음 안내를 따르세요.

콘솔

  1. Google Cloud 콘솔에서 Cloud Run **작업자 풀** 페이지로 이동합니다.

    Cloud Run 작업자 풀로 이동

  2. 작업자 풀을 클릭하여 작업자 풀 세부정보 페이지를 엽니다.

  3. 버전 탭을 클릭합니다.

  4. 컨테이너 탭에서 샌드박스 실행기 설정을 찾아 샌드박스 처리된 컨테이너가 사용 설정되어 있는지 사용 중지되어 있는지 확인합니다.

gcloud

  1. 다음 명령어를 사용하세요.

    gcloud run worker-pools describe WORKER_POOL

    WORKER_POOL을 작업자 풀 이름으로 바꿉니다.

  2. 샌드박스 처리된 컨테이너가 사용 설정되어 있는지 확인하려면 반환된 구성에서 sandboxLauncher: true 속성을 찾습니다.

작업자 풀의 샌드박스에서 신뢰할 수 없는 코드를 실행하려면 Cloud Run의 코드 실행을 참조하세요.