CDN와 구글, 넷플릭스

기운찬곰·2020년 10월 14일
1

Computer Science

목록 보기
27/27

CDN

콘텐츠 전송 네트워크(Content delivery network 또는 content distribution network (CDN))는 콘텐츠를 효율적으로 전달하기 위해 여러 노드를 가진 네트워크에 데이터를 저장하여 제공하는 시스템을 말합니다.

목적

CDN 사용 시 장점은 인터넷 속성의 크기와 필요에 따라 다르지만 대부분의 사용자에 대한 기본 장점은 네 가지 요소로 구분될 수 있습니다.

위 사진은 CDN을 이용하지 않은 경우와 이용한 경우의 지연시간 차이를 보여줍니다.

  1. 웹사이트 로드 시간 개선 - 여러 최적화 방법 중 가까운 CDN 서버를 사용하여 웹사이트 방문자에 가까운 콘텐츠를 제공하므로 페이지 로드 시간이 빨라지게 됩니다. 사이트 로드가 느리면 방문자는 이탈하기 때문에 CDN은 이탈률을 줄이고 방문자가 사이트에서 보내는 시간을 늘릴 수 있습니다. 다시 말해 웹사이트가 빨라지면 더 많은 방문자가 더 오래 머뭅니다.

  2. 대역폭 비용 절감 - 웹사이트 호스팅용 대역폭 소비 비용은 웹사이트의 대표적 비용입니다. CDN은 캐싱과 기타 최적화를 사용하여 원본 서버가 제공해야 하는 데이터 양을 줄이고 웹사이트 소유자의 호스팅 비용을 줄일 수 있습니다.

  3. 콘텐츠 가용성 및 이중 - 대규모 트래픽이나 하드웨어 장애로 정상적인 웹사이트 기능이 멈 수 있습니다. CDN은 분산되어 있기 때문에 다수의 원본 서버보다 더 많은 트래픽을 처리하고 하드웨어 장애를 견딜 수 있습니다.

  4. 웹사이트 보안 개선 - CDN은 DDoS 완화, 보안 인증 개선, 기타 최적화를 제공하여 보안을 강화할 수 있습니다.

출처 : https://www.cloudflare.com/ko-kr/learning/cdn/what-is-a-cdn/


원리

왼쪽은 CDN을 사용하지 않은경우입니다. 서버가 하나뿐이라 모든 사용자의 요청에 일일이 응답해야 합니다. 따라서 막대한 트래픽을 유발하고, 부하가 발생해 장애가 발생할 확률이 큽니다.

오른쪽은 CDN을 사용한 경우입니다. 여러개로 나눠서 구성해놨기 때문에 사용자 입장에서 빠른 서비스를 제공받을 수 있습니다. 장애 확률도 낮춰줍니다.

위 이미지는 Cloudflare CDN의 경우입니다. Origin Server는 한개이지만, CDN Server는 여러 대륙에 분산 배치된 것을 알 수 있죠? 그렇기 때문에 그 지역에 사는 사람들은 좀 더 빠르게 서비스를 제공받을 수 있는 것입니다.

CDN 캐싱

CDN은 캐싱이라는 프로세스를 통해 원본 서버에서 분산 CDN 네트워크로 정적 콘텐츠 파일을 가져와 지연 시간을 개선합니다. 데이터가 캐시되면 CDN은 가장 가까운 CDN 데이터 센터에서 클라이언트로 콘텐츠를 제공합니다.

  1. 사용자가 웹 페이지를 요청하면 사용자의 요청은 CDN의 가장 가까운 에지 서버로 라우팅됩니다

  2. 그런 다음 에지 서버는 사용자가 요청한 콘텐츠를 Origin 서버에 요청합니다.

  3. Origin 서버는 에지 서버의 요청에 응답합니다.

  4. 마지막으로 에지 서버는 클라이언트에 응답합니다. 그리고 콘텐츠는 에지 서버에 계속 저장되어있습니다. 해당 컨텐츠 호출이 없을 경우 주기적으로 삭제됩니다.


CDN 업체

국내업체로는 네이버 클라우드 플랫폼이 있습니다.

