Cloud Run 인스턴스 만들기 및 관리

이 페이지에서는 개별적으로 주소를 지정할 수 있는 싱글톤 Cloud Run 인스턴스를 만들고 관리하는 방법을 설명합니다. 수신 트래픽에 따라 확장되는 Cloud Run 서비스와 달리 인스턴스는 수명 주기 전환 (생성, 중지, 시작, 업데이트, 삭제)을 사용하여 수동으로 관리하는 전용 컴퓨팅 컨테이너입니다.

지원되는 리전

Cloud Run 인스턴스는 지원되는 리전에서 만들 수 있습니다. 다음 리전은 제외됩니다.

  • europe-west1
  • us-central1
  • us-east1

시작하기 전에

  1. 설정 페이지에 설명된 대로 Cloud Run용 새 프로젝트를 설정합니다.

  2. Cloud Run Admin API 사용 설정:

    gcloud services enable run.googleapis.com
    
  3. gcloud 구성요소를 최신 버전으로 업데이트합니다.

    gcloud components update
  4. 프로젝트에서 인증되지 않은 호출을 제한하는 도메인 제한 조직 정책이 적용되는 경우 비공개 서비스 테스트의 설명대로 배포된 서비스에 액세스해야 합니다.

필요한 역할

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

Cloud Run과 연결된 IAM 역할 및 권한 목록은 Cloud Run IAM 역할 및 Cloud Run IAM 권한을 참조하세요. Cloud Run 인스턴스가 Cloud 클라이언트 라이브러리와 같은Google Cloud API와 상호작용하는 경우에는 서비스 ID 구성 가이드를 참고하세요. 역할 부여에 대한 자세한 내용은 배포 권한 및 액세스 관리를 참조하세요.

인스턴스 만들기

컨테이너 이미지를 배포하여 새 인스턴스를 만들 수 있습니다. 이름을 제공하지 않으면 이름이 자동으로 생성됩니다.

gcloud

gcloud beta run instances create 명령어를 사용하여 새 Cloud Run 인스턴스를 만들려면 다음 단계를 따르세요.

gcloud beta run instances create INSTANCE_NAME \
    --image IMAGE_URL \
    --region REGION

gcloud beta run instances deploy 명령어를 사용하여 새 Cloud Run 인스턴스를 만들려면 다음 단계를 따르세요.

gcloud beta run instances deploy INSTANCE_NAME \
    --image IMAGE_URL \
    --region REGION

다음을 바꿉니다.

  • INSTANCE_NAME: 만들려는 인스턴스의 이름입니다. 인스턴스 이름은 프로젝트 및 리전 내에서 고유해야 합니다. 기존 Cloud Run 인스턴스 또는 서비스와 동일한 이름으로 인스턴스를 만들 수 없습니다.
  • IMAGE_URL: 컨테이너 이미지에 대한 참조(예: us-docker.pkg.dev/cloudrun/container/instances:latest)
  • REGION: 인스턴스를 실행하는 Google Cloud 리전(예: europe-west1)

클라이언트 라이브러리

코드에서 새 인스턴스를 만들려면 다음 안내를 따르세요.

REST API

새 Cloud Run 인스턴스를 만들려면 POST HTTP 요청을 instances 엔드포인트로 보냅니다.

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -H "Content-Type: application/json" \
  -d '{
    "containers": [{
      "image": "IMAGE_URL",
      "ports": [{"containerPort": PORT}]
    }],
    "ingress": "INGRESS_TRAFFIC_ALL",
    "invokerIamDisabled": true,
    "timeout": "3600s"
  }' \
  "https://run.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/instances?instance_id=INSTANCE_NAME"

다음을 바꿉니다.

  • IMAGE_URL: 컨테이너 이미지 URL
  • PORT: 컨테이너가 리슨하는 포트입니다.
  • PROJECT_ID: Google Cloud 프로젝트 ID입니다.
  • REGION: 배포의 Google Cloud 리전
  • INSTANCE_NAME: 새 인스턴스의 이름입니다.

인스턴스를 만들면 인스턴스에 다음과 같은 형식의 Cloud Run URL이 할당됩니다.

https://INSTANCE_NAME-PROJECT_NUMBER.REGION.run.app

인스턴스 업데이트

