CDN (Content Delivery Network)이란?

CDN이란 Content Delivery Network의 약자로 오리진 서버와 클라이언트의 중간에 CDN 서버를 두어 웹 페이지의 로드 속도를 높이는 전송 기술을 말합니다. 사용자가 웹 사이트에 방문하면 브라우저는 해당 웹 사이트의 서버로 데이터를 요청하게 됩니다. 만약 해당 서버의 위치가 멀리 있거나 트래픽이 증가되면 그만큼 데이터의 응답 속도는 오래 걸리는데요. 이러한 문제를 CDN을 이용하면 해결할 수 있습니다.

https://nextjs.org/learn/foundations/how-nextjs-works/cdns-and-edge
https://nextjs.org/learn/foundations/how-nextjs-works/cdns-and-edge

CDN의 주 목적은 통신 지연을 줄이는 것입니다. 인터넷 특성상 다른 대륙의 서버와 통신을 하게 되는 경우가 생기게 되는데 CDN은 클라이언트와 웹 서버 중간에 서버를 두어 효율성을 높일 수 있습니다. 위 그림과 같이 클라이언트와 가까운 거리에서 데이터를 원활하게 전달받을 수 있습니다. 또한 웹 페이지, 이미지, 비디오 등의 콘텐츠를 사용자와 물리적 위치와 가까운 프록시 서버에 캐싱합니다.

CDN 캐싱 동작 방식

  1. 사용자는 브라우저를 통해 웹 사이트에 접근하여 오리진 서버로 콘텐츠를 요청
  2. 오리진 서버는 응답을 보낸 후 해당 클라이언트와 지리적으로 가까운 CDN 서버에 응답 복사본 전송
  3. CDN 서버는 해당 복사본을 캐싱 된 파일로 저장
  4. 사용자가 재 방문하거나 동일한 위치에 있는 다른 사용자가 서버에 요청 시 오리진 서버가 아닌 CDN 서버에서 캐싱 된 콘텐츠를 응답

CDN의 캐싱을 이용하여 더 빠른 속도로 웹 페이지를 로드할 수 있게 됩니다.

그 밖에도 CDN 서버의 캐싱으로 인해 오리진 서버가 제공해야 하는 데이터의 양이 줄어들어 호스팅 비용을 감소시킬 수 있고, 분산된 서버로 인해 트래픽 부하를 방지할 수 있습니다.

참조