패턴 갤러리
실시간 채팅 서비스 아키텍처
중급월 ~$30 (1만 DAU 기준)
API Gateway WebSocketLambdaDynamoDBSQSCloudFront
실시간 채팅 서비스 아키텍처
WebSocket 기반의 실시간 양방향 메시징을 서버리스로 구현하는 AWS 패턴입니다.
🏗️ 이 패턴을 사용하면 좋은 경우: 1:1 / 그룹 채팅, 실시간 알림 시스템, 라이브 커머스 댓글, 협업 도구
아키텍처 다이어그램
다이어그램 로딩 중...
요구사항
장단점 비교
비용 시뮬레이션
💰 월 비용 예시 (1만 DAU, 일 평균 100 메시지)
- API Gateway WebSocket: 연결 분당 $0.000003 + 메시지 = $8
- Lambda: 3,000만 호출 × 100ms × 128MB = $6.30
- DynamoDB (연결 테이블): 온디맨드 = $2
- DynamoDB (메시지 테이블): 3,000만 쓰기 + 읽기 = $12
- SQS: 브로드캐스트 메시지 = $1
- 합계: ~$29/월
EC2 + Socket.io라면: t3.medium ($30) + Redis ($15) + RDS ($15) = $60/월
실전 팁
⚠️ 주의할 점:
- WebSocket API Gateway는 idle 연결 10분 후 자동 끊김 — 클라이언트에서 ping/pong 구현 필요
- 브로드캐스트 시 @connections API 호출은 순차적 — 대규모 방은 SQS + 병렬 Lambda로 분산
- DynamoDB 연결 테이블에 TTL 설정하여 좀비 연결 자동 정리
- 메시지 순서 보장이 필요하면 DynamoDB Sort Key에 타임스탬프 사용
✏️
본인의 말로 설명해 보세요
사용자 A가 메시지를 보내면 사용자 B에게 전달되기까지의 전체 흐름을 설명해보세요.
💡 A → WebSocket API GW → $default Lambda → DynamoDB 저장 → 같은 방 connectionId 조회 → @connections API로 B에게 전송...