문제:
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에 접근할 수 있는 경우 해당 요청을 처리하기 위해 인스턴스를 시작한다는 의미입니다.
내 추천은 다른 유형의 확장으로 변경하는 것입니다(개인적으로는 다음을 선택합니다).기본 스케일링귀하의 경우) 인스턴스를 중지할 수 있습니다. 그렇지 않으면 이전 버전을 삭제해야 하거나 이전 버전에 대한 임의의 요청으로 인해 사용자도 모르게 이전 버전에서 인스턴스가 실행되는 위험을 감수해야 합니다.
이 정보가 도움이 되기를 바랍니다.