realtime-chat
패턴 갤러리

실시간 채팅 서비스 아키텍처

중급월 ~$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에게 전송...