서버리스(Serverless)란 서버를 직접 관리하지 않고 클라우드 제공자가 자동으로 인프라를 운영 및 확장하는 컴퓨팅 모델입니다. 개발자는 코드 작성과 배포에 집중할 수 있으며, 인프라 운영 부담이 줄어듭니다.
GCP(Google Cloud Platform)에서는 여러 가지 서버리스 서비스가 제공되며, 대표적으로 Cloud Functions, Cloud Run, App Engine, Cloud Workflows 등이 있습니다.
📌 특징
📌 사용 사례
✅ 이미지 업로드 시 자동 리사이징
✅ 실시간 데이터 처리
✅ 웹훅(Webhook) 처리
💡 예제: Pub/Sub 메시지를 처리하는 Cloud Function
def hello_pubsub(event, context):
print(f"Received message: {event}")
📌 특징
📌 사용 사례
✅ REST API 또는 웹 애플리케이션 배포
✅ 머신러닝 모델 서빙
✅ CI/CD 배포 파이프라인
💡 예제: Cloud Run에 배포할 간단한 Flask 애플리케이션
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello():
return "Hello Cloud Run!"
if __name__ == "__main__":
app.run(host="0.0.0.0", port=8080)
📌 특징
📌 사용 사례
✅ 웹 애플리케이션 및 API 서버 배포
✅ 모바일 백엔드 서비스
✅ 빠른 프로토타이핑
💡 예제: App Engine에서 실행할 간단한 Flask 앱
runtime: python39
entrypoint: gunicorn -b :$PORT main:app
📌 특징
📌 사용 사례
✅ Cloud Run, Cloud Functions, Pub/Sub을 연계한 데이터 파이프라인 구축
✅ API 호출 자동화
💡 예제: Cloud Run 서비스 실행 후 응답을 받아오는 Workflow
main:
steps:
- call_cloud_run:
call: http.get
args:
url: "https://your-cloud-run-url"
서비스 | 사용 방식 | 주요 트리거 | 사용 사례 |
---|---|---|---|
Cloud Functions | 이벤트 기반 함수 실행 | HTTP, Pub/Sub, Firestore 등 | 데이터 처리, 웹훅 처리 |
Cloud Run | 컨테이너 기반 실행 | HTTP 요청 | REST API, ML 모델 배포 |
App Engine | PaaS 기반 애플리케이션 실행 | HTTP 요청 | 웹 애플리케이션 배포 |
Cloud Workflows | 서비스 오케스트레이션 | API 호출, Cloud Run 연계 | 자동화, 워크플로우 실행 |
✔️ 자동 확장: 트래픽에 따라 자동으로 확장 및 축소됨.
✔️ 비용 최적화: 사용한 만큼만 비용을 지불(Pay-as-you-go).
✔️ 빠른 배포: 인프라 설정 없이 코드 배포만으로 서비스 운영 가능.
⚠️ 콜드 스타트: 초기 실행 시 지연 시간이 발생할 수 있음(Cloud Functions, Cloud Run).
⚠️ 벤더 락인: GCP 환경에 종속될 가능성이 있음.
⚠️ 상대적으로 제한적인 제어권: VM이나 Kubernetes와 달리 세부적인 설정이 어려움.
GCP의 서버리스 플랫폼은 개발자가 인프라 관리 부담 없이 빠르게 애플리케이션을 배포할 수 있도록 돕습니다.
각 서비스의 특성을 잘 활용하면 비용 절감과 개발 속도 향상을 동시에 달성할 수 있습니다.