App Engine 개요

리전 ID

REGION_ID는 앱을 만들 때 선택한 리전을 기준으로 Google이 할당하는 코드입니다. 기존 앱은 App Engine URL에 REGION_ID.r을 포함하는 것이 선택사항이고, 신규 앱은 모두 곧 필수가 될 예정입니다.

원활한 전환을 위해 리전 ID를 사용하도록 App Engine을 천천히 업데이트하고 있습니다. 아직 Google Cloud 프로젝트가 업데이트되지 않은 경우에는 앱의 리전 ID가 표시되지 않습니다. 기존 앱에서 ID는 선택사항이므로 기존 앱에서 리전 ID를 사용할 수 있게 되더라도 URL을 업데이트하거나 다른 변경을 수행할 필요가 없습니다.

리전 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은 로드에 맞게 앱의 크기를 조정합니다. 즉, 앱은 일관된 성능을 제공하기 위해 실행되는 인스턴스 수를 늘리거나 유휴 인스턴스를 최소화하고 비용을 절감하기 위해 인스턴스 수를 줄입니다. 인스턴스에 대한 자세한 내용은 인스턴스 관리 방법을 참조하세요.

애플리케이션 요청

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

https://VERSION_ID-dot-SERVICE_ID-dot-PROJECT_ID.REGION_ID.r.appspot.com

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

애플리케이션 요청 로깅

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

한도

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

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

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

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