롤백, 점진적 롤백, 트래픽 마이그레이션

Cloud Run을 사용하면 트래픽을 수신할 버전을 지정하고 특정 버전에 수신되는 트래픽 백분율을 지정할 수 있습니다. 이 기능을 사용하면 이전 버전으로 롤백, 점진적인 버전 출시, 여러 버전 간 트래픽 분할을 수행할 수 있습니다. 이 페이지에서는 이 기능을 사용하여 Cloud Run 버전에 대해 트래픽을 관리하는 방법을 설명합니다.

트래픽 라우팅 조정은 즉시 적용되지 않습니다. 버전에 대한 트래픽을 변경하면 현재 처리 중인 모든 요청이 완료까지 계속됩니다. 진행 중인 요청은 삭제되지 않으며 전환 기간 동안 새 버전 또는 이전 버전으로 전달될 수 있습니다.

세션 어피니티를 사용 설정하여 여러 버전 간에 트래픽을 분할하는 경우, 트래픽 분할에 대한 세션 어피니티의 영향에 대한 자세한 내용은 세션 어피니티 및 트래픽 분할을 참조하세요.

이전 버전으로 롤백

이전 버전으로 롤백하려면 다음 안내를 따르세요.

콘솔

  1. Cloud Run으로 이동

  2. 서비스 목록에서 서비스를 찾고 클릭합니다.

  3. 버전 탭을 클릭하여 해당 서비스의 현재 버전 목록을 표시합니다.

  4. 버전 목록에서 롤백하려는 버전의 오른쪽에 있는 줄임표 아이콘을 클릭합니다.

    manage-traffic

  5. 트래픽 관리를 클릭하여 트래픽 관리 양식을 표시합니다.

    1. 드롭다운 목록에서 롤백하려는 이전 버전을 선택합니다.
    2. 이전 버전의 트래픽 백분율을 100으로 설정합니다.
    3. 현재 제공 중인 버전의 백분율을 0으로 설정합니다.
    4. 저장을 클릭합니다.

명령줄

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

gcloud run services update-traffic SERVICE --to-revisions REVISION=100

  • SERVICE를 서비스 이름으로 바꿉니다.
  • REVISION을 롤백할 버전의 이름으로 바꿉니다.

YAML

YAML 형식으로 정리된 결과를 생성하는 gcloud run services describe --format export 명령어를 사용하면 기존 서비스 구성을 다운로드해서 볼 수 있습니다. 그런 다음 아래 설명된 필드를 수정하고 gcloud run services replace 명령어를 사용하여 수정된 YAML을 업로드할 수 있습니다. 설명된 대로 필드만 수정해야 합니다.

  1. 구성을 보고 다운로드하려면 다음을 실행합니다.

    gcloud run services describe SERVICE --format export > service.yaml
  2. spec 속성 아래에서 traffic 속성을 찾아 다음과 같이 업데이트합니다.

    apiVersion: serving.knative.dev/v1
    kind: Service
    metadata:
     name: SERVICE
    spec:
    ...
      traffic:
      - revisionName: REVISION
        percent: 100
    

    다음과 같이 바꿉니다.

    • REVISION을 롤백할 버전의 이름으로 바꿉니다.
  3. 다음 명령어를 사용하여 서비스를 새 구성으로 바꿉니다.

    gcloud run services replace service.yaml
  4. 업데이트가 완료될 때까지 기다립니다. 롤백하는 소스 버전이 배포되었으며 트래픽의 0%를 처리하고 있다는 메시지가 표시됩니다.

Terraform

Terraform 구성을 적용하거나 삭제하는 방법은 기본 Terraform 명령어를 참조하세요.

.tf 파일에 다음을 추가합니다.

resource "google_cloud_run_v2_service" "default" {
  name     = "cloudrun-srv"
  location = "us-central1"

  template {}

  traffic {
    percent = 100
    # This revision needs to already exist
    revision = "cloudrun-srv-green"
    type     = "TRAFFIC_TARGET_ALLOCATION_TYPE_REVISION"

  }
}

