App Engine 개요

App Engine 앱은 하나 이상의 서비스로 구성된 단일 애플리케이션 리소스로 이루어져 있습니다. 각 서비스마다 런타임을 다르게 사용하고 다른 성능 설정으로 작동하도록 구성할 수 있습니다. 각 서비스 내에 해당 서비스의 버전을 배포합니다. 그러면 각 버전은 트래픽 처리량 구성에 따라 하나 이상의 인스턴스에서 실행됩니다.

애플리케이션 구성요소

App Engine 앱은 애플리케이션 리소스를 만들 때 Google Cloud Platform 프로젝트에 생성됩니다. App Engine 애플리케이션은 앱을 구성하는 서비스, 버전, 인스턴스 리소스가 포함된 최상위 컨테이너입니다. App Engine 앱을 만들면 앱 코드를 비롯해 설정, 사용자 인증 정보, 앱의 메타데이터 모음을 포함하는 모든 리소스가 선택한 리전에서 생성됩니다.

각 App Engine 애플리케이션에는 서비스가 최소 한 개(default 서비스) 이상 포함되어 있으며, 이 서비스 버전을 원하는 만큼 보유할 수 있습니다.

다음 다이어그램은 여러 서비스로 실행되는 App Engine 앱의 계층 구조를 보여줍니다. 이 다이어그램에서 앱에는 여러 버전이 포함된 서비스가 두 개 있고 이들 버전 중 두 개는 여러 인스턴스에서 활발하게 실행되고 있습니다.

앱의 서비스, 버전, 인스턴스 계층구조 그래프

다른 GCP 서비스(예: Cloud Datastore)는 App Engine 앱 전체에서 공유됩니다. 자세한 내용은 웹 서비스 구조화를 참조하세요.

서비스

App Engine 기능을 안전하게 공유하고 각 기능 간에 통신할 수 있도록 App Engine의 서비스를 사용하여 대규모 앱을 논리적 구성요소로 분할합니다. 일반적으로 App Engine 서비스는 마이크로서비스처럼 작동합니다. 따라서 전체 앱을 단일 서비스에서 실행하거나 여러 서비스를 설계 및 배포하여 마이크로서비스 집합으로 실행할 수 있습니다.

예를 들어 고객 요청을 처리하는 앱에는 다음과 같이 각기 다른 작업을 처리하는 개별 서비스가 포함될 수 있습니다.

  • 휴대기기의 API 요청
  • 내부 관리 유형의 요청
  • 청구 파이프라인과 데이터 분석 등의 백엔드 처리

App Engine의 각 서비스는 앱의 소스 코드와 해당하는 App Engine의 구성 파일로 구성됩니다. 서비스에 배포되는 파일 집합은 해당 서비스의 단일 버전을 나타내며, 해당 서비스에 파일 집합이 배포될 때마다 동일한 서비스 내에서 버전이 추가로 생성됩니다.

버전

각 서비스 내에서 앱을 여러 버전으로 관리하면 롤백, 테스트 또는 그 외 일시적인 이벤트를 위해 앱의 버전을 신속하게 전환할 수 있습니다. 트래픽을 마이그레이션 또는 분할하면 앱에서 사용하는 하나 이상의 특정 버전으로 트래픽을 라우팅할 수 있습니다.

인스턴스

서비스 내의 버전은 인스턴스 한 개 이상에서 실행됩니다. 기본적으로 App Engine은 로드에 맞게 앱의 크기를 조정합니다. 즉, 앱은 일관된 성능을 제공하기 위해 실행되는 인스턴스 수를 늘리거나 유휴 인스턴스를 최소화하기 위해 인스턴스 수를 줄여 비용을 절감합니다. 인스턴스에 대한 자세한 내용은 인스턴스 관리 방법을 참조하세요.

애플리케이션 요청

앱의 각 서비스와 서비스의 각 버전마다 고유한 이름이 있어야 합니다. 그러면 고유한 이름과 다음과 같은 URL을 사용하여 대상을 특정 리소스로 지정하고 트래픽을 라우팅할 수 있습니다.

http://my-version.my-service.my-project-id.appspot.com
https://my-version-dot-my-service-dot-my-project-id.appspot.com

수신되는 사용자 요청은 트래픽을 처리할 수 있도록 구성된 서비스 또는 버전으로 라우팅됩니다. 대상을 특정 서비스 및 버전으로 지정하고 요청을 라우팅할 수도 있습니다. 자세한 내용은 서비스 간 통신을 참조하세요.

애플리케이션 요청 로깅

애플리케이션은 요청 처리 시 stdoutstderr에 고유한 로깅 메시지를 기록할 수도 있습니다. 앱 로그에 대한 자세한 내용은 애플리케이션 로그 작성을 참조하세요.

한도

각 애플리케이션의 서비스, 버전, 인스턴스 수(수동 확장이 가능한 서비스에 해당)에는 다음과 같은 제한이 있습니다.

설명 제한
애플리케이션당 최대 서비스 수 5
애플리케이션당 최대 버전 수 5*
수동 확장 시 버전당 최대 인스턴스 수 20

*외부 HTTP 부하 분산기에 사용되는 백엔드 서비스 등과 같은 백엔드 서비스는 최대 버전 제한에 반영될 수 있습니다.

모든 프로젝트에 위의 제한이 적용되는 것은 아닙니다. Google Cloud Platform 사용량이 점차 늘어나면 이에 따라 제한도 늘어날 수 있습니다. 급격한 사용량 증가가 예상되면 GCP Console의 App Engine 할당량 페이지에서 미리 조정을 요청하면 됩니다.

이 페이지가 도움이 되었나요? 평가를 부탁드립니다.

다음에 대한 의견 보내기...

Python 문서용 App Engine 가변형 환경