Google Cloud에서의 앱 호스팅

Google Cloud는 다양한 애플리케이션 호스팅 옵션을 제공합니다. 아래 차트에서 요구사항에 맞는 옵션을 찾아보세요.


사용 사례

어디서부터 시작해야 할지 막막하신가요? 아래에서 일반적인 시나리오를 살펴보세요.
HTTP 서비스 및 백엔드 앱
웹 프레임워크, 마이크로서비스
예시:
  • Flask
  • Django
  • Express.js
  • Symfony
  • Spring Boot
App Engine 표준 환경
  • 갑작스러운 수요 증가에 따른 확장
  • 사용한 만큼만 비용 지불
  • API 엔드포인트 지원
Google App Engine 문서
이벤트 기반 데이터 처리 앱
사용자 생성 데이터 및 이벤트 조작
예시:
  • GitHub 커밋 이후 Slack 채널에 메시지 게시하기
  • 통계적 분석
  • 이미지의 미리보기 이미지 생성
Cloud Functions
  • 이벤트 기반 워크로드를 고려한 설계
  • 갑작스러운 수요 증가에 따른 확장
  • 최소 구성
Google Cloud Functions 빠른 시작
컨테이너 기반 앱 및 서비스
멀티 클라우드 인프라를 위한 업계 표준 패키징
예시:
  • Rust, Kotlin, C++, Bash 등의 커스텀 런타임 환경
  • Python 2.7, 자바 7 등의 언어를 사용하는 기존 웹 앱
Cloud Run(완전 관리형)
  • 업계 표준 Docker 컨테이너 지원
  • 컨테이너화된 앱의 자동 확장
  • 커스텀 바이너리 및 시스템 종속 항목
  • API 엔드포인트 지원
Cloud Run(완전 관리형) 빠른 시작
온프레미스 및 모놀리식 워크로드
기존 인프라 요구사항을 충족하는 원시 컴퓨팅
예시:
  • 관계형 데이터베이스, SAP HANA
  • CRM 시스템
  • 기존 ERP 시스템
Compute Engine
Google Compute Engine 가이드
자체 호스팅 확장형 인프라
서버리스 확장성을 갖춘 자체 관리형 호스팅
예시:
  • 커스텀 하드웨어 및 소프트웨어(OS, GPU)가 필요한 컨테이너화된 앱
  • 기존 컨테이너화된 스테이트리스(Stateless) 앱
  • scale-to-zero를 활용할 수 있는 Kubernetes Engine의 앱
Cloud Run for Anthos on Google Cloud
  • 업계 표준 Docker 컨테이너 패키징
  • 기존 워크로드 및 구성에 대한 우수한 구성 가능성
  • 수요에 맞게 확장
Cloud Run for Anthos on GCP 빠른 시작
β
베타 소프트웨어는 SLA가 적용되지 않으며 프로덕션 워크로드에 적합하지 않을 수 있습니다.

호스팅 옵션

워크로드마다 특정한 기술 요구사항이 있습니다. 플랫폼은 추상화 정도에 따라 정렬했습니다.
Compute Engine Kubernetes Engine(GKE) Cloud Run for Anthos on Google Cloud Cloud Run(완전 관리형) App Engine 가변형 환경 App Engine 표준 환경 Cloud Functions
배포 형식
VM 이미지
클러스터
컨테이너
컨테이너

또는

컨테이너

함수
커스텀 URL
Scale-to-zero
~
1
무료 등급
영구 디스크
2
WebSocket
~
3
β
β
모든 언어 실행
요청 시간 제한
없음
없음
15분
60분
60분
1분
9분
백그라운드 프로세스
~
4
TPU/GPU 액세스
~
3
VPC 연결
1
Cloud Run for Anthos on Google Cloud는 pod 수를 0으로 조정합니다. 클러스터당 노드 수는 0으로 조정할 수 없으며 이 노드는 요청이 없는 기간에도 요금이 청구됩니다.
2
GKE의 컨테이너 인스턴스는 종료 시 데이터를 유지하지 않습니다. 하지만 Compute Engine 영구 디스크는 GKE의 컨테이너 인스턴스에 마운트할 수 있습니다.
3
Cloud Run for Anthos on Google Cloud에서의 WebSocket 사용 및 TPU/GPU 액세스는 기술적으로는 가능하나 공식적으로 지원되지는 않습니다.
4
App Engine 표준 환경은 기본 및 수동 확장 모드의 백그라운드 태스크를 지원합니다.
β
베타 소프트웨어는 SLA가 적용되지 않으며 프로덕션 워크로드에 적합하지 않을 수 있습니다.

핵심 용어

배포 형식

특정 플랫폼에 배포할 때 코드를 어떻게 패키징하나요?

  • VM 이미지 - 기본 OS를 포함한 전체 파일 시스템의 스냅샷입니다.
  • 컨테이너 - 기본 OS와 분리된 이식 가능한 크로스 플랫폼 파일 시스템입니다.
  • 앱 - 사용 사례를 1개 이상 포함한 하나의 서비스로서 디렉터리에 포함되어 있습니다.
  • 함수 - 각각 단일 사용 사례에 해당하는 개별 코드 스니펫입니다.

커스텀 URL

멀티 레이어 URL 경로(/abc/def 등)를 만들거나 자체 도메인 이름을 사용할 수 있나요?

영구 디스크

인스턴스가 종료되면 디스크 상태를 저장할 수 있나요? 아니면 장기 데이터를 인스턴스 외부에 저장해야 하나요?

Scale-to-zero

이 제품은 0개 인스턴스로 축소하여 요청이 없는 기간 동안 과금을 피할 수 있나요?

WebSocket

이 제품은 WebSocket 프로토콜을 지원하나요?

모든 언어 실행

이 제품은 임의의 프로그래밍 언어로 작성된 코드를 실행할 수 있나요?

요청 시간 제한

플랫폼에서 애플리케이션 코드의 응답을 기다리는 최대 시간이 얼마나 되나요?

백그라운드 프로세스

이 제품은 요청 기간이 아니어도 지속적인 백그라운드 작업을 실행할 수 있나요?

GPU 및 TPU 사용

이 제품은 GPU/TPU에 최적화된 워크로드에 하드웨어 가속을 지원하나요?

VPC 연결

이 제품은 Virtual Private Cloud의 리소스에 액세스할 수 있나요?