인스턴스 관리 방법

인스턴스는 App Engine에서 애플리케이션을 자동으로 확장하는 데 사용하는 컴퓨팅 단위입니다. 애플리케이션은 특정 시점에 1개 또는 여러 인스턴스에서 실행될 수 있으며, 요청은 모든 인스턴스로 분산됩니다.

수동 및 기본 확장이 적용되는 인스턴스는 무기한으로 실행되긴 하지만 업타임이 보장되지는 않습니다. 조기 종료나 잦은 다시 시작을 초래하는 하드웨어 또는 소프트웨어 오류는 예고 없이 발생할 수 있으며 해결하는 데 상당한 시간이 걸릴 수 있습니다.

모든 가변형 인스턴스는 매주 다시 시작됩니다. 다시 시작하는 동안 이전 버전과 호환되는 중요한 업데이트가 기본 운영체제에 자동으로 적용됩니다. 다시 시작해도 애플리케이션의 이미지는 동일하게 유지됩니다.

상태 확인

App Engine은 정기적으로 상태 확인 요청을 보내 인스턴스가 정상적으로 배포되었고 실행 중인 인스턴스가 정상 상태를 유지하는지 확인합니다. 각 상태 확인에 대한 응답은 지정된 시간 간격 내에 이루어져야 합니다. 지정된 횟수만큼 연속으로 상태 확인 요청에 응답하지 못하는 인스턴스는 비정상 상태로 간주됩니다. 비정상 인스턴스는 클라이언트 요청을 받지 못하지만 상태 확인은 계속 전송됩니다. 비정상 인스턴스가 미리 정해진 횟수만큼 연속으로 상태 확인 요청에 응답하지 못하면 해당 인스턴스가 다시 시작됩니다.

상태 확인 유형에는 활성과 준비 두 가지가 있습니다. 활성 확인은 인스턴스와 해당 컨테이너가 실행 중인지 확인하여 검사에 실패한 인스턴스를 다시 시작합니다. 준비 확인은 인스턴스가 수신되는 요청을 수락할 준비가 되었는지 확인하며, 검사에 실패한 인스턴스로 요청을 전달하지 않습니다. 둘 다 앱의 app.yaml 파일을 통해 맞춤 설정할 수 있습니다.

상태가 양호한 애플리케이션은 HTTP 상태 코드 200로 상태 확인에 응답해야 합니다.

리소스 사용량 모니터링

Cloud Console의 인스턴스 페이지에서는 인스턴스의 성능을 가시적으로 파악할 수 있습니다. 각 인스턴스의 메모리 및 CPU 사용량, 업타임, 요청 수, 기타 통계를 확인할 수 있습니다. 특정 인스턴스의 종료 프로세스를 직접 시작할 수도 있습니다.

인스턴스 위치

인스턴스는 프로젝트 설정에 따라 지역을 기준으로 자동 배치됩니다.

인스턴스 확장

애플리케이션 실행 중에 수신되는 요청은 해당 서비스나 버전의 기존 인스턴스 또는 새 인스턴스로 라우팅됩니다. 각 활성 버전에는 실행 중인 인스턴스가 하나 이상 있어야 하며 서비스나 버전의 확장 유형에 따라 추가 인스턴스 생성 방법이 결정됩니다. 확장 설정은 app.yaml 파일에서 구성됩니다. 다음과 같은 2가지 확장 유형이 있습니다.

자동 확장
자동 확장은 요청 속도, 응답 지연 시간 및 기타 애플리케이션 측정항목을 기반으로 인스턴스를 생성합니다. 각 측정 항목의 임계값과 항상 실행되는 최소 인스턴스 수를 지정할 수 있습니다.
수동 확장
수동 확장은 로드 수준과 관계없이 지속적으로 실행되는 인스턴스 수를 지정합니다. 따라서 장기적으로 메모리 상태에 의존하는 복잡한 초기화 등의 태스크와 애플리케이션을 지원합니다.