해외업체로는 Cloudflare(무료/유료), Amazon CloudFront(상업용), Google Cloud CDN(상업용), 넷플릭스(사내) 등이 존재합니다. 그 외에는 다음을 참고하세요.


구글 글로벌 캐시(GGC)

자료를 조사하던 중 구글 글로벌 캐시에 대해 알게 되었습니다.

구글 글로벌 캐시는 구글이 각국의 통신사에 설치하여 운영하는 캐시 서버를 의미합니다.

사용배경

유튜브의 성장으로 인해 각국의 트래픽이 구글 데이터 센터로 쏠리는 상황이 발생하였고, 각국의 통신사가 확보한 해외망에 대한 가용량을 상당히 잡아먹는 요인이 되었다. 그로 인해 전세계 유튜브 이용자들이 버퍼링 문제를 하소연하였고 구글은 이에 대한 해결책을 마련하였으니...

바로 각국의 통신사마다 캐시 서버를 설치하는 것이였다. 구글은 각국의 통신사들이 사용하는 해외망을 구축하는데에 상당한 기여를 하였고, 각국의 통신사들이 사용하는 해외망 중 상당 부분은 구글이 직접 구축하고 소유하고 있는 자산이기도 하다. 게다가 유튜브를 통해 전세계의 트래픽을 독점하고 있는 구글의 요청을 통신사들이 거절하기 매우 어려웠다. 이러한 배경으로 인해 GGC의 확산은 상당히 빠르게 진행되었고 2017년을 기준으로 전세계 모든 통신사들이 자사 백본망에 GGC를 갖고 있다고 봐도 무방하다.


국내의 경우

  • LG U+ : 해외망이 부족했던 LG U+가 2012년부터 국내 통신3사 중에서 가장 먼저 GGC를 설치했다.

  • SK텔레콤, SK브로드밴드 : 2013년에 도입

  • KT : 캐시서버에 돈을 들이는 데에 인색했던 나머지 2014년까지 자사의 막대한 해외망으로 버텼는데, 종종 KT의 해외망 속도가 개판오분전이 되는 상황이 발생하거나 해외망 점검할 때마다 KT 이용자들이 유튜브 동영상에 대한 버퍼링 문제에 빡치게 만들곤 했다. 2015년, KT는 기가 인터넷과 기가 와이파이를 상용화하면서 끝내 GGC를 도입하게 되었고, 더이상 예전처럼 해외망으로 장난질치지 않게되자 GGC에 저장되지 않은 유튜브 동영상들은 해외망의 규모가 열약한 LG U+나 대한민국 계열 통신사에 비해서 버퍼링없이 매끄럽게 재생되었다.


동작원리

이용자가 유튜브 동영상을 감상할 때에 해당 통신사의 GGC에서 미리 캐싱해 둔 동영상이 존재한다면 구글 데이터 센터가 아닌 통신사에서 직접 동영상을 스트리밍 받는다.

통신사의 GGC에 이용자가 보고자 하는 동영상이 캐싱되어 있지 않다면, 구글 데이터 센터에서 직접 스트리밍을 받는다. 이때는 해외망을 많이 확보한 통신사의 회선에서 상당히 유리하다.

당장에 해외망의 규모가 열약한 LG U+나 SK그룹 계열사만 하더라도 GGC에 없는 유튜브 동영상을 재생하는 경우에 가끔씩 버퍼링이 걸리기도 하고 해외망 상태가 메롱인 경우에는 노답인 경우가 많다. 그러나 KT의 경우에는 GGC에 없는 동영상도 자사의 막대한 해외망이 뒷받침되기에 버퍼링이 없이 재생이 된다.

그러고 나서 해당 GGC에서는 캐싱되어 있지 않은 동영상을 구글 데이터 센터로부터 다운받아서 캐싱한다. 다음 이용자는 해당 GGC에서 스트리밍을 받게된다.


논란거리

우리나라 포털(네이버, 다음, 네이트 등)들은 국내 통신사에 굴복했다. 순순히 따르면 특혜를 주고, 그렇지 않는다면 회선 사용료로 서비스 중단을 압박한다. 덕분에 데이터를 많이 쓰는 UCC 사이트들이 높은 트래픽 요금으로 인해 싹 망했다. (아프리카TV는 매출의 20%에 달하는 금액을 지출하고 있다고 한다)

