[네트워크] CDN (콘텐츠 전송 네트워크)

임승민·2023년 2월 27일
0

네트워크

목록 보기
3/9
post-thumbnail

💡 CDN: Content Delivery Network의 약자로 지리적 제약 없이 콘텐츠를 효율적으로 제공하는 기술이다.

CDN은 세계 각지에 캐시 서버를 두는데 이를 통해 지리적 제약 없이 사용자들에게 빠르게 콘텐츠를 제공할 수 있다.

예를 들어 미국 사용자가 한국에 호스팅 된 사이트에 접속한다면 한국의 서버에 요청을 보내는 것이 아닌 가장 가까운 미국 서버에 요청을 보내 빠르게 콘텐츠를 제공 받을 수 있다.


장점

CDN의 장점은 아래와 같다.

  • 세계 각지에 서버가 있기에 사용자들은 지리적 제약 없이 빠르게 콘텐츠를 제공받는다.
  • 서버가 여러대이기 때문에 많은 사용자들이 한 서버에 몰린다면 다른 서버로 분산시켜 병목현상을 해결할 수 있다.
  • 원본 서버에 요청이 줄어 대역폭 비용과 호스팅 비용 절감이 가능하다.
  • 하나의 서버에 오류가 발생해도 다른 서버가 이를 대체하여 서비스가 중단되지 않아 가용성이 높다.
  • CDN업체에서 디도스 공격에 대한 여러 방안들이 있어 보안이 우수하다.

동작 방식

요청한 콘텐츠는 어떻게 사용자에게 도달할까?

  1. 사용자가 웹사이트의 콘텐츠를 요청한다.
  2. CDN은 이 요청을 받아들이고, 사용자와 가장 가까운 캐시 서버에서 콘텐츠를 찾는다.
  3. 캐시서버에 콘텐츠가 캐시되어 있지 않은 경우, 캐시 서버는 원본 서버에서 콘텐츠를 가져와 캐시한다.
  4. 캐시 서버는 콘텐츠를 사용자에게 전송한다.

정적, 동적 콘텐츠

캐싱 여부에 따라 콘텐츠는 정적, 동적 2가지로 구분될 수 있다.

정적 콘텐츠

누가 언제 요청을 해도 항상 같은 결과값을 응답한다. (js, css, img)

수정, 처리, 생성할 필요가 없어서 CDN에 저장하는 데 이상적이다.

동적 콘텐츠

누가 언제 요청을 하느냐에 따라 다른 결과값을 응답한다. (날씨, 뉴스, 채팅 등)

동적 콘텐츠의 전달 속도를 높히는 방법이 있다.

  • 컨텐츠를 byte단위로 분석해 변경된 부분만 새로 받아온다.
  • 서버에서 사용자까지의 경로를 최적화한다.
  • 데이터를 압축한다.
  • handshake 과정을 간소화한다.

CDN 활용 분야

  • 웹 사이트 및 애플리케이션
  • 비디오 스트리밍
  • 대용량 미디어 파일을 안정적 효율적으로 제공
  • 게임
  • 소셜 미디어
  • 전자 상거래
  • 클라우드 서비스

0개의 댓글