최소 인스턴스 설정을 구성하여 서비스에 유휴 인스턴스를 사용 설정하는 방법을 알아봅니다.
기본적으로 Knative serving은 수신 요청 수를 기준으로 인스턴스 수에 맞게 확장됩니다. 하지만 서비스의 지연 시간을 단축하고 콜드 스타트 횟수를 제한해야 할 경우에는 실행 상태로 유지하고 요청 처리를 위해 준비할 최소 컨테이너 인스턴스 수를 지정하여 이러한 기본 동작을 변경할 수 있습니다.
이 방식으로 실행이 유지되는 인스턴스는 청구 비용을 발생시킵니다.
버전 및 최소 인스턴스
최소 인스턴스는 버전이 처리 가능한 경우에만 시작됩니다. 다음 중 하나에 해당하면 버전을 처리할 수 있습니다.
- 트래픽의 일정 비율을 수신합니다.
- 버전 태그가 할당되었습니다.
최소 인스턴스 설정 및 업데이트
구성을 변경하면 새 버전이 생성됩니다. 이를 변경하는 명시적 업데이트가 없으면 이후 버전에도 이 구성 설정이 자동으로 적용됩니다.
기본적으로 컨테이너 인스턴스는 0
설정으로 min-instances
를 해제합니다. 새 서비스를 배포하거나 기존 서비스를 업데이트하고 버전을 배포할 때 Google Cloud Console 또는 Google Cloud CLI를 사용하여 이 기본값을 변경할 수 있습니다.
콘솔
Google Cloud 콘솔에서 Knative serving으로 이동합니다.
배포할 새 서비스를 구성하려면 서비스 만들기를 클릭합니다. 기존 서비스를 구성하려면 해당 서비스를 클릭한 다음 새 버전 수정 및 배포를 클릭합니다.
고급 설정에서 컨테이너를 클릭합니다.
최소 인스턴스 수로 라벨이 지정된 필드에서 요청을 수신할 수 있도록 웜 상태로 유지하기 위해 원하는 컨테이너 인스턴스 수를 지정합니다.
다음을 클릭하여 다음 섹션으로 진행합니다.
이 서비스가 트리거되는 방식 구성 섹션에서 서비스를 호출하는 데 사용할 연결을 선택합니다.
만들기를 클릭하여 Knative serving에 이미지를 배포하고 배포가 완료될 때까지 기다립니다.
명령줄
기존 서비스의 경우
--min-instances
매개변수로gcloud run services update
명령어를 실행하여 최소 컨테이너 인스턴스 수를 설정합니다.gcloud run services update SERVICE --min-instances MIN-VALUE
다음과 같이 바꿉니다.
- SERVICE를 서비스 이름으로 바꿉니다.
- MIN-VALUE를 요청을 수신할 수 있도록 웜 상태로 유지하기 위해 원하는 컨테이너 인스턴스 수로 바꿉니다. 최소 인스턴스 설정을 삭제하려면
default
를 지정합니다.
새 서비스의 경우
--min-instances
매개변수로gcloud run deploy
명령어를 실행하여 최소 컨테이너 인스턴스 수를 설정합니다.gcloud run deploy SERVICE --image=IMAGE_URL --min-instances MIN-VALUE
다음과 같이 바꿉니다.
- SERVICE를 서비스 이름으로 바꿉니다.
- IMAGE_URL을 컨테이너 이미지에 대한 참조(예:
gcr.io/cloudrun/hello
)로 바꿉니다. - MIN-VALUE를 요청을 수신할 수 있도록 웜 상태로 유지하기 위해 원하는 컨테이너 인스턴스 수로 바꿉니다. 최소 인스턴스 설정을 삭제하려면
default
를 지정합니다.
YAML
--format=export
플래그를 사용하여 gcloud run services describe
명령어로 YAML 파일에 기존 서비스 구성을 다운로드할 수 있습니다.
그런 다음 gcloud run services replace
명령어로 YAML 파일을 수정하고 변경사항을 배포할 수 있습니다.
지정된 속성만 수정해야 합니다.
서비스 구성을 로컬 작업공간의
service.yaml
파일에 다운로드합니다.gcloud run services describe SERVICE --format export > service.yaml
SERVICE를 Knative serving 서비스의 이름으로 바꿉니다.
로컬 파일에서
autoscaling.knative.dev/minScale:
속성을 업데이트합니다.spec: template: metadata: annotations: autoscaling.knative.dev/minScale: 'MIN-INSTANCE'
다음과 같이 바꿉니다.
- MIN-VALUE를 요청을 수신할 수 있도록 웜 상태로 유지하기 위해 원하는 컨테이너 인스턴스 수로 바꿉니다. 최소 인스턴스 설정을 삭제하려면
default
를 지정합니다.
- MIN-VALUE를 요청을 수신할 수 있도록 웜 상태로 유지하기 위해 원하는 컨테이너 인스턴스 수로 바꿉니다. 최소 인스턴스 설정을 삭제하려면
다음 명령어를 사용하여 서비스를 새 구성으로 바꿉니다.
gcloud run services replace service.yaml