버전에 대한 점진적 출시

새 버전을 점진적으로 출시하려면 다음 안내를 따르세요.

콘솔

  1. Cloud Run으로 이동

  2. 서비스 목록에서 서비스를 찾고 클릭합니다.

  3. 새 버전 배포를 클릭합니다.

  4. 필요에 따라 배포 양식을 작성하고 이 버전을 즉시 제공 라벨이 표시된 체크박스가 선택 해제되었는지 확인합니다.

  5. 배포를 클릭합니다.

  6. 트래픽 관리를 클릭합니다.

  7. 새 버전이 나열되지만 백분율이 0으로 설정되어 있으면 현재 트래픽을 제공하지 않는 것입니다. 다음 안내를 따라 양식을 작성하세요.

    1. 원하는 백분율로 설정합니다(예: 5). 현재 제공 중인 버전의 백분율이 동일한 크기로 자동으로 줄어듭니다.
    2. 저장을 클릭합니다.
    3. 트래픽 관리 단계를 반복하되 백분율을 변경하여 새 버전에 필요한 만큼 백분율을 늘립니다. 트래픽 백분율을 변경하기 위해 다시 배포할 필요는 없습니다.

명령줄

  1. 처음에는 트래픽을 수신하지 않도록 설정하고, 점진적으로 출시할 버전을 배포합니다.

    gcloud run deploy --image IMAGE --no-traffic

    IMAGE를 배포할 이미지로 바꿉니다.

  2. 새 버전이 처리할 트래픽 백분율을 지정합니다(예: 5퍼센트).

    gcloud run services update-traffic SERVICE --to-revisions REVISION=PERCENTAGE
    • SERVICE를 서비스 이름으로 바꿉니다.
    • REVISION을 점진적으로 출시할 버전의 이름으로 바꿉니다. 최신 버전을 지정하려면 LATEST를 사용할 수 있습니다(예: LATEST=5).
    • PERCENTAGE를 새 버전으로 보낼 트래픽의 백분율로 바꿉니다. 예를 들어 5로 설정하면 트래픽의 5%를 보내게 됩니다.
  3. 버전 성능이 만족스러우면 앞의 update-traffic 단계를 반복하되 백분율 값을 원하는 값으로 늘립니다.

YAML

YAML 형식으로 정리된 결과를 생성하는 gcloud run services describe --format export 명령어를 사용하면 기존 서비스 구성을 다운로드해서 볼 수 있습니다. 그런 다음 아래 설명된 필드를 수정하고 gcloud run services replace 명령어를 사용하여 수정된 YAML을 업로드할 수 있습니다. 설명된 대로 필드만 수정해야 합니다.

  1. 구성을 보고 다운로드하려면 다음을 실행합니다.

    gcloud run services describe SERVICE --format export > service.yaml
  2. 서비스 구성을 원하는 대로 변경하고 새 버전에 사용할 버전 이름을 지정합니다.

    apiVersion: serving.knative.dev/v1
    kind: Service
    metadata:
     name: SERVICE
    template:
      metadata:
        annotations:
          ...
        name: REVISION-NAME
    

    다음과 같이 바꿉니다.

    • REVISION-NAME을 새 버전에 사용할 이름으로 바꿉니다.
  3. spec 속성 아래에서 traffic 속성을 찾아 업데이트하여 새 버전이 소량의 트래픽만 처리하도록 합니다.

    apiVersion: serving.knative.dev/v1
    kind: Service
    metadata:
     name: SERVICE
    spec:
    ...
      traffic:
      - revisionName: REVISION-NEW
        percent: PERCENT-NEW
      - revisionName: REVISION-FORMER
        percent: PERCENT-FORMER
    

    백분율을 합치면 100이 되어야 합니다. 다음과 같이 바꿉니다.

    • REVISION-NEW를 점진적으로 출시할 버전의 이름으로 바꿉니다.
    • REVISION-FORMER를 현재 처리 중인 버전의 이름으로 바꿉니다.
    • PERCENT-NEW를 새 버전으로 전송하려는 트래픽 백분율로 바꿉니다. 예를 들어 10을 지정하면 트래픽의 10%가 버전으로 전송됩니다.
    • PERCENT-FORMER를 이전 버전으로 전송하려는 트래픽 백분율로 바꿉니다.
  4. 업데이트가 완료될 때까지 기다립니다. 점진적으로 출시하는 새 버전이 배포되었으며 지정된 트래픽 백분율을 처리하고 있다는 메시지가 표시됩니다.

