App Engine 개요

리전 ID

REGION_ID는 앱을 만들 때 선택한 리전을 기준으로 Google에서 할당하는 축약된 코드입니다. 일부 리전 ID는 일반적으로 사용되는 국가 및 주/도 코드와 비슷하게 표시될 수 있지만 코드는 국가 또는 주/도와 일치하지 않습니다. 2020년 2월 이후에 생성된 앱의 경우 REGION_ID.r이 App Engine URL에 포함됩니다. 이 날짜 이전에 만든 기존 앱의 경우 URL에서 리전 ID는 선택사항입니다.

리전 ID에 대해 자세히 알아보세요.

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

애플리케이션 구성요소

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

각 App Engine 애플리케이션에는 서비스가 최소 한 개(default 서비스) 이상 포함되어 있으며 앱의 결제 상태에 따라 이 서비스 버전을 원하는 만큼 보유할 수 있습니다. 자세한 내용은 아래의 한도를 참조하세요.

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

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

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

서비스

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

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

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

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

버전

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

인스턴스

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

App Engine 가변형 환경에서 인스턴스는 Compute Engine 리소스를 기반으로 합니다. 디스크, CPU, 메모리와 같은 App Engine 가변형 환경에서 인스턴스에 사용되는 일부 리소스는 해당 프로젝트의 Compute Engine API 할당량으로 계산됩니다. App Engine의 Compute Engine 리소스 사용 방법에 대한 자세한 내용은 App Engine 가변형 환경 개요를 참조하세요.

애플리케이션 요청

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

https://VERSION-dot-SERVICE-dot-PROJECT_ID.REGION_ID.r.appspot.com

VERSION-dot-SERVICE-dot-PROJECT_ID의 결합된 길이(VERSION는 버전 이름, SERVICE 은 서비스 이름, PROJECT_ID는 프로젝트 ID)는 63자(영문)를 초과할 수 없으며 하이픈으로 시작하거나 끝날 수 없습니다. 합친 길이가 63자를 초과하면 DNS address could not be found. 오류가 표시될 수 있습니다.

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

애플리케이션 요청 로깅

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

한도

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

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

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

애플리케이션 URL의 문자 수에도 한도가 있습니다.

설명 한도
VERSION-dot-SERVICE-dot-PROJECT_ID URL의 프로젝트 URL 최대 문자 수 63

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