서버리스란?

서버리스 컴퓨팅은 애플리케이션 개발 부문에서 패러다임의 전환을 가져온 혁신 기술로 개발자가 인프라 걱정 없이 코드 작성에 집중하도록 도와줍니다. 이 솔루션은 서버 관리 및 사전 프로비저닝이 필요 없고 자동 확장이 가능하며 사용한 리소스에 대한 요금만 지불하면 되는 등 기존 컴퓨팅에 비해 훨씬 다양한 이점을 제공합니다. 이러한 이점 때문에 이 서버리스 컴퓨팅은 스테이트리스(Stateless) HTTP 애플리케이션, 웹, 모바일, IoT 백엔드, 일괄 및 스트림 데이터 처리, 챗봇 등의 사용 사례에 적합합니다.


GCP 서버리스 컴퓨팅 포트폴리오

Cloud Functions

서버리스 함수 및 이벤트

Cloud Functions

Google 및 타사 클라우드 서비스를 쉽게 연결하고 확장하며 순식간에 전 세계 규모로 확장되는 애플리케이션을 빌드할 수 있는 이벤트 기반 컴퓨팅 플랫폼입니다.

자세히 알아보기  
App Engine 표준

서버리스 http 애플리케이션

App Engine 표준 환경

웹 및 API 백엔드용 완전 관리형 서버리스 애플리케이션 플랫폼입니다. 인프라 관리에 대한 걱정 없이 일반적으로 많이 쓰이는 개발 언어를 사용할 수 있습니다.

자세히 알아보기  
Cloud Run

서버리스 컨테이너

Cloud Run

HTTP 요청을 통해 호출 가능한 스테이트리스(Stateless) 컨테이너를 실행하도록 도와주는 서버리스 컴퓨팅 플랫폼입니다. Cloud Run은 사용한 만큼만 지불하면 되는 완전 관리형 플랫폼으로 Anthos의 일부로도 사용될 수 있습니다.

자세히 알아보기  

내게 맞는 서버리스 컴퓨팅 플랫폼

서버리스 옵션

* App Engine 표준 환경은 Node.js, Python, 자바, Go, PHP를 지원합니다.

* Cloud 함수는 Node.js, Python, Go를 지원합니다.

사용 사례

웹 애플리케이션

웹 애플리케이션

App Engine 표준 환경은 Node.js, Python, PHP, 자바, Go로 실행되며 최소한의 작업만 필요한 웹 앱에 적합합니다. 원하는 언어 라이브러리를 사용해 표준 관용구로 애플리케이션을 제작할 수 있습니다. App Engine 표준 환경은 빠른 배포 시간과 확장성을 갖춰 작업이 급증하는 경우에 적합합니다.

비동기 백엔드 처리

비동기 백엔드 처리

Cloud Functions는 클라우드의 데이터 이벤트에 응답하고 Cloud Storage에 업로드된 이미지의 크기를 조절하거나 Firestore 데이터베이스에서 값이 수정되면 데이터를 검증하는 등의 간단한 처리를 수행합니다.

모바일 백엔드

모바일 백엔드

App Engine 표준 환경은 모바일 애플리케이션을 위한 기존 REST API 백엔드에서 호스팅 환경을 모니터링, 업데이트, 확장해 주는 앱 플랫폼입니다. 사용자는 모바일 백엔드 서비스 코드만 작성하면 됩니다. Firebase는 실시간 NoSQL 데이터베이스, 인증, 호스팅, 파일 스토리지 등 모바일 애플리케이션에 직접 통합되는 강력한 백엔드 서비스 제품군을 제공합니다. Firebase는 Cloud Functions와 통합되어 다른 Google Cloud Platform 서비스와 쉽게 연결할 수 있습니다.

API

API

