하나씩 알아가기

CDN(Contents Delivery Network)에 대해 알아보자 본문

CDN(Contents Delivery Network)에 대해 알아보자

clearwater 2021. 2. 5. 16:39
728x90
반응형

CDN : 데이터를 분산된 서버에서 받아오는 것

CDN을 가장 처음 접한 것은 jQuery를 사용할 때였던것 같습니다(부트스트랩이었던가..). <script> 태그만 추가해 주면 jQuery를 내 컴퓨터에 직접 설치하지 않아도 사용할 수 있었는데 어떻게 이것이 가능하였는 지 개념부터 장단점까지 알아보겠습니다.

 

CDN은 컨텐츠를 전달하는 네트워크를 구성하는 것을 말합니다. 보통 웹사이트를 로딩할 때는 웹 서버에 HTTP 요청을 하여 리소스를 가져오지만 웹 서버가 아니라 현재 사용자가 접속한 위치에서 가장 가까운 서버에 리소스를 캐싱해놓고 보다 빠르게 가져오는 기법을 말합니다. 즉, CDN의 목적은 웹페이지에 대한 요청이 이동해야 하는 물리적 거리를 줄여 요청 제출 시간과 장치에 완전히 로딩되는 웹페이지 간의 지연 시간을 줄이는 것에 있습니다. CDN 네트워크를 구축하기 위해선 해당 지역의 ISP(인터넷 제공 업체, Internet Service Provider), 네트워크 사업자, 이동통신 사업자에게 서버의 호스팅 비용을 지불해야 합니다. 이렇게 네트워크를 구축하게 되면 정적 리소스를 더욱 빠른 속도로 서비스 할수 있게 됩니다.

 

예시) 미국에 있는 방문자 한국 기반의 서버에서 생성된 콘텐츠를 보려는 경우, 이 요청이 태평양을 가로질러 이동한다면 로딩 시간이 길어질 수 있습니다. 이를 방지하기 위해 CDN은 전 세계의 여러 지역에 캐시된 버전(PoP, Points of Presence)의 웹 사이트 콘텐츠를 저장하고 사용자 위치(한국)에서 해당 콘텐츠를 제공합니다.

 

장점

  • 리소스를 캐싱해놓기 때문에 로딩속도가 빨라진다
  • 1개의 웹서버에서만 리소스를 가져오지 않기 때문에 서버의 부하가 줄어든다
  • 보통 한 개의 도메인이 10개의 병렬연결을 허용하는데 CDN을 사용하면 병렬연결이 늘어난다

단점

  • 서버를 구축하는 비용 때문에 돈이 더 많이 든다
  • 사용자가 해당되는 CDN을 막아놓으면 리소스 로딩이 막힌다
  • 배포과정이 다소 복잡해질 수 있다
  • 보통 CDN 서비스 회사는 각 나라마다 서버들을 구축해 놓지만, 자신의 나라에 없어서 해외 CDN을 사용하는 경우 더 느려질 수 있다

참고 및 출처github.com/baeharam/Must-Know-About-Frontend/blob/master/Notes/network/cdn.md

 

baeharam/Must-Know-About-Frontend

:mortar_board: 취준생이라면 반드시 알아야 하는 프론트엔드 관련 지식들. Contribute to baeharam/Must-Know-About-Frontend development by creating an account on GitHub.

github.com

www.akamai.com/kr/ko/cdn/what-is-a-cdn.jsp

https://en.wikipedia.org/wiki/Content_delivery_network#/media/File:NCDN_-_CDN.png

 

Content delivery network - Wikipedia

(Left) Single server distribution (Right) CDN scheme of distribution A content delivery network, or content distribution network (CDN), is a geographically distributed network of proxy servers and their data centers. The goal is to provide high availabilit

en.wikipedia.org

 

728x90
반응형