반면에 구글은 오히려 국내 통신사에게 갑의 위치에 있었기 때문에 트래픽의 부담을 덜게 된 구글의 유튜브가 날이 갈수록 서비스의 퀄리티가 발전하고 있었고 선점 효과를 누리고 있던 국내 UCC 사이트를 국내 통신사들이 키워주지는 못할 망정 알아서 자멸시켜준 덕에 국내 통신 3사는 유튜브로 인한 엄청난 해외 망 사용료를 물게 되어 괜히 국내 업체들에게 이득을 취하려다 오히려 엄청난 손해를 보는 자업자득으로 돌아와버렸다.


넷플릭스

넷플릭스는 2012년부터 자체 글로벌 콘텐츠 전송 네트워크(CDN) 시스템을 구축해왔습니다.
이러한 자체 글로벌 CDN 시스템 구축을 통해, 넷플릭스 구독자들이 체감하는 콘텐츠의 품질과 감상 속도가 크게 향상되었습니다.

오픈 커넥트(Open Connect Appliances; OCA)

ISP의 네트워크에 설치된 오픈 커넥트는 이용자들이 자주 찾는 콘텐츠 데이터를 이용자와 가장 가까운 위치에 저장하는 역할을 한다. 이용자가 해당 콘텐츠를 요청하면, 해외를 경유할 필요 없이 오픈 커넥트가 설치된 근처에서 재생 가능한 데이터를 전달한다. 가장 가까운 거리에서 콘텐츠를 스트리밍하기에 넷플릭스로 인해 발생하는 트래픽을 크게 낮출 수 있다. 먼 거리로 데이터를 전송하는 비용을 절감하고, 좀더 안정적이고 빠른 속도로 고품질 영상을 제공할 수 있다는 장점도 있다.

넷플릭스는 현재 전 세계 1,000여 곳의 위치에 OCA를 두고 있다. 뉴욕, 파리, 런던, 홍콩, 도쿄 등의 대도시는 물론 북쪽으로는 그린랜드와 노르웨이의 트롬쇠, 남쪽으로는 칠레의 푸에르토 몬트, 태즈매니아의 호바트에 이르는 벽지에서도 OCA가 운영되고 있다.

결정적으로, 넷플릭스는 이 오픈 커넥트 기술을 ISP에게 무상으로 지원하고 있다. ISP 업체측 네트워크에 오픈 커넥트 프로그램 하드웨어와 소프트웨어를 설치하고 사후 관리까지 책임진다. 당연하게, ISP의 인터넷 서비스를 통해 이용자들에게 고품질의 시청 환경을 제공하기 위함이다.

ISP 업체도 손해볼 건 없다. 국제망 증설 등 별도의 비용을 아낄 수 있고, 자사 인터넷 서비스를 통해 넷플릭스를 이용하는 고객을 만족시킬 수 있다. 더불어 세계 각지의 ISP 네트워크에 오픈 커넥트가 설치되면서, 넷플릭스 이용자들은 언제 어디서나 고화질 영상 콘텐츠를 즐길 수 있게 됐다. ISP와 이용자, 넷플릭스 모두에게 유리한 윈-윈 모델이다.


마침

이번시간에는 CDN이란 주제를 가지고 공부해봤는데요.. 단순할줄 알았던 CDN이 꽤나 양이 많았습니다.

특히 구글과 넷플릭스 같은 거대기업은 CDN 업체를 이용하지 않고 ISP와 계약을 통해 캐시서버를 두고 있다는 점이 꽤나 놀랐습니다. 그래서 그런지 많은 사람들이 이용하는데 동영상 끊김이 없이 서비스 되는 것도 이해가 갔습니다.

다음시간에는 원래는 애플리케이션 계층을 끝내고 전송계층으로 넘어가려고 했지만 여기서 미처 다루지 못한 망사용료와 국내 ISP의 해외망에 대해 알아보고 가겠습니다.

References

profile
배움을 좋아합니다. 새로운 것을 좋아합니다.

0개의 댓글