최소 인스턴스 사용

최소 인스턴스 설정을 구성하여 서비스에 유휴 인스턴스를 사용 설정하는 방법을 알아봅니다.

기본적으로 Cloud Run for Anthos on Google Cloud는 수신되는 요청 수를 기반으로 인스턴스 수를 확장합니다. 하지만 서비스의 지연 시간을 단축하고 콜드 스타트 횟수를 제한해야 할 경우에는 실행 상태로 유지하고 요청 처리를 위해 준비할 최소 컨테이너 인스턴스 수를 지정하여 이러한 기본 동작을 변경할 수 있습니다.

이 방식으로 실행이 유지되는 인스턴스는 청구 비용을 발생시킵니다.

버전 및 최소 인스턴스

최소 인스턴스는 버전이 처리 가능한 경우에만 시작됩니다. 다음 중 하나에 해당하면 버전을 처리할 수 있습니다.

  • 트래픽의 일정 비율을 수신합니다.
  • 버전 태그가 할당되었습니다.

최소 인스턴스 설정 및 업데이트

구성을 변경하면 새 버전이 생성됩니다. 이를 변경하는 명시적 업데이트가 없으면 이후 버전에도 이 구성 설정이 자동으로 적용됩니다.

기본적으로 컨테이너 인스턴스는 0 설정으로 min-instances를 해제합니다. 이 기본값은 새 서비스를 배포하거나 기존 서비스를 업데이트하고 버전을 배포할 때 Cloud Console 또는 gcloud 명령줄 도구를 사용하여 변경할 수 있습니다.

콘솔

  1. Cloud Run for Anthos on Google Cloud로 이동

  2. 배포할 새 서비스를 구성하려면 서비스 만들기를 클릭합니다. 기존 서비스를 구성하려면 해당 서비스를 클릭한 다음 새 버전 수정 및 배포를 클릭합니다.

  3. 고급 설정에서 컨테이너를 클릭합니다.

    이미지

  4. 최소 인스턴스 수로 라벨이 지정된 필드에서 요청을 수신할 수 있도록 웜 상태로 유지하기 위해 원하는 컨테이너 인스턴스 수를 지정합니다.

  5. 만들기 또는 배포를 클릭합니다.

명령줄

  • 기존 서비스의 경우 --min-instances 매개변수로 gcloud kuberun core services update 명령어를 실행하여 최소 컨테이너 인스턴스 수를 설정합니다.

    gcloud kuberun core services update SERVICE --min-instances MIN-VALUE
    

    다음과 같이 바꿉니다.

    • SERVICE를 서비스 이름으로 바꿉니다.
    • MIN-VALUE를 요청을 수신할 수 있도록 웜 상태로 유지하기 위해 원하는 컨테이너 인스턴스 수로 바꿉니다. 최소 인스턴스 설정을 삭제하려면 default를 지정합니다.
  • 새 서비스의 경우 --min-instances 매개변수로 gcloud kuberun core services create 명령어를 실행하여 최소 컨테이너 인스턴스 수를 설정합니다.

    gcloud kuberun core services create SERVICE --image=IMAGE_URL --min-instances MIN-VALUE
    

    다음과 같이 바꿉니다.

    • SERVICE를 서비스 이름으로 바꿉니다.
    • IMAGE_URL을 컨테이너 이미지에 대한 참조(예: gcr.io/myproject/my-image:latest)로 바꿉니다.
    • MIN-VALUE를 요청을 수신할 수 있도록 웜 상태로 유지하기 위해 원하는 컨테이너 인스턴스 수로 바꿉니다. 최소 인스턴스 설정을 삭제하려면 default를 지정합니다.

YAML

YAML 파일을 사용하여 기존 서비스의 구성을 수정하려면 현재 구성의 복사본을 가져오고 변경사항을 수정하여 로컬 파일에 저장한 다음 해당 변경사항을 서비스에 배포합니다.

  1. YAML로 표시한 다음 서비스 구성을 로컬 파일(예: service.yaml)에 복사합니다.

    gcloud kuberun core services describe SERVICE --format yaml

    SERVICE를 Cloud Run for Anthos 서비스 이름으로 바꿉니다.

  2. 로컬 파일에서 autoscaling.knative.dev/minScale: 속성을 업데이트합니다.

    spec:
     template:
       metadata:
         annotations:
           autoscaling.knative.dev/minScale: 'MIN-INSTANCE' 

    다음과 같이 바꿉니다.

    • MIN-VALUE를 요청을 수신할 수 있도록 웜 상태로 유지하기 위해 원하는 컨테이너 인스턴스 수로 바꿉니다. 최소 인스턴스 설정을 삭제하려면 default를 지정합니다.
  3. 다음 명령어를 사용하여 서비스를 새 구성으로 바꿉니다.

    gcloud beta run services replace service.yaml