피드로 돌아가기
Live Canary Deployments with AWS SAM, the New WebSocket API Resource, and Lambda Durable Functions
Dev.toDev.to
DevOps

Durable Functions와 WebSocket API를 활용한 실시간 Canary 배포 파이프라인 구축

Live Canary Deployments with AWS SAM, the New WebSocket API Resource, and Lambda Durable Functions

Darryl Ruggles2026년 5월 16일38advanced

Context

전통적인 Serverless 워크플로우는 상태 관리를 위해 복잡한 State Machine 정의가 필요하며, 실시간 모니터링 및 제어 인터페이스 구현 시 CloudWatch 의존도로 인한 운영 지연 발생함. 특히 WebSocket API 구축 시 수많은 개별 리소스 설정으로 인한 설정 복잡도가 병목 지점으로 작용함.

Technical Solution

  • AWS::Serverless::WebSocketApi 리소스를 통한 API Gateway 설정 단순화로 인프라 정의 코드 효율성 제고
  • Lambda Durable Functions 도입을 통해 상태 머신 정의 없이 Python 코드로 분기 및 대기 로직을 구현한 오케스트레이션 설계
  • Durable wait_for_callback 메커니즘을 활용하여 연산 비용 없이 사용자 개입(Promote/Rollback) 시점까지 실행을 일시 중단하는 구조 채택
  • MetricsEmitter Lambda를 분리하여 오케스트레이터의 Replay 표면적을 최소화하고 2초 간격의 저지연 메트릭 스트리밍 구현
  • WebSocket 기반의 양방향 통신 채널을 구축하여 실시간 지표 관찰과 즉각적인 제어 명령(Rollback NOW)을 동시에 처리
  • DynamoDB 단일 테이블 설계를 통해 배포 상태 정보와 WebSocket 연결 세션을 통합 관리하여 데이터 일관성 확보

- 워크플로우의 분기가 복잡하고 코드 기반 제어가 필요할 때 Step Functions 대신 Durable Functions 검토 - 단순 데이터 스트리밍을 넘어 실시간 제어 신호(Control Plane)가 필요할 경우 SSE보다 WebSocket 채택 - 오케스트레이션 함수 내에서 외부 상태를 기다릴 때, 폴링 대신 Callback 기반의 Event-Driven 구조 적용 - 인프라 설정 복잡도를 낮추기 위해 SAM의 최신 고수준 리소스 타입(WebSocketApi 등) 우선 활용

원문 읽기