App Engine Standard Auto Scaling - 배포 시 이전 버전을 중지하는 방법은 무엇입니까?

App Engine Standard Auto Scaling - 배포 시 이전 버전을 중지하는 방법은 무엇입니까?

문제:

appengine 표준 서비스인 nodejsv10을 배포 중입니다. 그러나 트래픽이 새 버전으로 마이그레이션된 후에도 이전 버전은 인스턴스 수가 2 또는 1로 나열되는 상태로 계속 실행되고 있습니다. 이는 지난 주에 24시간이 훨씬 넘는 기간 동안 트래픽을 수신하지 못한 여러 배포의 경우에도 마찬가지입니다. 시간(따라서 콘솔 지연 새로 고침 문제는 아닌 것 같습니다).

이러한 인스턴스는 필요하지 않으므로 비용이 청구되기를 원하지 않습니다. 그리고 이러한 이전 버전을 수동으로 삭제해야 하는 것은 어리석은 사용자 경험처럼 보입니다.

배포 명령:gcloud beta app deploy

app.yaml

env: standard
instance_class: F4
inbound_services:
  - warmup
automatic_scaling:
  min_idle_instances: 1
  max_idle_instances: 1
  min_pending_latency: automatic
  max_pending_latency: automatic
  max_concurrent_requests: 15
  min_instances: 1

답변1

설명서를 더 읽어본 후 수정 사항을 찾은 것 같습니다. 나는 제거 min_instances하고 에 남겨 두었습니다 min_idle_instances. min_instances트래픽에 관계없이 인스턴스가 강제로 활성화되므로 대부분 min_idle_instances의 트래픽을 수신하는 버전에만 적용됩니다. 테스트 중인데, 작동하지 않으면 다시 보고하겠습니다.

https://cloud.google.com/appengine/docs/standard/nodejs/config/appref#automatic_scaling

min_instances

이 모듈 버전에 대해 생성할 App Engine의 최소 인스턴스 수입니다. 이러한 인스턴스는 요청이 도착할 때 트래픽을 제공하고, 트래픽을 처리하기 위해 필요에 따라 추가 인스턴스가 시작되는 경우에도 계속해서 트래픽을 제공합니다. 트래픽 수신 여부에 관계없이 지정된 인스턴스 수에 대해 요금이 부과됩니다.

min_idle_instances

계속 실행되고 트래픽을 처리할 준비가 된 인스턴스 수입니다. 트래픽 수신 여부에 관계없이 지정된 인스턴스 수에 대해 요금이 부과됩니다. 이 설정은 대부분의 트래픽을 수신하는 버전에만 적용됩니다.

답변2

언급한 대로 App Engine 표준 인스턴스를 중지할 수 없습니다.여기수동 또는 기본 크기 조정을 사용하지 않는 한. 이는 어떤 이유로 누군가가 이전 버전의 URL에 접근할 수 있는 경우 해당 요청을 처리하기 위해 인스턴스를 시작한다는 의미입니다.

내 추천은 다른 유형의 확장으로 변경하는 것입니다(개인적으로는 다음을 선택합니다).기본 스케일링귀하의 경우) 인스턴스를 중지할 수 있습니다. 그렇지 않으면 이전 버전을 삭제해야 하거나 이전 버전에 대한 임의의 요청으로 인해 사용자도 모르게 이전 버전에서 인스턴스가 실행되는 위험을 감수해야 합니다.

이 정보가 도움이 되기를 바랍니다.

관련 정보