Terraform

.tf 파일에 다음을 추가하고 트래픽 백분율을 이전 버전에서 최신 버전으로 점진적으로 업데이트합니다. 트래픽 변경 시마다 terraform apply를 다시 실행해야 합니다.

resource "google_cloud_run_v2_service" "default" {
  name     = "cloudrun-srv"
  location = "us-central1"

  template {
    containers {
      # Image or image tag must be different from previous revision
      image = "us-docker.pkg.dev/cloudrun/container/hello"
    }
  }

  # Define the traffic split for each revision
  # https://registry.terraform.io/providers/hashicorp/google/latest/docs/resources/cloud_run_v2_service#traffic
  traffic {
    percent = 100
    # This revision needs to already exist
    revision = "cloudrun-srv-green"
    type     = "TRAFFIC_TARGET_ALLOCATION_TYPE_REVISION"
  }

  traffic {
    # Deploy new revision with 0% traffic
    percent = 0
    type    = "TRAFFIC_TARGET_ALLOCATION_TYPE_LATEST"
  }
}

terraform apply를 입력하여 변경사항을 적용합니다.

여러 버전 간 트래픽 분할

두 개 이상의 버전 간에 트래픽을 분할하려면 다음 안내를 따르세요.

콘솔

  1. Cloud Run으로 이동

  2. 서비스 목록에서 서비스를 찾고 클릭합니다.

  3. 트래픽 관리를 클릭합니다.

  4. 현재 제공 중인 새 버전이 나열됩니다. 다음 안내를 따라 양식을 작성하세요.

    1. 현재 제공 중인 버전 백분율을 원하는 분할로 설정합니다.
    2. 드롭다운 목록에서 이전 버전 중 하나를 선택하고 이를 원하는 백분율 분할로 설정합니다.
    3. 더 많은 버전으로 트래픽을 분할하려면 버전 추가를 클릭하고 원하는 버전을 선택한 다음 원하는 분할로 백분율을 설정합니다.
    4. 저장을 클릭합니다.

명령줄

버전 및 각 버전의 트래픽 백분율을 쉼표로 구분된 목록으로 지정합니다.

gcloud run services update-traffic SERVICE --to-revisions LIST

  • SERVICE를 서비스 이름으로 바꿉니다.
  • LIST를 쉼표로 구분된 버전과 백분율의 목록으로 바꿉니다.
    REVISION1=PERCENTAGE1, REVISION2=PERCENTAGE2, REVISIONn=PERCENTAGEx
    예를 들면 hello2-00005-red=25,hello2-00001-bod=25,hello2-00002-nan=50입니다.

YAML

