App Engine 환경 선택하기

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

App Engine 환경

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

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

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

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

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

  • 소스 코드가 다음과 같이 특정 버전의 지원되는 프로그래밍 언어로 작성된 경우:
    • Python 2.7, Python 3.7
    • 자바 8, 자바 11(베타)
    • Node.js 8, Node.js 10
    • PHP 5.5, PHP 7.2, PHP 7.3(베타)
    • Ruby 2.5(베타)
    • Go 1.9, Go 1.11, Go 1.12
  • 무료 또는 저렴한 비용으로 실행되며 필요할 때 필요한 만큼만 지불할 수 있는 경우. 예를 들어 트래픽이 없는 경우, 애플리케이션을 0개 인스턴스까지 조정할 수 있습니다.
  • 트래픽이 갑자기 극단적으로 상승함에 따라 즉각적인 확장이 필요한 경우

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

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

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

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

  • 소스 코드가 다음과 같이 모든 버전의 지원되는 프로그래밍 언어로 작성된 경우:
    Python, 자바, Node.js, Go, Ruby, PHP, .NET
  • 커스텀 런타임 또는 기타 프로그래밍 언어로 작성된 소스 코드가 포함된 Docker 컨테이너에서 실행되는 경우
  • 네이티브 코드를 포함하는 프레임워크를 사용하거나 의존하는 경우
  • Compute Engine 네트워크에 있는 Google Cloud Platform 프로젝트의 리소스 또는 서비스에 액세스하는 경우

대략적인 기능 비교

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

기능 표준 환경 가변형 환경
인스턴스 시작 시간
최대 요청 제한 시간 60초 - 자세히 알아보기 60분
백그라운드 스레드 예(제한사항 있음)
백그라운드 프로세스 아니요
SSH 디버깅 아니요
확장 수동, 기본, 자동 수동, 자동
Scale-to-zero 아니요(최소 1개 인스턴스)
로컬 디스크에 쓰기
  • 자바 8, 자바 11(베타), Node.js, Python 3.7, PHP 7.2, PHP 7.3(베타), Ruby 2.5(베타), Go 1.11, Go 1.12는 /tmp 디렉터리에 대한 읽기 및 쓰기 액세스 권한이 있습니다.
  • Python 2.7, Go 1.9, PHP 5.5는 디스크에 대한 쓰기 액세스 권한이 없습니다.
예, 임시(각 VM 시작 시 초기화되는 디스크)
런타임 수정 아니요 예(Dockerfile을 통해)
배포 시간
자동 내부 보안 패치 예(컨테이너 이미지 런타임 제외)
NDB, Users API, Memcache, Images API 등과 같은 App Engine API 및 서비스에 대한 액세스
  • 예 - Python 2.7, Go 1.9, PHP 5.5, 자바 8
  • 아니요 - 자바 11(베타), Node.js, Python 3.7, PHP 7.2, PHP 7.3(베타), Ruby 2.5(베타), Go 1.11, Go 1.12
아니요
네트워크 액세스
  • 예 - 자바 8, 자바 11(베타), Node.js, Python 3.7, PHP 7.2, PHP 7.3(베타), Ruby 2.5(베타), Go 1.11, Go 1.12
  • Python 2.7, Go 1.9, PHP 5.5(결제 사용): App Engine 서비스를 통해서만 가능(아웃바운드 소켓 포함)
제3자 바이너리 설치 지원
  • 예 - 자바 8, 자바 11(베타), Node.js, Python 3.7, PHP 7.2, PHP 7.3(베타), Ruby 2.5(베타), Go 1.11, Go 1.12
  • 아니요 - Python 2.7, Go 1.9, PHP 5.5
위치 북미, 아시아 태평양 또는 유럽 북미, 아시아 태평양 또는 유럽
가격 책정 인스턴스 시간 기준 vCPU, 메모리, 영구 디스크 사용량 기준

환경을 심층적으로 비교하려면 Python, 자바, Go, PHP 중 해당하는 언어 가이드를 참조하세요.

가변형 환경과 Compute Engine 비교

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

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

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

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

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

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

표준 환경에 애플리케이션이 있는 경우 일부 서비스를 가변형 환경으로 이전할 수도 있습니다. Python, 자바, Go, PHP에 대한 안내는 권장사항을 참조하세요.

특정 서비스를 마이그레이션하려면 Python, 자바, Go, PHP에 대한 안내를 참조하세요.

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

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

App Engine 문서