VPN을 통한 RTSP 스트리밍 (자동 스케일링 리스트리밍, HLS 전송 및 녹화 포함)
감시 플랫폼은 원격 위치에서 VPN 터널을 통해 RTSP 카메라 피드를 안전하게 수집하고, 웹 기반 보기 및 AI 처리를 위해 이를 리스트리밍하며, 수요에 따라 리스트리밍 인프라를 자동으로 확장하고, 아카이브를 위해 스트림을 녹화해야 했습니다. 이 모든 과정에서 예측할 수 없는 네트워크 조건에서도 낮은 지연 시간과 안정적인 연결을 유지해야 했습니다.
프로젝트 상담하기
과제
원격 IP 카메라를 중앙 집중식 클라우드 플랫폼에 연결하는 과정에서 여러 인프라 문제가 발생했습니다:
- 네트워크 보안 — 카메라의 RTSP 스트림은 공용 인터넷을 통과하여 암호화 없이 비디오 피드가 가로채일 위험이 있었습니다.
- NAT/방화벽 우회 — 기업 방화벽 및 NAT 뒤에 있는 카메라에는 클라우드에서 직접 접근할 수 없었습니다.
- 리스트리밍 오버헤드 — 원시 RTSP 스트림은 브라우저 기반 시청을 위해 웹 친화적인 프로토콜 (HLS)로 변환되어야 했으며, 이를 위해 전용 트랜스코딩 인프라가 필요했습니다.
- 가변적인 수요 — 시청자 및 AI 처리 수요는 하루 종일 변동했지만, 고정된 리스트리밍 서버는 확장할 수 없었습니다.
- 대규모 녹화 — 수십 개의 카메라 스트림을 지속적으로 녹화하려면 보존 정책을 갖춘 안정적인 스토리지 관리가 필요했습니다.
- 스트림 안정성 — 네트워크 불안정 시 VPN 터널이 끊어져 스트림 연속성을 잃지 않고 자동 재연결이 필요했습니다.
- 다중 프로토콜 전송 — 다양한 소비자는 다른 프로토콜을 필요로 했습니다: AI 작업자를 위한 RTSP, 웹 시청자를 위한 HLS, 아카이브를 위한 녹화된 세그먼트.
우리의 솔루션
저희는 안전한 카메라 연결을 위한 VPN 허브, 다중 프로토콜 전송을 위한 자동 스케일링 RTSP 리스트리밍 서버, 브라우저 재생을 위한 HLS 패키징, 그리고 보존 관리가 포함된 연속 녹화를 통해 VPN 터널링 RTSP 스트리밍 플랫폼을 구축했습니다.
아키텍처
- VPN Hub: 원격 카메라 사이트에 보안 터널을 설정하는 중앙 집중식 VPN 서버
- RTSP 수집 (Ingest): VPN에 연결된 카메라가 암호화된 터널을 통해 RTSP 스트림을 게시합니다.
- 리스트리밍 클러스터: RTSP 릴레이, HLS 변환 및 스트림 배포를 위한 자동 스케일링 MediaMTX 서버
- HLS 패키징: 웹 브라우저 전송을 위한 실시간 RTSP-to-HLS 변환
- 녹화 서비스: 세그먼트 기반 스토리지 및 보존 정책을 통한 연속 스트림 녹화
- Load Balancer: 시청자 및 AI 작업자 연결을 리스트리밍 서버 전반에 걸쳐 분산합니다.
- Orchestrator: 수요를 모니터링하고 리스트리밍 클러스터를 확장 또는 축소합니다.
- Storage: 라이프사이클 관리가 포함된 녹화된 세그먼트용 Object storage
VPN 터널 아키텍처
보안 카메라 연결성
- 클라우드에 배포된 VPN hub는 각 원격 사이트에 암호화된 터널을 설정합니다.
- 원격 위치의 카메라는 VPN 터널 내에서 RTSP를 스트리밍하여 공용 인터넷에 노출되지 않습니다.
- 각 사이트는 허브에 연결되는 VPN 클라이언트를 얻어 사설 네트워크 오버레이를 생성합니다.
- 카메라 RTSP 스트림은 사설 VPN IP 주소를 통해 클라우드 인프라에서 접근할 수 있습니다.
- 사이트당 여러 대의 카메라가 하나의 VPN 터널을 공유합니다.
NAT/방화벽 우회
- VPN 클라이언트는 카메라 사이트에서 아웃바운드 연결을 시작합니다 (인바운드 방화벽 규칙 불필요).
- Hub는 인바운드 연결을 수락하여 양방향 터널을 생성합니다.
- 클라우드 서비스는 마치 로컬인 것처럼 VPN 네트워크를 통해 카메라 RTSP 피드에 접근합니다.
신뢰성
- 네트워크 중단 시 자동 터널 재연결
- Keepalive 프로브는 무음 장애를 감지하고 복구합니다.
- 제한적인 네트워크와의 호환성을 위해 여러 터널 프로토콜이 지원됩니다.
- 장기간 연결 끊김에 대한 알림과 함께 터널별 상태 모니터링
자동 스케일링 리스트리밍
RTSP 릴레이
리스트리밍 서버는 VPN 네트워크에서 카메라 RTSP 피드를 가져와 다운스트림 소비자에게 제공합니다:
- AI 작업자는 낮은 지연 시간과 프레임 정확한 처리를 위해 RTSP를 통해 연결합니다.
- 여러 소비자가 카메라에 추가 부하를 주지 않고 동일한 카메라 스트림에 접근할 수 있습니다.
- 스트림 멀티플렉싱은 카메라 사이트의 대역폭을 줄입니다 (한 번의 가져오기, 여러 소비자).
HLS 변환
웹 기반 시청을 위해 리스트리밍 서버는 RTSP를 실시간으로 HLS로 변환합니다:
- 표준 웹 인프라를 통한 HTTP 전송을 위한 세그먼트 기반 패키징
- 다양한 시청자 네트워크 조건에 대한 Adaptive Bitrate 지원
- Edge-cached 전송을 위한 CDN 호환 출력
- 거의 실시간 시청을 위한 Low-latency HLS 구성
자동 스케일링
리스트리밍 클러스터는 수요에 따라 확장됩니다:
- 스케일 업 (Scale Up) — 서버당 시청자/AI 연결이 임계값을 초과하거나 CPU 사용률이 높을 때
- 스케일 다운 (Scale Down) — 사용률이 지속적으로 임계값 이하로 떨어질 때
- 새로운 서버는 VPN 네트워크에서 카메라 피드를 가져와 Load Balancer에 등록합니다.
- Graceful shutdown은 서버를 제거하기 전에 연결을 비웁니다 (시청자는 안정적인 URL을 통해 자동으로 재연결).
녹화 파이프라인
연속 녹화
- 리스트리밍 서버 또는 전용 녹화 작업자는 RTSP 스트림을 세그먼트화된 파일로 캡처합니다.
- 관리 가능한 파일 크기를 위해 구성 가능한 간격으로 세그먼트가 기록됩니다.
- 각 세그먼트에는 카메라 ID, 타임스탬프 및 지속 시간 메타데이터가 태그됩니다.
스토리지 관리
- 영구적인 아카이브를 위해 세그먼트가 Object storage에 업로드됩니다.
- 보존 정책은 구성된 보존 기간보다 오래된 세그먼트를 자동으로 삭제합니다.
- Storage lifecycle 규칙은 삭제 전에 오래된 세그먼트를 더 저렴한 스토리지 계층으로 이동시킵니다.
- 카메라 및 사이트별 스토리지 할당량은 비용 폭주를 방지합니다.
재생
- 녹화된 세그먼트는 시간 기반 쿼리 (카메라 + 시간 범위)를 통해 접근할 수 있습니다.
- 브라우저 기반 녹화 푸티지 재생을 위해 실시간으로 HLS 매니페스트가 생성됩니다.
- 세그먼트 수준의 세분성을 통해 녹화된 타임라인을 탐색하고 스크럽합니다.
다중 프로토콜 전송
| 소비자 | 프로토콜 | 지연 시간 | 사용 사례 |
|----------|----------|---------|----------|
| AI 작업자 | RTSP | 낮음 (~500ms) | 실시간 객체 감지, 분석 |
| 웹 시청자 | HLS | 중간 (2-6초) | 브라우저 기반 실시간 모니터링 |
| 모바일 앱 | HLS | 중간 (2-6초) | 모바일 장치를 통한 원격 모니터링 |
| 아카이브 | 녹화된 세그먼트 | 해당 없음 | 사건 검토, 규정 준수, 포렌식 |
모니터링 및 신뢰성
스트림 상태
- 카메라별 스트림 상태 모니터링 (연결됨, 버퍼링 중, 연결 끊김)
- 사이트별 VPN 터널 상태 (지연 시간, 패킷 손실, 업타임)
- 리스트리밍 서버 지표 (CPU, 대역폭, 연결 수)
- 녹화 파이프라인 상태 (세그먼트 쓰기 속도, 스토리지 사용량, 업로드 상태)
알림
- 사이트 식별을 포함한 카메라 연결 끊김 알림
- VPN 터널 장애 알림
- 리스트리밍 클러스터 용량 경고
- 스토리지 할당량 및 보존 알림
- 세그먼트 연속성 검사를 통해 감지된 녹화 공백
주요 기능
- VPN 보안 수집 (Ingest) — 암호화된 터널이 원격 카메라의 RTSP 스트림을 보호합니다.
- NAT/방화벽 우회 — 아웃바운드 VPN 연결은 제한적인 네트워크 구성을 우회합니다.
- 자동 스케일링 리스트리밍 — 클러스터는 시청자 및 AI 수요에 따라 확장됩니다.
- HLS 변환 — 브라우저 기반 시청을 위한 실시간 RTSP-to-HLS 변환
- RTSP 릴레이 — AI 처리 작업자를 위한 낮은 지연 시간의 스트림 접근
- 연속 녹화 — 보존 관리가 포함된 세그먼트 기반 녹화
- 다중 프로토콜 — 단일 수집(Ingest)을 통한 RTSP, HLS 및 녹화된 세그먼트
- 자동 재연결 — VPN 터널 및 스트림 연결은 중단으로부터 자동으로 복구됩니다.
- 스토리지 라이프사이클 — 자동 보존 정책 적용을 통한 계층형 스토리지
- 스트림 멀티플렉싱 — 하나의 카메라 풀로 카메라에 추가 부하 없이 여러 소비자에게 서비스를 제공합니다.
결과
기술 스택
caseStudyDetail.more 사례 연구
더 많은 기술 구현 사례를 살펴보세요
자주 묻는 질문
MicrocosmWorks는 VPN 레이어를 추가했습니다. 그 이유는 기업 방화벽 또는 NAT 뒤에 있는 RTSP 카메라가 클라우드 인프라에서 직접 접근될 수 없기 때문이며, 카메라 RTSP 포트를 공용 인터넷에 노출하는 것은 심각한 보안 취약점을 만들기 때문입니다. VPN 터널은 지리적 거리에 따라 약 5-15ms의 지연 시간을 추가하는데, 이는 감시 사용 사례에서는 무시할 수 있는 수준입니다. 또한, 암호화된 터널은 전송 중인 비디오 데이터가 기업 보안 및 규정 준수 요구 사항을 충족하도록 보장합니다.
MicrocosmWorks는 각 RTSP 소스 스트림에서 여러 품질 버전을 생성하는 적응형 비트레이트 HLS 트랜스코딩을 구현하여 HLS 플레이어가 시청자의 사용 가능한 대역폭에 따라 품질 수준 간에 자동으로 전환할 수 있도록 합니다. 이 시스템은 라이브 RTSP 피드와 HLS 출력 간의 지연 시간을 최소화하기 위해 하드웨어 가속 트랜스코딩을 사용하며, 세그먼트 지속 시간 구성에 따라 일반적으로 4-8초의 glass-to-glass 지연 시간을 달성합니다.
MicrocosmWorks는 VPN 게이트웨이에 엣지 측 버퍼링을 구축했습니다. 이는 네트워크 중단 시 스트림 세그먼트를 로컬에 캐시하고, 연결이 복원되면 시간 순서대로 업로드하여 장기 연결 끊김 중에도 녹화 공백이 발생하지 않도록 보장합니다. 클라우드 측 녹화 서비스는 타임라인 공백을 감지하고 이를 재생 인터페이스에 표시하여, 운영자가 실시간 영상이 지연된 기간을 명확하게 파악할 수 있도록 합니다.
MicrocosmWorks는 카메라 현장의 가용 업스트림 대역폭과 VPN 게이트웨이 하드웨어 사양에 따라, 해당 아키텍처가 VPN 터널당 50-100개의 동시 1080p RTSP 스트림을 지원하도록 테스트했습니다. 카메라가 더 많은 현장의 경우, 시스템은 자동 스트림 분배를 통해 여러 병렬 VPN 터널을 지원하며, 전체 스트림 수가 증가함에 따라 클라우드 측 auto-scaler가 추가 restreaming worker를 프로비저닝합니다.
MicrocosmWorks는 시간당 $25-$45의 개발 요율로 VPN 기반 스트리밍 플랫폼을 구축합니다. VPN 인프라, 오토스케일링 재스트리밍, HLS 트랜스코딩 및 녹화 기능을 포함하는 운영 준비 완료 배포를 위해서는 일반적으로 2-4개월이 소요됩니다. 지속적인 클라우드 비용은 오토스케일링 패턴을 통해 최적화되며, 비피크 시간 동안 재스트리밍 워커를 축소함으로써 고정 용량 배포보다 40-60% 더 낮게 운영되는 것이 일반적입니다.