App Engine 환경 선택

App Engine 가변형 환경이나 App Engine 표준 환경을 사용하여 App Engine에서 애플리케이션을 실행할 수 있습니다. 또한 애플리케이션이 두 환경을 동시에 사용하도록 선택할 수도 있으며 이를 통해 서비스는 각 환경의 개별 이점을 활용할 수 있게 됩니다.

App Engine 환경

App Engine은 마이크로서비스 아키텍처를 사용하여 설계된 애플리케이션에 매우 적합하며, 두 환경 모두 사용하는 경우 특히 그렇습니다. 다음 섹션을 사용하여 어느 환경이 애플리케이션의 요구사항을 가장 잘 충족시키는지 파악하고 이해해 보세요.

표준 환경을 선택해야 하는 경우

아래에 나열된 지원되는 언어의 런타임 환경을 사용하여 샌드박스에서 실행되는 애플리케이션 인스턴스

빠른 확장을 처리해야 하는 애플리케이션

표준 환경은 다음 특징을 가진 애플리케이션에 최적화되어 있습니다.

  • 무료 또는 저렴한 비용으로 실행되며 필요할 때 필요한 만큼만 지불할 수 있는 경우 예를 들어 트래픽이 없는 경우, 애플리케이션을 0개 인스턴스까지 조정할 수 있습니다.
  • 트래픽이 갑자기 극단적으로 상승함에 따라 즉각적인 확장이 필요한 경우

가변형 환경을 선택해야 하는 경우

Compute Engine 가상 머신(VM)의 Docker 컨테이너 내에서 실행되는 애플리케이션 인스턴스

일관된 트래픽을 수신하거나 정기적인 트래픽 변동을 경험하거나 점진적으로 확장하거나 축소하는 매개변수를 충족하는 애플리케이션

가변형 환경은 다음 특징을 가진 애플리케이션에 최적화되어 있습니다.

  • 커스텀 런타임 또는 기타 프로그래밍 언어로 작성된 소스 코드가 포함된 Docker 컨테이너에서 실행되는 경우
  • 네이티브 코드를 포함하는 프레임워크를 사용하거나 의존하는 경우
  • Compute Engine 네트워크에 있는 Google Cloud 프로젝트의 리소스 또는 서비스에 액세스합니다.

대략적인 기능 비교

다음은 두 환경의 차이점을 요약한 표입니다.

기능 표준 환경 가변형 환경
인스턴스 시작 시간
최대 요청 제한 시간 런타임 및 확장 유형에 따라 다릅니다. 60분
백그라운드 스레드 예(제한사항 있음)
백그라운드 프로세스 아니요
SSH 디버깅 아니요
확장 수동, 기본, 자동 수동, 자동
Scale-to-zero 아니요(최소 1개 인스턴스)
로컬 디스크에 쓰기
  • Java 8, Java 11, Java 17, Node.js, Python 3, PHP 7.X, PHP 8.1, Ruby, Go 1.11, Go 1.12 이상에는 /tmp 디렉터리에 대한 읽기 및 쓰기 액세스 권한이 있습니다.
  • Python 2.7 및 PHP 5.5에는 디스크에 대한 쓰기 액세스 권한이 없습니다.
예, 임시(각 VM 시작 시 초기화되는 디스크)
런타임 수정 아니요 예(Dockerfile을 통해)
배포 시간
자동 내부 보안 패치 예(컨테이너 이미지 런타임 제외)
Cloud Storage, Cloud SQL, Memorystore, Google Tasks 등의 Google Cloud APIs 및 서비스에 액세스합니다.
WebSocket 아니요
Java 8, Python 2, PHP 5는 독점 Sockets API(베타)를 제공하지만 최신 표준 런타임에서는 해당 API를 사용할 수 없습니다.
제3자 바이너리 설치 지원
  • 예 - Java 8, Java 11, Java 17, Node.js, Python 3, PHP 7.X, PHP 8.1, Ruby, Go 1.11, Go 1.12+
  • 아니요 - Python 2.7, PHP 5.5
위치 표준 환경의 위치 가변형 환경의 위치
가격 책정 인스턴스 시간 기준 vCPU, 메모리, 영구 디스크 사용량 기준

심층적인 환경 비교를 참조하세요.

가변형 환경과 Compute Engine 비교

App Engine 가변형 환경이 Compute Engine과 다른 점은 다음과 같습니다.

  • 가변형 환경 VM 인스턴스가 매주 다시 시작됩니다. 재시작 시 Google의 관리 서비스는 필요한 운영체제 및 보안 업데이트를 적용합니다.

  • 사용자가 항상 Compute Engine VM 인스턴스에 대한 루트 액세스 권한을 갖습니다. 가변형 환경의 VM 인스턴스에 대한 SSH 액세스는 기본적으로 사용 중지됩니다. 원하는 경우 앱의 VM 인스턴스에 대한 루트 액세스를 사용 설정할 수 있습니다.

  • Cloud Build 서비스를 사용하여 컨테이너 이미지를 빌드할 때 코드 배포에 더 많은 시간이 소요될 수 있습니다.

  • 가변형 환경의 VM 인스턴스의 지리적 리전은 Google Cloud 프로젝트의 App Engine 애플리케이션에서 지정한 위치를 기준으로 결정됩니다. Google의 관리 서비스는 VM 인스턴스를 같이 배치해 최적의 성능을 냅니다.

표준 환경에서 가변형 환경으로 마이그레이션

표준 환경에 애플리케이션이 있는 경우 일부 서비스를 가변형 환경으로 이전할 수도 있습니다. 자세한 내용은 환경 비교에서 추천을 참조하세요.

Python, Java, Go, PHP용 특정 서비스를 마이그레이션하려면 표준 환경에서 가변형 환경으로 서비스 마이그레이션을 참조하세요.

직접 사용해 보기

Google Cloud를 처음 사용하는 경우 계정을 만들어 실제 시나리오에서 Ruby 표준 환경의 성능을 평가할 수 있습니다. 신규 고객에게는 워크로드를 실행, 테스트, 배포하는 데 사용할 수 있는 $300의 무료 크레딧이 제공됩니다.

Ruby 표준 환경 무료로 사용해 보기