Learning
토픽 64 / 107·서버리스와 관찰성

Serverless 아키텍처 패턴 (Serverless Architecture Patterns)

Serverless 아키텍처 패턴 (Serverless Architecture Patterns)

서버 프로비저닝 없이 이벤트 기반으로 함수를 실행하는 서버리스 컴퓨팅을 활용한 아키텍처 패턴으로, 이벤트 드리븐, 마이크로서비스, 데이터 처리 등 다양한 패턴을 포함

목적: 운영 부담 감소, 자동 확장, 비용 효율(사용량 기반), 빠른 개발

특징: 서버 관리 없음, 이벤트 기반, 자동 확장, 밀리초 과금, Stateless

주요 패턴

  • API Gateway + Lambda: REST/GraphQL API, 웹 백엔드
  • Event-Driven Processing: S3/SNS/SQS 이벤트 → Lambda 처리
  • Scheduled Tasks: CloudWatch Events/EventBridge → Lambda (Cron 대체)
  • Stream Processing: Kinesis/DynamoDB Streams → Lambda 실시간 처리
  • Fan-Out: SNS → 다수 Lambda 병렬 처리
  • Saga Pattern: Step Functions 오케스트레이션, 분산 트랜잭션
  • CQRS: 읽기(AppSync/DynamoDB) / 쓰기(Lambda) 분리
  • Data Lake: S3 + Lambda + Athena, ETL 파이프라인

서버리스 컴포넌트

  • 컴퓨팅: Lambda, Fargate, Cloud Run
  • API: API Gateway, AppSync(GraphQL)
  • 스토리지: S3, DynamoDB
  • 오케스트레이션: Step Functions, EventBridge
  • 메시징: SNS, SQS, EventBridge

Anti-Patterns: 장시간 실행(15분 제한), 동기식 체인 호출, 모놀리식 함수, 과도한 상태

장점: 운영 부담 Zero, 자동 확장, 비용 효율, 빠른 개발, 고가용성

단점: Cold Start, 디버깅 어려움, 벤더 종속, 실행 시간 제한, 상태 관리

적용사례: 웹 API, IoT 데이터 처리, 이미지/비디오 처리, 챗봇 백엔드

비교: Serverless(함수 단위) vs Container(Pod 단위) vs VM(인스턴스 단위)

연관: AWS Lambda, API Gateway, Step Functions, 이벤트 기반, 마이크로서비스