단순한 API(HTTP 또는 Cloud Pub/Sub를 통해 액세스하는 작은 함수 집합)를 빌드할 때는 Cloud Functions를 사용하는 것이 좋습니다. 급격히 증가하는 작업 부하를 위해 설계된 제품으로 이 프로그래밍 패러다임(함수)을 사용하면 소규모 백엔드 코드를 정리하는 데 도움이 됩니다. 더 복잡한 API(많은 경로를 사용하는 REST API 등)에는 여러 함수를 더 쉽게 정리할 수 있는 App Engine 표준 환경을 사용하는 것이 좋습니다. API 관리를 위해 Cloud Endpoints를 사용한다면 App Engine 표준 환경과 함께 Cloud Endpoints를 지원하는 Python 2.7 및 자바 8을 사용하는 것이 좋습니다.

주기적 작업

주기적 작업

Cloud Scheduler에서는 정해진 일정에 따라 HTTP 요청을 전송해 주기적으로 작업을 트리거할 수 있습니다. App Engine을 정확히 타겟팅하거나 Cloud Functions 및 Cloud Run과 같은 HTTP 엔드포인트를 타겟팅할 수도 있습니다.

신속한 프로토타입 제작 및 API 결합

신속한 프로토타입 제작 및 API 결합

신속한 프로토타입 제작 또는 여러 API 및 서비스의 결합이 필요한 소규모 또는 '해커톤' 프로젝트에는 Cloud Functions를 사용하는 것이 좋습니다. 프로그래밍 패러다임을 통해 소규모 앱 또는 기존 API 및 서비스를 결합해 주는 '결합 코드'를 빠르게 개발할 수 있습니다.

제공업체의 제약이 없는 컨테이너 실행

제공업체의 제약이 없는 컨테이너 실행

Docker 컨테이너는 업계 표준으로서 모든 클라우드 또는 온프레미스에서 실행할 수 있습니다. Cloud Run은 서버리스 요청-응답 방식으로 컨테이너를 실행할 수 있습니다. GPU 등의 커스텀 하드웨어나 Kubernetes 클러스터가 필요한 경우가 아니라면 Cloud Run을 사용하는 것이 좋습니다. (Kubernetes 클러스터가 필요한 경우에는 Google Kubernetes Engine 클러스터에서 GKE의 Cloud Run을 실행하면 됩니다.)

서버리스 및 스테이트풀(Stateful) 워크로드 결합

서버리스 및 스테이트풀(Stateful) 워크로드 결합

Cloud Run for Anthos를 사용하면 간단하게 서버리스 및 스테이트풀(Stateful) 워크로드를 함께 실행할 수 있습니다. 예를 들어 Marketplace의 MongoDB를 Anthos GKE 클러스터에 배포해 서버리스 워크로드의 문서 스토리지로 사용할 수 있습니다. Anthos는 Kubernetes 클러스터에서 무엇이든 실행할 수 있는 유연성을 제공하며 Cloud Run for Anthos를 사용해 서버리스 워크로드를 함께 배포할 수 있습니다.

제품 비교

App Engine 표준 환경 Cloud Functions Cloud Run(베타)1 Cloud Run for Anthos(베타)1
배포 아티팩트 함수 컨테이너 컨테이너
Scale-to-zero 확인 확인 확인 Pod2
무료 등급 확인 확인 확인
웹소켓 확인
언어 자바, Node.js, Python, Go, PHP Node.js, Python, Go 모두 모두
액세스 제어 Oauth 2.0, CICP, Firebase 인증, Google 로그인, Users API 호출자 IAM 권한 호출자 IAM 권한, CICP, Google 로그인, Firebase 인증 클러스터만, VPC만
HTTP/2 및 gRPC 확인
커스텀 도메인 확인 확인 확인
요청 시간 제한 1분3 9분 15분 15분
GPU 및 TPU 확인
VPC 연결 확인베타1 추가 예정 확인

1. 베타 소프트웨어에는 SLA가 적용되지 않습니다.

2. GKE의 Cloud Run은 pod 수를 0으로 조정 가능합니다. 클러스터당 노드 수는 0으로 조정 불가능하며 이 노드는 요청이 없을 때도 요금이 청구됩니다.

3. 자동 확장: HTTP 요청의 기한은 60초입니다.

고급 도움말 및 권장사항

고려해야 할 몇 가지 사항을 소개합니다.