CDN

CDN이란

  • Content Delivery Network
  • 전 세계에 분산된 서버 네트워크
  • 사용자에게 빠르고 효율적으로 콘텐츠를 전달하기 위해 만들어짐
  • 웹 페이지나, 이미지, 동영상 등의 정적 컨텐츠를 더 가까운 위치에서 빠르게 제공함

지리적인 제약 없이 전 세계 사용자에게 빠르고 안전하게 컨텐츠를 제공할 수 있는 기술이다.


CDN을 사용하는 이유

  1. 물리적 거리
    전세계 사람들이 서버에 접속하는 경우, 물리적 거리가 멀기 때문에 접속 속도가 느려진다.
    CDN은 전 세계에 서버를 분산시켜두고 사용자에게 가장 가까운 위치에 있는 서버로 매핑시켜준다.

  2. 수많은 요청 분산
    수많은 요청이 하나의 서버로 들어오면 서버가 과부하로 인한 오류가 발생될 수 있다.
    CDN은 서버를 분산시켜두기 때문에 요청을 분산시킬 수 있다.

CDN의 작동 원리

CDN은 여러 위치에 서버를 분산시켜 두는데 이 장소들을 PoP(Point of Presence)라고 부르고, 
PoP에 존재하는 서버들을 엣지(edge) 서버라고 부른다.

 

  1. 사용자가 URL을 입력하면 브라우저는 DNS로부터 웹 사이트의 IP 주소를 조회한다.
  2. DNS 서버는 CDN 서비스 제공자의 도메인명을 반환한다.
  3. 브라우저는 CDN 서비스 제공자의 DNS 서버에 해당 도메인 명에 대한 IP를 다시 요청하고,
    CDN 업체의 DNS 서버는 사용자와 가장 가까운 위치에 존재하는 엣지 서버의 IP를 최종적으로 반환한다.
  4. 브라우저는 엣지 서버로 컨텐츠를 요청하고, 엣지 서버는 캐싱을 통해 응답해준다.

엣지 서버가 어떻게 캐싱하는지에 대해서는 아래에서 알아보자.


 

CDN 캐싱 방법

 

- 정적 캐싱

origin 서버에 있는 컨텐츠를 운영자가 미리 각 엣지에 보낸다.
미리 보내놓기 때문에 사용자가 컨텐츠 요청 시 무조건 엣지 서버에 존재한다.

국내 CDN은 대부분 이 방식을 사용한다.

 

- 동적 캐싱

사용자가 요청을 보낼때마다 컨텐츠가 엣지에 있는지 확인한다.
이때 엣지에 존재한다면 cache hit. 사용자에게 바로 컨텐츠를 전송한다.

존재하지 않는다면 cache miss. 이때 서버에게 요청해서 컨텐츠를 받아와 사용자에게 전송한다.

 

정적 컨텐츠, 동적 컨텐츠와는 다른 개념이다.

정적 컨텐츠 - html, css, js 파일, 이미지 등 내용이 고정된 것.
동적 컨텐츠 - 게시판의 최신글 불러오기 같은 api 요청처럼 때에 따라 내용이 변할 수 있는 것.

CDN의 장점

- 안정성

CDN 엣지 서버 중 하나에 이상이 생겨도 다른 엣지 서버로 연결되기 때문에 안정적인 서비스를 사용자에게 제공한다.

 

- 가용성

origin 서버가 받는 부담이 줄어들고 과부하로 인한 오류의 위험성도 줄어든다.

 

- 보안

DDos 공격으로부터 서버를 보호하기 위한 다양한 방법을 제공한다.

정상적인 요청과 공격 요청을 구분하고, 특정 시점의 요청 수를 제한하고, 집중된 요청들을 엣지로 분산시킨다.

또한 컨텐츠의 암호화도 CDN을 통해 향상시킬 수 있다.

서버에서 구현한 인증서의 보안 등급이 낮더라도 사용자들은 CDN에서 제공하는 강력한 보안을 누릴 수 있다.

 

- 비용절감

CDN 업체에 지불하는 비용도 있지만, origin 서버를 돌리는 비용은 줄어든다.

서버로 직접 요청이 들어오지 않기 때문에 대역폭 비용이 크게 절감하고 서버 호스팅 비용이 절감된다.


 

'WEB' 카테고리의 다른 글

HTTP/1.0, HTTP/1.1, HTTP/2, QUIC(HTTP/3)  (0) 2024.06.27
HTTP vs TCP  (0) 2024.06.24
DNS  (0) 2024.06.16
HTTP/HTTPS  (0) 2024.06.10
JWT Token(+로그인)  (5) 2024.05.07