YAML 형식으로 정리된 결과를 생성하는 gcloud run services describe --format export 명령어를 사용하면 기존 서비스 구성을 다운로드해서 볼 수 있습니다. 그런 다음 아래 설명된 필드를 수정하고 gcloud run services replace 명령어를 사용하여 수정된 YAML을 업로드할 수 있습니다. 설명된 대로 필드만 수정해야 합니다.

  1. 구성을 보고 다운로드하려면 다음을 실행합니다.

    gcloud run services describe SERVICE --format export > service.yaml
  2. spec 속성 아래에서 traffic 속성을 찾아 업데이트하여 새 버전이 소량의 트래픽만 처리하도록 합니다.

    apiVersion: serving.knative.dev/v1
    kind: Service
    metadata:
     name: SERVICE
    spec:
    ...
      traffic:
      - revisionName: REVISION-A
        percent: PERCENT-A
      - revisionName: REVISION-B
        percent: PERCENT-B
      - revisionName: REVISION-C
        percent: PERCENT-C
    

    백분율을 합치면 100이 되어야 합니다. 다음과 같이 바꿉니다.

    • REVISION-A, REVISION-B, REVISION-C를 트래픽을 할당할 버전으로 바꿉니다.
    • PERCENT-A, PERCENT-B, PERCENT-C를 해당하는 버전의 백분율로 바꿉니다.
  3. 다음 명령어를 사용하여 서비스를 새 구성으로 바꿉니다.

    gcloud run services replace service.yaml
  4. 업데이트가 완료될 때까지 기다립니다. 점진적으로 출시하는 새 버전이 배포되었으며 트래픽의 5%(또는 달리 지정된 점진적인 값)를 처리하고 있다는 메시지가 표시됩니다.

Terraform

.tf 파일에 다음을 추가합니다.

resource "google_cloud_run_v2_service" "default" {
  name     = "cloudrun-srv"
  location = "us-central1"

  template {
    containers {
      image = "us-docker.pkg.dev/cloudrun/container/hello"
    }
    revision = "cloudrun-srv-green"
  }

  # Define the traffic split for each revision
  # https://registry.terraform.io/providers/hashicorp/google/latest/docs/resources/cloud_run_v2_service#traffic
  traffic {
    percent  = 25
    revision = "cloudrun-srv-green"
    type     = "TRAFFIC_TARGET_ALLOCATION_TYPE_REVISION"
  }

  traffic {
    percent = 75
    # This revision needs to already exist
    revision = "cloudrun-srv-blue"
    type     = "TRAFFIC_TARGET_ALLOCATION_TYPE_REVISION"
  }
}

terraform apply를 입력하여 변경사항을 적용합니다.

최신 버전으로 모든 트래픽 전송

새 버전을 배포할 때 기존의 트래픽 분할을 재정의하여 이 버전 및 이후의 모든 버전이 최대한 빨리 100%의 트래픽을 제공하도록 설정할 수 있습니다.

콘솔

  1. Cloud Run으로 이동

  2. 서비스 목록에서 서비스를 찾고 클릭합니다.

  3. 새 버전 배포를 클릭합니다.

  4. 필요에 따라 배포 양식을 작성하고 이 버전을 즉시 제공 라벨이 표시된 체크박스를 선택합니다. 그러면 기존 트래픽 분할이 재정의되어 새 버전이 트래픽을 100% 제공합니다.

  5. 배포를 클릭합니다.

명령줄

최근에 배포된 버전으로 모든 트래픽을 전송하려면 다음 안내를 따르세요.

gcloud run services update-traffic SERVICE --to-latest

SERVICE를 서비스 이름으로 바꿉니다.

YAML

YAML 형식으로 정리된 결과를 생성하는 gcloud run services describe --format export 명령어를 사용하면 기존 서비스 구성을 다운로드해서 볼 수 있습니다. 그런 다음 아래 설명된 필드를 수정하고 gcloud run services replace 명령어를 사용하여 수정된 YAML을 업로드할 수 있습니다. 설명된 대로 필드만 수정해야 합니다.

  1. 구성을 보고 다운로드하려면 다음을 실행합니다.

    gcloud run services describe SERVICE --format export > service.yaml
  2. spec 속성 아래에서 traffic 속성을 찾아 다음과 같이 업데이트합니다.

    apiVersion: serving.knative.dev/v1
    kind: Service
    metadata:
     name: SERVICE
    spec:
    ...
      traffic:
      - latestRevision: true
        percent: 100
    
  3. 다음 명령어를 사용하여 서비스를 새 구성으로 바꿉니다.

    gcloud run services replace service.yaml
  4. 업데이트가 완료될 때까지 기다립니다. (최신) 버전이 배포되었으며 트래픽의 100%를 처리하고 있다는 메시지가 표시됩니다.

