피드로 돌아가기
Dev.toInfrastructure
원문 읽기
Cloudflare Tunnel 기반 CGNAT 우회 및 4K 분산 스트리밍 동기화 설계
The problem with every watch-party app ever made
AI 요약
Context
기존 Watch-party 앱의 중앙 집중식 커서 동기화 방식은 CDN 지연 시간과 개별 스트림 간 편차로 인한 싱크 불일치 문제 발생. 특히 CGNAT 환경의 홈 서버 접근 불가 문제와 VPS 경유 시 발생하는 고비용 및 대역폭 병목이 핵심 제약 사항으로 작용.
Technical Solution
- 분산 미디어 레이어 설계를 통한 각 사용자 로컬 Jellyfin 인스턴스의 독립적 4K 스트리밍 구현
- Cloudflare Tunnel 기반의 Split-tunneling 방식을 채택하여 CGNAT 환경에서도 포트 포워딩 없이 HTTPS 엔드포인트 확보
- Socket.io 기반의 경량 Signaling Server를 구축하여 미디어 데이터 제외, 재생 상태(Play/Pause/Seek) 신호만 전송하는 구조 설계
- Host Authority 모델을 적용하여 상태 업데이트 권한을 호스트로 제한함으로써 다중 업데이트로 인한 Feedback Loop 차단
- WebRTC P2P 레이어를 통한 비디오 콜 및 스크린 공유 기능을 분리하여 미디어 서버 부하 제로화
- Tailscale 가상 네트워크를 활용하여 Signaling Server의 외부 노출을 최소화한 보안 연결 구성
실천 포인트
1. CGNAT 환경의 서비스 노출 시 VPS 리버스 프록시 대신 Cloudflare Tunnel 검토
2. 실시간 동기화 시스템 설계 시 상태 업데이트 충돌 방지를 위한 Host-based Authority 모델 적용
3. 고대역폭 데이터 전송 시 중앙 서버 경유를 배제한 P2P 또는 로컬 소스 기반 전송 구조 설계