Content Delivery


이미지 출처: https://www.treinaweb.com.br/blog/o-que-e-cdn-content-delivery-network

1. CDN이란 무엇입니까?

줄여서 콘텐츠 전송 네트워크 CDN유투브, 게임, SNS 서비스를 위해 설계된 분산 네트워크 시스템으로 사용자에게 콘텐츠를 효율적으로 전달합니다. 여러 서버 노드를 지리적으로 분산하면 서비스 사용자와 서버 간의 물리적 거리를 줄일 수 있습니다. 이를 통해 서비스 대기 시간이 줄어들어 사용자가 전 세계 어디에서나 빠르고 안정적으로 콘텐츠를 얻을 수 있습니다.


이미지 출처: https://www.ntt.com/en/services/network/cdn.html

2. CDN 활용 사례

서버가 모든 사용자 요청에 응답할 때의 트래픽 양이 예상보다 많습니다. 과도한 트래픽은 서버의 부하를 증가시켜 서비스 중단으로 이어져 일부 사용자가 콘텐츠를 원활하게 감상하기 어려운 경우가 발생합니다. 이러한 콘텐츠 부족은 주로 새로운 온라인 게임이나 스트리밍 스포츠 이벤트의 오픈 베타에서 충분히 예측 가능한 현상이므로 CDN 출시는 거의 필수적이라고 할 수 있습니다.

또한 CDN 기술은 서비스 대상이 국내가 아닌 해외에 있는 경우에도 유용합니다. Netflix 및 YouTube와 같은 회사는 전 세계 고객을 보유하고 있으므로 모두에게 동일한 품질과 속도의 서비스를 제공해야 합니다. 한국에 거주하는 사용자라면 데이터센터가 위치한 미국에 직접 접속할 필요 없이 CDN을 통해 가까운 분산 서버에 직접 접속하여 콘텐츠를 받을 수 있다. 서비스가 특정 국가나 지역에 제한되어 있다면 CDN을 사용할 이유가 없지만 오늘날 주요 웹 서비스는 후술할 CDN의 많은 이점을 고려하여 CDN을 사용합니다.


이미지 출처: https://nexnetsolutions.com/solutions/telecom-service-provider/content-delivery-network-cdn/

3. CDN 작동 방식

  1. 사용자는 로컬 DNS 서버에 연결하기 위해 도메인 주소를 요청합니다.
  2. 로컬 DNS 서버는 CDN DNS 서버에서 해당 에지 서버 주소를 요청합니다. 일반적으로 지리적으로 더 가까운 에지 서버가 사용자에게 연결될 가능성이 더 큽니다.
  3. 해당 에지 서버의 주소가 사용자에게 반환됩니다.
  4. 사용자는 콘텐츠 요청 메시지를 에지 서버로 전달합니다. 연결이 처음 이루어지거나 에지 서버에서 캐싱된 콘텐츠가 실행 중일 때 에지 서버는 원본 서버(콘텐츠 제공자)에게 필요한 콘텐츠를 요청합니다.
  5. 원본 서버는 필요한 콘텐츠를 에지 서버로 전달하고 에지 서버는 콘텐츠를 캐시에 저장합니다. 콘텐츠가 캐시 서버에 저장되는 기간은 HTTP 헤더의 수에 따라 다릅니다. TTL(Time-To-Live)필드에 지정됩니다. 일반적으로 일주일에 해당하는 것으로 알려져 있습니다.
  6. 마지막으로 에지 서버는 캐시된 콘텐츠를 사용자에게 제공합니다. 이때부터 Edge 서버는 원본 서버를 거치지 않고 사용자의 요청에 직접 콘텐츠를 전송합니다.



4. CDN의 장점

콘텐츠 로딩 가속화

사용자와 가까운 서버에서 콘텐츠를 제공하면 콘텐츠 로딩 속도가 전반적으로 빨라집니다. 콘텐츠가 원활한 속도로 제공되지 않으면 사용자가 이탈할 가능성이 높으므로 CDN은 이러한 부작용에 대응할 수 있습니다.

대역폭 비용 절감

호스팅 대역폭 소비는 웹 사이트 운영의 상당 부분을 차지합니다. CDN은 분산 배치 및 캐싱 구조를 기반으로 원본 서버에서 생성되는 트래픽을 줄여 웹 사이트 호스팅 비용을 낮춥니다.

콘텐츠 가용성

위의 콘텐츠 병목 현상으로 인한 서버 부하를 줄임으로써 더 많은 양의 요청을 처리하고 하드웨어 장애를 견딜 수 있습니다.

웹 사이트 보안 향상

여러 노드의 서버를 CDN으로 분할하면 특정 Edge 서버가 DDoS 공격을 받는 경우에도 보다 유연하게 대응할 수 있습니다.