Terraform

.tf 파일에 다음을 추가합니다.

resource "google_cloud_run_v2_service" "default" {
  name     = "cloudrun-srv"
  location = "us-central1"

  template {}

  traffic {
    percent = 100
    type    = "TRAFFIC_TARGET_ALLOCATION_TYPE_LATEST"
  }
}

terraform apply를 입력하여 변경사항을 적용합니다.

테스트, 트래픽 마이그레이션, 롤백에 태그 사용

태그가 지정된 버전에 대한 청구 비용이 발생하지 않도록 하려면 서비스 수준 최소 인스턴스를 사용하거나 더 이상 필요하지 않은 버전에서 태그를 삭제합니다.

이 기능의 일반적인 사용 사례는 트래픽을 제공하기 전에 다음과 같은 일반적인 시퀀스로 새 서비스 버전을 테스트 및 조사하는 것입니다.

  1. 개발 중에 컨테이너에서 통합 테스트를 실행합니다.
  2. 트래픽을 제공하지 않고 스테이징에만 사용하는 Google Cloud 프로젝트에 컨테이너를 배포하고 태그가 지정된 버전을 대상으로 테스트합니다.
  3. 트래픽을 제공하지 않고 프로덕션에 배포하고 프로덕션에서 태그가 지정된 버전을 대상으로 테스트합니다.
  4. 태그가 지정된 버전으로 트래픽을 마이그레이션합니다.

태그가 지정된 새 버전 배포

기존 서비스의 새 버전을 프로덕션에 배포하려면 다음을 실행합니다.

명령줄

gcloud run deploy myservice --image IMAGE_URL  --no-traffic --tag TAG_NAME

다음과 같이 바꿉니다.

  • IMAGE_URL을 이미지의 URL로 바꿉니다.
  • TAG_NAME을 소문자 태그 이름으로 바꿉니다.

태그를 사용하면 트래픽을 제공하지 않고도 특정 URL에서 새 버전을 직접 테스트할 수 있습니다. URL은 제공된 태그 이름으로 시작합니다. 예를 들어 myservice 서비스에 태그 이름 green을 사용한 경우 URL https://green---myservice-abcdef.a.run.app에서 태그가 지정된 버전을 테스트합니다.

Terraform

.tf 파일에 다음을 추가하고 트래픽 백분율을 이전 버전에서 새 태그를 사용한 최신 버전으로 점진적으로 업데이트합니다. 트래픽 변경 시마다 terraform apply를 다시 실행해야 합니다.

resource "google_cloud_run_v2_service" "default" {
  name     = "cloudrun-srv"
  location = "us-central1"

  template {
    containers {
      # image or tag must be different from previous revision
      image = "us-docker.pkg.dev/cloudrun/container/hello"
    }
    revision = "cloudrun-srv-blue"
  }

  # Define the traffic split for each revision
  # https://registry.terraform.io/providers/hashicorp/google/latest/docs/resources/cloud_run_v2_service#traffic
  traffic {
    percent = 100
    # This revision needs to already exist
    revision = "cloudrun-srv-green"
    type     = "TRAFFIC_TARGET_ALLOCATION_TYPE_REVISION"
  }

  traffic {
    # Deploy new revision with 0% traffic
    percent  = 0
    revision = "cloudrun-srv-blue"
    tag      = "tag-name"
    type     = "TRAFFIC_TARGET_ALLOCATION_TYPE_REVISION"
  }
}

terraform apply를 입력하여 변경사항을 적용합니다.

태그 삭제

버전에서 태그를 삭제하려면 다음 안내를 따르세요.

