CDN은 Contents Delivery Network로 지리적으로 분산된 여러 개의 서버이다.

콘텐츠를 사용자와 가까운 곳에서 전송함으로써 지연시간을 최소화하고 전송 속도를 높이기 위한 서버이다. CDN은 중앙 서버로 부터 콘텐츠를 전 세계 여러 CDN 서버로 캐싱하여 복제한 다음 사용자의 Request가 들어왔을 때 가장 물리적으로 가까운 CDN 서버에서 사용자에게 전송해 준다.

예를 들어 보자 중앙일보에서 뉴스를 중앙일보 사옥 내 서버에 저장하고 있다.

근데 뉴욕에 살고있는 한국인 이경영씨가 중앙일보 뉴스를 인터넷을 통해 보려고 한다. 만약, 이때 CDN서버가 없으면 이경영씨는 서울에 있는 중앙일보 서버에 요청을 보낸 다음 응답을 받아야만이 기사를 볼 수 있다. 그렇다면 이때 태평양을 건너는 시간동안 당연히 지연시간이 생길 수 밖에 없다.

그러나 CDN 서버를 사용할 경우 이야기는 달라진다.

CDN 서버는 중앙일보의 서버에서 캐싱한 기사들을 복제하여 각 지역별 분산된 CDN 서버에 저장한다. 여기서는 뉴욕 중앙일보 CDN 서버라고 할 수 있겠다. 이후 이경영씨가 기사를 보겠다고 Request를 보내면 CDN 서버가 곧바로 Response로 기사를 보내주는 것이다. 결국 당연히 물리적인 거리에 대한 이득으로 그만큼 지연시간이 줄어들게 되는것이다.

예시로는 기사를 들었지만 사실 이러한 CDN은 비디오 스트리밍에서 큰 활약을 펼친다. Netflix의 경우 이러한 CDN을 적극 활용하는 대표적인 예시라고 볼 수 있다. 물론 AWS의 인프라를 통해서. 생각해보면 어느 순간부터 모든 동영상을 보는데 버퍼링이라는게 잘 느껴지지 않았다. 컴퓨터 자체의 성능 상승도 있지만 어찌보면 스트리밍이란게 가능해진 것도 CDN 때문 아니겠는가…