안녕하세요, 베스핀글로벌 GCP Support팀입니다.
이번 아티클에서는 주제로 "App Engine Flexible 인스턴스 자동으로 재시작되는 이슈"을 다루고자 합니다.
업데이트를 위한 GAE VM 재시작
App Engine Flexible 사용 시 모든 인스턴스는 운영체제 및 보안 업데이트를 위해 매주 다시 시작됩니다.[1]
인스턴스가 다시 시작되는 시간대 및 날짜는 구글에서 결정하며 사용자가 직접 지정할 수 없습니다.
이때 특정 App Engine 서비스의 사용 중인 인스턴스 숫자가 1이라면, 업데이트를 위해 인스턴스가 재시작 되는 동안 해당 서비스에 대한 가용성을 보장할 수 없습니다.
구글에서는 이러한 서비스의 가용성을 보장하기 위해, 각 서비스 별 요구되는 인스턴스 이상으로 최소 인스턴스 수를 설정하는 오버프로비저닝을 사용하도록 권고하고 있습니다.
최소 인스턴스 수를 늘리는 방법은 해당 App Engine 서비스의 app.yaml파일의 min_num_instances 값을 수정하는 것입니다.
따라서 위와 같은 업데이트로 인한 서비스 중단을 막기 위해서는 최소 인스턴스 숫자를 최소 2이상으로 설정하시기 바랍니다.
권장되는 인스턴스 그룹 크기는 아래 내용을 참고하시기 바랍니다.
하지만 min instance 수를 늘리더라도 재시작 발생 시 당장 연결되어있는 통신이 끊기고 502 에러가 발생할 수 있습니다.
이와 같은 상황을 방지하기 위해서는 지수 백오프 재시도[2] 방식의 에러 핸들링을 구현하여 에러 영향을 완하시키는 것을 추천드립니다.
참조 링크
[1] App Engine Flexbile 인스턴스 관리 방법
https://cloud.google.com/appengine/docs/flexible/java/how-instances-are-managed?hl=ko
[2] 지수 백오프 재시도
https://googleapis.github.io/google-http-java-client/exponential-backoff.html
관련 문의사항이 있으시면 Support Portal에 문의해 주시기 바랍니다.
감사합니다.