컨테이너 이미지, 포트, 환경 변수와 같은 인스턴스를 업데이트하면 인스턴스가 다시 시작됩니다.

gcloud

gcloud beta run instances update 명령어를 사용하여 Cloud Run 인스턴스를 업데이트하려면 다음 단계를 따르세요.

gcloud beta run instances update INSTANCE_NAME \
    --image NEW_IMAGE_URL \
    --region REGION

gcloud beta run instances deploy 명령어를 사용하여 Cloud Run 인스턴스를 업데이트하려면 다음 단계를 따르세요.

gcloud beta run instances deploy INSTANCE_NAME \
    --image IMAGE_URL \
    --region REGION

REST API

API에서 Cloud Run 인스턴스 구성을 업데이트하려면 인스턴스 URI 엔드포인트로 PATCH HTTP 요청을 보냅니다.

curl -H "Content-Type: application/json" \
  -X PATCH \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  -d '{template: {containers: [{image: "IMAGE_URL"}]}}' \
  "https://run.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/instances/INSTANCE_NAME"

인스턴스 중지

실행 중인 Cloud Run 인스턴스를 중지하려면 stop 명령어 또는 메서드를 사용하세요.

gcloud

인스턴스를 중지하려면 다음 안내를 따르세요.

gcloud beta run instances stop INSTANCE_NAME \
    --region REGION

클라이언트 라이브러리

코드에서 실행 중인 인스턴스를 중지하려면 다음 안내를 따르세요.

REST API

인스턴스를 중지하려면 :stop 데코레이터와 함께 POST HTTP 요청을 보냅니다.

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  "https://run.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/instances/INSTANCE_NAME:stop"

인스턴스 시작 또는 다시 시작

중지된 인스턴스를 시작하거나 기존 인스턴스를 강제로 다시 시작하려면 start 명령어 또는 메서드를 사용하세요.

gcloud

인스턴스를 시작하거나 다시 시작하려면 다음 단계를 따르세요.

gcloud beta run instances start INSTANCE_NAME \
    --region REGION

클라이언트 라이브러리

코드에서 중지된 인스턴스를 시작하려면 다음 안내를 따르세요.

REST API

인스턴스를 시작하려면 :start 데코레이터와 함께 POST HTTP 요청을 보냅니다.

curl -X POST \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  "https://run.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/instances/INSTANCE_NAME:start"

프로젝트의 인스턴스 목록 보기

프로젝트의 활성 및 비활성 인스턴스를 모두 볼 수 있습니다.

gcloud

특정 리전의 인스턴스를 나열하려면 다음을 실행합니다.

gcloud beta run instances list \
    --region REGION

REGION을 인스턴스를 실행하는 Google Cloud 리전으로 바꿉니다.

클라이언트 라이브러리

코드에서 활성 및 비활성 인스턴스를 나열하려면 다음 안내를 따르세요.

REST API

인스턴스 목록을 가져오려면 GET HTTP 요청을 보냅니다.

curl -X GET \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  "https://run.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/instances"

인스턴스 세부정보 보기

describe 명령어 또는 메서드를 사용하여 구성 세부정보와 현재 상태를 확인합니다.

gcloud

인스턴스를 설명하려면 다음 단계를 따르세요.

gcloud beta run instances describe INSTANCE_NAME \
    --region REGION

클라이언트 라이브러리

코드에서 인스턴스 구성 세부정보와 상태를 보려면 다음 안내를 따르세요.

REST API

인스턴스를 설명하려면 GET HTTP 요청을 전송합니다.

curl -X GET \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  "https://run.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/instances/INSTANCE_NAME"

인스턴스 삭제

인스턴스를 삭제하면 프로젝트에서 구성, 메타데이터, 공개 직접 URL 매핑, ID 역할이 영구적으로 삭제됩니다.

gcloud

인스턴스를 삭제하려면 다음 안내를 따르세요.

gcloud beta run instances delete INSTANCE_NAME \
    --region REGION

클라이언트 라이브러리

코드에서 인스턴스를 삭제하려면 다음 안내를 따르세요.

REST API

인스턴스를 삭제하려면 DELETE HTTP 요청을 보냅니다.

curl -X DELETE \
  -H "Authorization: Bearer $(gcloud auth print-access-token)" \
  "https://run.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/instances/INSTANCE_NAME"

다음 단계