콘솔

  1. Cloud Run으로 이동

  2. 서비스 목록에서 서비스를 찾고 클릭합니다.

  3. 원하는 서비스 내의 버전 섹션으로 이동하여 기존 태그를 삭제할 버전을 선택합니다.

  4. 버전 URL(태그) 열 위로 마우스를 가져간 후 아래와 같이 연필 아이콘을 클릭합니다.

    태그 삭제

  5. 버전 URL 팝업 메뉴에서 Bin 아이콘을 클릭하여 버전에서 사용되는 현재 태그를 삭제합니다.

  6. 저장을 클릭합니다.

명령줄

버전 태그를 삭제하려면 다음 안내를 따르세요.

gcloud run services update-traffic SERVICE --remove-tags TAG_NAME

다음과 같이 바꿉니다.

  • TAG_NAME을 트래픽을 마이그레이션할 태그의 이름으로 바꿉니다.
  • SERVICE를 태그를 삭제할 서비스의 이름으로 바꿉니다.

YAML

YAML 형식으로 정리된 결과를 생성하는 gcloud run services describe --format export 명령어를 사용하면 기존 서비스 구성을 다운로드해서 볼 수 있습니다. 그런 다음 아래 설명된 필드를 수정하고 gcloud run services replace 명령어를 사용하여 수정된 YAML을 업로드할 수 있습니다. 설명된 대로 필드만 수정해야 합니다.

  1. 구성을 보고 다운로드하려면 다음을 실행합니다.

    gcloud run services describe SERVICE --format export > service.yaml
  2. 서비스 구성을 원하는 대로 변경합니다.

  3. spec 속성 아래에서 태그가 지정된 버전의 tag 속성을 찾아 삭제합니다.

    apiVersion: serving.knative.dev/v1
    kind: Service
    metadata:
     name: SERVICE
    spec:
    ...
      traffic:
      - revisionName: REVISION
        tag: TAG_NAME
        percent: PERCENT-NEW
    
  4. 다음 명령어를 사용하여 서비스를 새 구성으로 바꿉니다.

    gcloud run services replace service.yaml

Terraform

.tf 파일에 다음을 추가합니다.

resource "google_cloud_run_v2_service" "default" {
  name     = "cloudrun-srv"
  location = "us-central1"

  template {}

  # Define the traffic split for each revision
  # https://registry.terraform.io/providers/hashicorp/google/latest/docs/resources/cloud_run_v2_service#traffic
  traffic {
    percent = 100
    # This revision needs to already exist
    revision = "cloudrun-srv-green"
    type     = "TRAFFIC_TARGET_ALLOCATION_TYPE_REVISION"
  }

  traffic {
    # No tags for this revision
    # Keep revision at 0% traffic
    percent = 0
    # This revision needs to already exist
    revision = "cloudrun-srv-blue"
    type     = "TRAFFIC_TARGET_ALLOCATION_TYPE_REVISION"
  }
}

terraform apply를 입력하여 변경사항을 적용합니다.

태그가 지정된 버전으로 트래픽 마이그레이션

새 버전이 올바르게 작동하는지 확인한 후 Google Cloud 콘솔, gcloud 명령줄, Terraform 또는 YAML 파일을 사용하여 해당 버전으로 트래픽 마이그레이션을 시작할 수 있습니다.

콘솔

  1. Cloud Run으로 이동

  2. 서비스 목록에서 서비스를 찾고 클릭합니다.

  3. 트래픽을 전송할 태그가 지정된 버전을 선택합니다.

    manage-traffic

  4. 트래픽 관리를 클릭합니다.

  5. 태그가 지정된 버전 이름을 찾습니다. 이 버전이 나열되지만 백분율이 0으로 설정되어 있으면 현재 트래픽을 제공하지 않는 것입니다. 트래픽 관리* 양식에서 다음을 수행합니다.

    1. 원하는 백분율로 설정합니다(예: 5). 현재 제공 중인 버전의 백분율이 동일한 크기로 자동으로 줄어듭니다.
    2. 저장을 클릭합니다.
    3. 몇 시간 또는 며칠에 걸쳐 필요에 따라 트래픽 관리 단계를 반복하되 태그가 지정된 버전에 필요한 만큼 백분율을 늘리면서 변경된 백분율로 반복합니다. 트래픽 백분율을 변경하기 위해 다시 배포할 필요는 없습니다.

