한 줄 정의
넷플릭스가 수억 명의 동시 접속 트래픽을 처리하기 위해 공용 CDN 대신 자체 하드웨어(Open Connect)를 ISP 내부에 구축하고, 수요 발생 전에 콘텐츠를 예측하여 엣지(Edge)로 미리 밀어넣는 아키텍처 원칙이다.
핵심 요지
- 뻔한 설계의 실패: 동적 풀스루(pull-through) 캐싱은 신작 프리미어 등 트래픽이 폭주하는 순간에 캐시 미스(cache miss)를 유발해 원본 서버를 마비시킨다.
- 수요 발생 전 사전 배치 (Pre-positioning): 넷플릭스는 재생 버튼이 눌리기 몇 시간 전, 트래픽이 한산한 밤에 수요를 예측하여 각 지역 서버(Open Connect Appliance)로 콘텐츠를 미리 복사한다.
- 작업의 분리: 컨트롤 플레인(로그인, 추천, 매니페스트 라우팅)은 AWS 클라우드에, 데이터 플레인(무거운 비디오 파일)은 클라우드가 아닌 ISP 네트워크 내 자체 설계 하드웨어에 분리 배치한다.
- 클라이언트 단의 화질 협상: 서버에서 라우터까지의 네트워크 변수를 Open Connect가 제거한다면, 집 안의 Wi-Fi 등 남은 변수는 클라이언트의 어댑티브 비디오 플레이어(Adaptive Bitrate Streaming)가 버퍼 상태를 확인하며 화질을 동적으로 낮추는 방식으로 흡수한다.
- 핵심 교훈: 대규모 시스템에서 사용자 요청에 대응(reaction)하는 것은 이미 늦다. 작업을 요청 이전으로 당겨라(Move the work to before the request).
상세
넷플릭스의 스트리밍 성공 비결은 요청이 거실을 떠나기 전에 대부분의 어려운 문제를 미리 해결한다는 데 있다. 사용자가 재생 버튼을 누르면, 클라우드(AWS)로 가는 가벼운 API 호출이 이뤄져 매니페스트 파일(URL 목록)만 반환받는다. 실제 비디오 데이터는 수천 킬로미터 떨어진 서버가 아니라 사용자 집 근처의 로컬 ISP에 위치한 캐시 서버에서 스트리밍된다. 이러한 설계는 소규모 서비스에도 적용할 수 있다. 기능 배포 시 CDN을 미리 예열(warm)하거나, 무거운 대시보드 쿼리를 미리 연산해 저장해두는 방식 등이 모두 “수요 이전에 콘텐츠를 엣지로 밀어넣는” 패턴의 일환이다.
예시
- 신작 오리지널 시리즈가 금요일 밤 자정에 공개된다면, 해당 영상은 이미 목요일 밤에 사용자 지역의 ISP 건물 내 Open Connect 서버에 미리 전송되어 있다.
- 불안정한 모바일 환경에서 화질 사다리(Quality Ladder)를 미리 인코딩해두고 대역폭에 따라 4K 15Mbps에서 235kbps까지 유연하게 전환하여 로딩 스피너(spinner) 대신 화질 저하만 겪게 한다.