실시간 AI 스트리밍: WebSocket으로 완성하는 끊기지 않는 대화
AI
실시간 AI 스트리밍: WebSocket으로 완성하는 끊기지 않는 대화
두줄요약
실시간 AI 스트리밍에서는 모델 성능뿐 아니라 토큰 전달의 자연스러움이 중요하다고 설명했습니다. WebSocket, Lambda, DynamoDB를 활용한 연결 관리와 백프레셔, 순서 보장 방식을 정리했습니다.
핵심 내용
- 실시간 AI 대화의 체감 품질은 모델 응답 속도뿐 아니라 토큰이 자연스럽게 이어져 보이는 스트리밍 경험에 좌우
- Amazon Bedrock, API Gateway WebSocket, Lambda, DynamoDB를 조합해 연결 관리와 토큰 전달 구조를 구성
구조와 흐름
- API Gateway의 $connect, $disconnect, $default 라우트로 세션과 connectionId 관리
- Lambda가 Bedrock 스트림을 받아 토큰을 적절히 배치·조율해 WebSocket으로 전달
- DynamoDB로 연결 상태와 메시지 메타데이터를 관리해 재연결과 순서 복원 지원
성능/운영 포인트
- 백프레셔로 모델 생성 속도와 브라우저 처리 속도 차이 조율
- 첫 토큰 도착 시간(TTFB) 단축이 체감 품질에 중요
- 410 Gone, 메시지 크기 제한, 유령 연결을 고려한 TTL·모니터링 필요
주의할 점
- 중복 메시지와 순서 뒤바뀜을 막기 위한 seq, messageId 기반 멱등성 필요
- 긴 텍스트는 분할 전송이 필요
- 재연결 시 마지막 seq 이후만 다시 전송하는 복구 설계 필요