명령줄

특정 버전 태그로 트래픽을 마이그레이션하려면 다음을 실행합니다.

gcloud run services update-traffic myservice --to-tags TAG_NAME=TRAFFIC_PERCENT

다음과 같이 바꿉니다.

  • TAG_NAME을 트래픽을 마이그레이션할 태그의 이름으로 바꿉니다.
  • TRAFFIC_PERCENT를 태그가 지정된 버전에서 제공할 트래픽의 백분율로 바꿉니다(예: 1).

YAML

YAML 형식으로 정리된 결과를 생성하는 gcloud run services describe --format export 명령어를 사용하면 기존 서비스 구성을 다운로드해서 볼 수 있습니다. 그런 다음 아래 설명된 필드를 수정하고 gcloud run services replace 명령어를 사용하여 수정된 YAML을 업로드할 수 있습니다. 설명된 대로 필드만 수정해야 합니다.

  1. 구성을 보고 다운로드하려면 다음을 실행합니다.

    gcloud run services describe SERVICE --format export > service.yaml
  2. 서비스 구성을 원하는 대로 변경합니다.

  3. spec 속성 아래에서 태그가 지정된 버전의 traffic 속성을 찾아 업데이트하여 태그가 지정된 버전이 소량의 트래픽만 제공하도록 합니다.

    apiVersion: serving.knative.dev/v1
    kind: Service
    metadata:
     name: SERVICE
    spec:
    ...
      traffic:
      - revisionName: REVISION
        tag: TAG_NAME
        percent: PERCENT-NEW
      - revisionName: REVISION-FORMER
        percent: PERCENT-FORMER
    

    백분율을 합치면 100이 되어야 합니다. 다음과 같이 바꿉니다.

    • REVISION을 태그가 지정된 버전의 이름으로 바꿉니다.
    • TAG_NAME을 점진적으로 출시할 태그의 이름으로 바꿉니다.
    • PERCENT-NEW를 태그가 지정된 버전으로 전송할 트래픽 백분율로 바꿉니다. 예를 들어 트래픽의 10%를 해당 버전으로 전송하려면 10을 사용합니다.
    • REVISION-FORMER를 현재 처리 중인 버전의 이름으로 바꿉니다.
    • PERCENT-FORMER를 이전 버전으로 전송하려는 트래픽 백분율로 바꿉니다.
  4. 다음 명령어를 사용하여 서비스를 새 구성으로 바꿉니다.

    gcloud run services replace service.yaml
  5. 업데이트가 완료될 때까지 기다립니다. 점진적으로 출시하는 새 버전이 배포되었으며 지정된 트래픽 백분율을 처리하고 있다는 메시지가 표시됩니다.

Terraform

.tf 파일에 다음을 추가합니다.

resource "google_cloud_run_v2_service" "default" {
  name     = "cloudrun-srv"
  location = "us-central1"

  template {}

  # Define the traffic split for each revision
  # https://registry.terraform.io/providers/hashicorp/google/latest/docs/resources/cloud_run_v2_service#traffic
  traffic {
    # Update revision to 50% traffic
    percent = 50
    # This revision needs to already exist
    revision = "cloudrun-srv-green"
    type     = "TRAFFIC_TARGET_ALLOCATION_TYPE_REVISION"
  }

  traffic {
    # Update tag to 50% traffic
    percent = 50
    # This tag needs to already exist
    tag = "tag-name"
  }
}

몇 시간 또는 며칠에 걸쳐 필요에 따라 태그 하나를 다른 태그로 점진적으로 업데이트하여 태그가 지정된 버전에 필요한 만큼 백분율을 늘립니다.

변경할 때마다 terraform apply를 입력하여 적용합니다.

다음 단계