Shine's dev log

CDN (Content Distribution Networks) 의 개념 본문

컴퓨터 네트워크

CDN (Content Distribution Networks) 의 개념

dong1 2021. 2. 2. 15:40

1. 유튜브와 넷플릭스

 

최근 유튜브나 넷플릭스같은 비디오 스트리밍 사이트가 폭팔적으로 늘어나고 있고, 그 수요도 엄청나게 늘어나고 있다. 해당 서비스를 제공하는 사업자는 늘어난 수요를 맞추기 위해서 다양한 기술을 사용해야 한다.

 

기본적으로 하나의 서버를 사용하여 클라이언트의 요청에 응답하는 방식은 데이터의 양이 엄청나게 큰 비디오 파일에서는 적합하지 않을 것이다.

 

이번에는 과연 유튜브나 넷플릭스같은 회사가 어떻게 사용자에게 유연하게 컨텐츠를 제공할 수 있는지 알아보자.

 

 

 

2. DASH (Dynamic, Adaptive Streaming over HTTP)

 

우선, DASH라는 기술을 알아보자.

 

DASH는 컨텐츠 파일을 서로 다른 rate의 덩어리로 만들어 제공하는 기술이다.

대표적으로 유튜브에서 하나의 영상에 다양한 해상도를 제공하며, 인터넷 상황에 맞춰서 적절한 해상도의 영상을 제공하는 기술이 있다.

 

넷플릭스에서도 인터넷 상황이 좋으면 화질이 좋았다가, 인터넷 상황이 안좋아지면 화질이 안좋아지는 것을 볼 수 있는데, 이 역시 DASH 기술을 적용하였기 때문에 발생하는 것이다.

 

 

 

3. CDN (Content distribution networks)

 

이제 어떻게, 비디오 컨텐츠를 수많은 클라이언트에게 제공할 수 있는지 살펴보자.

 

원리는 간단하다. 전 세계에 여러개의 서버를 만들고 각 서버에 비디오 파일의 복사본을 저장해 놓는다. 그리고 사용자가 비디오 컨텐츠를 요청하면 해당 사용자와 가장 가까운 위치의 서버에서 비디오 컨텐츠를 받아오는 것이다.

 

아래 그림을 보며 넷플릭스에서 CDN 서버를 활용하는 방법을 살펴보자.

 

넷플릭스 CDN

 

1) 사용자는 비디오컨텐츠를 넷플릭스 서버에서 요청한다.

2) 넷플릭스는 해당 비디오에 대한 Manifest 파일을 반환한다.

3) Manifest 파일을 통해 사용자와 최적의 위치에 있는 CDN 서버를 찾아 컨텐츠를 요청한다.

4) CDN 서버가 DASH 기능을 활용해 비디오 컨텐츠를 제공한다.

 

물론 이 과정에서 'Manifest 파일을 통해 어느곳에 사용자에게 최적화된 서버가 위치하는가?' 라는 부가적인 물음들이 생길 순 있지만, 그렇게 깊게까지는 알아보고싶지 않으므로 여기서 마무리하자..

 

 

오늘 배운 내용을 정리해보면,

 

1. 비디오컨텐츠를 제공할 때, rate 별로 다양하게 제공하는 기능을 DASH라 한다.

 

2. 유튜브나 넷플릭스같은 비디오 컨텐츠 제공자는 하나의 큰 서버가 아니라 여러개의 CDN 서버를 통해 제공한다.