넷플릭스는 처음에 스트리밍 비디오 전송을 3개의 대형 CDN 공급업체(Akamai, Level3, LimeLight)에 아웃소싱했습니다.
하지만 서비스가 점점 더 인기를 얻자, 여러 가지 이유로 자체 CDN을 구축하고 관리하는 것이 합리적이라고 결정했습니다.
> 실제적인 관점 에서 보면 , CDN 공급업체는 Netflix의 비디오 스트리밍에 대한 고객 수요 증가에 맞춰 인프라를 확장하는 데 어려움을 겪고 있었습니다. > 재정적인 관점 에서 볼 때 , 스트리밍 비디오의 양이 늘어나면서 아웃소싱 비용이 급격히 상승했습니다(많은 인기 있는 애플리케이션과 웹 속성이 겪는 과제). > 사업 적 관점 에서 볼 때 , DVD 대여가 비디오 스트리밍으로 대체되면서 Netflix의 주요 수익원이 되고 있다는 것은 분명했고,
회사의 주요 사업의 중요한 부분을 아웃소싱하는 것은 이치에 맞지 않았습니다.
가장 중요한 점은 넷플릭스가 애플리케이션 전달과 사용자 경험을 더 잘 제어하기 위해
자체 CDN을 구축했다는 것입니다. Netflix는 고객에게 최적의 스트리밍 미디어 전달을 제공하기 위해
전달 체인의 세 가지 기본 구성 요소에 대한 제어를 극대화해야 했습니다.
1. 사용자의 비디오 플레이어.
Netflix는 이미 이 구성 요소를 제어하고 있었습니다.
Netflix 개발자가 고객이 Netflix 콘텐츠를 보는 데
사용하는 모든 기기별 앱을 작성하기 때문입니다.
2. 사용자와 Netflix 서버 간의 네트워크.
이 구성 요소를 직접 제어할 방법은 없지만
Netflix는 ISP에 무료 비디오 스트리밍 기기를 제공하고 기기를 수용할 ISP 데이터 센터의 랙 공간을 제공함으로써
고객과의 네트워크 거리를 최소화합니다.
(기기는 타사 장비를 수용하는 데 관심이 없는 ISP의 고객을 위해 인터넷 교환소[IXP]에도 배치됩니다.)
3. 비디오 스트리밍은 패킷 지연 및 손실, 잘못된 도착,
TCP/IP에 내재된 예측할 수 없는(지터) 왕복 시간에 특히 민감하며,
네트워크 거리를 최소화하면 이러한 지연 및 손실에 노출될 가능성이 줄어듭니다.
비디오 서버(Open Connect 자체).
자체 CDN을 실행하면 Netflix가 CDN 소프트웨어를 조정하여 인터넷 이상을 최대한 보상할 수 있습니다.
사용자 지정 TCP 연결 제어 알고리즘과 HTTP 모듈을 실행할 수 있습니다.
또한 서버 및 네트워크 문제를 매우 빠르게 감지하고 클라이언트를 대체 서버로
다시 라우팅한 다음 서버 하드웨어에 로그인하여 "내부에서" 문제를 해결할 수 있습니다.
Netflix는 공급업체가 제공하는 일반 CDN으로는 불가능한 방식으로 비디오 스트리밍을 위해 Open Connect를 최적화할 수 있었습니다.
Open Connect를 통해 Netflix는 더 낮은 비용으로 뛰어난 사용자 경험을 제공하고
전 세계 애플리케이션 성능에 대한 가시성을 높일 수 있습니다.
Netflix가 NGINX와 FreeBSD를 선택한 이유
Netflix의 초기 목표는 Gleb가 언급한 바와 같이 "단일 박스에서 초당 기가비트를 점점 더 많이 처리하는 것"이었습니다.
구체적으로, Netflix는 각 기기가 동시에 지원할 수 있는 가입자 수를 극대화하는 것을 목표로 했습니다.
Open Connect 엔지니어들은 이 목표를 달성하기 위해 소프트웨어를 세밀하게 조정할 필요가 있을 것이라고 예상했기 때문에,
무제한 확장성을 위해 오픈 소스 소프트웨어를 채택하기로 결정했습니다.
앞서 설명했듯이, Netflix는 가능한 경우 비디오 스트리밍 기기를 고객 ISP의 데이터 센터에 배치합니다.
기기에서 실행되는 소프트웨어는 외부 업체의 손에 맡겨져 있으므로,
Netflix는 GNU Public License(GPL)가 아닌 BSD 스타일의 라이선스를 채택한 프로젝트를 선택했습니다.
Netflix가 선택한 구체적인 오픈 소스 프로젝트는 다음과 같습니다.
Netflix가 운영체제로 FreeBSD를 선택한 이유는 그 속도와 안정성 때문입니다.
FreeBSD는 강력한 개발자 커뮤니티를 보유하고 있으며,
공급업체와의 협력에도 적극적입니다.
스트리밍 미디어 서버로서 NGINX는 입증된 속도와 안정성을 제공하는 중요한 요소였으며,
Netflix는 Open Connect를 가능한 한 빨리 론칭하고 싶었습니다.
시작할 때 특별한 조정 없이 바로 사용할 수 있었고, CDN이 가동된 후에는 트래픽 패턴을 분석하고
NGINX 설정을 세밀하게 조정할 수 있었습니다.
또한, NGINX는 오픈소스 소프트웨어로 BSD 스타일 라이선스 하에 배포되지만,
핵심 개발자들은 모두 NGINX, Inc.의 정규직 직원들입니다.
NGINX, Inc.는 상용 제품인 NGINX Plus에 대해 엔터프라이즈급 지원을 제공하며,
OSS와 상용 소프트웨어의 장점을 결합한 강력한 선택을 제공합니다.
NGINX의 유연한 프레임워크는 사용자 정의 모듈을 실행할 수 있어 Netflix에 매력적이었고,
Open Connect 팀은 Netflix의 비디오 스트리밍 요구 사항에 맞는 모듈을 개발했습니다.
FreeBSD와 NGINX를 결합한 또 다른 장점은 뛰어난 성능을 제공하는 이벤트 기반 설계입니다.
FreeBSD의 kqueue 이벤트 알림 시스템 호출은 멀티플렉스 I/O를 위한
최고의 API 중 하나로, NGINX의 성능을 극대화하는 데 중요한 역할을 합니다.
또한, NGINX는 수정 없이 sendfile과 aio_read 시스템 호출을 함께 사용할 수 있어,
디스크 I/O 차단을 방지하며 뛰어난 성능을 구현할 수 있습니다.
NGINX Plus와 NGINX도 애플리케이션 전달을 최적화할 수 있습니다.
NGINX는 처음부터 적응 가능하고 애플리케이션 제공의 모든 측면을 지원하도록 설계되었습니다.
NGINX Plus는 상용 고객이 Netflix와 같은 애플리케이션을 손쉽게 배포할 수 있도록
웹 서빙, 로드 밸런싱, 콘텐츠 캐싱, 미디어 스트리밍 등을 하나의 패키지로 통합하여 제공합니다.
다른 선도적인 기업들이 어떻게 NGINX Plus를 활용해 성능, 보안, 확장성을 갖춘 애플리케이션을 제공하고 있는지
확인하려면 사례 연구를 참조해 보세요.
위 내용과 같이 NGINX Plus 를 활용하여 Demo 가 필요하시면 하단의 전문가에게 상담받기 버튼을 클릭해주세요
Netflix가 CDN의 심장으로 NGINX를 선택한 이유
넷플릭스는 출시된 지 몇 년 만에 40개국에서
5,000만 명 이상의 구독자에게 스트리밍 서비스를 제공하게 되었습니다.
넷플릭스 - NGINX를 이용한 자체 CDN 구축의 이유
넷플릭스는 처음에 스트리밍 비디오 전송을 3개의 대형 CDN 공급업체(Akamai, Level3, LimeLight)에 아웃소싱했습니다.
하지만 서비스가 점점 더 인기를 얻자, 여러 가지 이유로 자체 CDN을 구축하고 관리하는 것이 합리적이라고 결정했습니다.
> 재정적인 관점 에서 볼 때 , 스트리밍 비디오의 양이 늘어나면서 아웃소싱 비용이 급격히 상승했습니다(많은 인기 있는 애플리케이션과 웹 속성이 겪는 과제).
> 사업 적 관점 에서 볼 때 , DVD 대여가 비디오 스트리밍으로 대체되면서 Netflix의 주요 수익원이 되고 있다는 것은 분명했고,
가장 중요한 점은 넷플릭스가 애플리케이션 전달과 사용자 경험을 더 잘 제어하기 위해
자체 CDN을 구축했다는 것입니다. Netflix는 고객에게 최적의 스트리밍 미디어 전달을 제공하기 위해
전달 체인의 세 가지 기본 구성 요소에 대한 제어를 극대화해야 했습니다.
Netflix가 NGINX와 FreeBSD를 선택한 이유
Netflix의 초기 목표는 Gleb가 언급한 바와 같이 "단일 박스에서 초당 기가비트를 점점 더 많이 처리하는 것"이었습니다.
구체적으로, Netflix는 각 기기가 동시에 지원할 수 있는 가입자 수를 극대화하는 것을 목표로 했습니다.
Open Connect 엔지니어들은 이 목표를 달성하기 위해 소프트웨어를 세밀하게 조정할 필요가 있을 것이라고 예상했기 때문에,
무제한 확장성을 위해 오픈 소스 소프트웨어를 채택하기로 결정했습니다.
앞서 설명했듯이, Netflix는 가능한 경우 비디오 스트리밍 기기를 고객 ISP의 데이터 센터에 배치합니다.
기기에서 실행되는 소프트웨어는 외부 업체의 손에 맡겨져 있으므로,
Netflix는 GNU Public License(GPL)가 아닌 BSD 스타일의 라이선스를 채택한 프로젝트를 선택했습니다.
Netflix가 선택한 구체적인 오픈 소스 프로젝트는 다음과 같습니다.
NGINX Plus와 NGINX도 애플리케이션 전달을 최적화할 수 있습니다.
NGINX는 처음부터 적응 가능하고 애플리케이션 제공의 모든 측면을 지원하도록 설계되었습니다.
NGINX Plus는 상용 고객이 Netflix와 같은 애플리케이션을 손쉽게 배포할 수 있도록
웹 서빙, 로드 밸런싱, 콘텐츠 캐싱, 미디어 스트리밍 등을 하나의 패키지로 통합하여 제공합니다.
다른 선도적인 기업들이 어떻게 NGINX Plus를 활용해 성능, 보안, 확장성을 갖춘 애플리케이션을 제공하고 있는지
확인하려면 사례 연구를 참조해 보세요.
위 내용과 같이 NGINX Plus 를 활용하여 Demo 가 필요하시면 하단의 전문가에게 상담받기 버튼을 클릭해주세요
NGINX 전문가에게 상담받기