CDN(Content Delivery Network)이란 무엇일까? [CDN과 캐시]

·

pipedollar

워드프레스 CDN 뜻

최근 워드프레스로 제작한 웹사이트 성능을 높이기 위해 WP Rocket이라는 유료 플러그인을 설치하였다. WP Rocket의 경우는 워드프레스로 만든 웹사이트 성능 향상을 위해 전 세계적으로 가장 많이 사용되는 캐싱 플러그인 중 하나이다.

그런데 이러한 캐싱 플러그인을 다루다보면 CDN이라는 용어를 자주 접하게 되는데, 플러그인 회사에서는 CDN을 사용하면 웹사이트 성능을 향상시키는데 도움이 된다고 말한다. (물론 추가 결제를 해야 됨 ^^)

그래서 이번 기회에 CDN이라는 것은 도대체 무엇이고, 이것을 사용하면 무엇이 좋으며, 어떤 사람들에게 필요한 것인지에 대해서 자세히 정리해두려 한다.

CDN(Content Delivery Network)

CDNContent Delivery Network
출처 : Cloudflare

CDN은 ‘Content Delivery Network’의 약자이다. 여기서 Delivery라는 단어는 말 그대로 ‘배달’이라는 의미를 지니고 있는데, 쉽게 말해서 컨텐츠를 배달해주는 분산 네트워크라고 생각하면 된다.

CDN에 대한 예시로 나의 웹사이트 호스팅이 맥도날드와 같은 프렌차이즈 본사라고 가정해보자. 여기서 CDN은 전 세계에 똑같은 메뉴와 레시피가 분산되어 있는 프렌차이즈 지점에 해당한다.

일반적으로 다른 누군가가 나의 웹사이트에 방문을 하게 되는 경우, 방문자로부터 요청받은 데이터는 나의 웹사이트 서버가 위치한 곳으로부터 직접 전송된다.

만약 나의 웹사이트 호스팅 서버가 미국에 위치하고 있다고 가정해 본다면, 한국 방문자들에게 전송되는 데이터는 미국에서부터 출발하는 것이다. 그리고 당연히 물리적인 거리만큼 데이터 전송 속도도 떨어질 수 밖에 없다.

하지만 CDN을 사용하면 원본 서버에서 직접 데이터를 전송하는 것이 아니라, 데이터 카피본을 저장하고 있는 가까운 CDN 서버에서 방문자에게 대신해서 데이터를 전송한다.

즉, 원본 서버와 따로 연결될 필요가 없이 CDN에서 직접 데이터를 전송하는 것이라고 보면 된다.

CDN과 캐시

CDN 캐시

CDN이라는 것은 ‘콘텐츠 전송 네트워크’라는 의미를 지니고 있다. 그리고 이것은 쉽게 말해 전 세계적으로 분산되어 있는 ‘캐시 서버’를 뜻하기도 한다. 그러므로 CDN에 대해서 정확히 이해하려면 캐시(Cache)에 대한 배경지식이 선행되어야 한다.

여기서 캐시(Cache)는 자주 사용하는 데이터 값을 미리 복사해 놓는 임시 장소를 의미한다. 이는 데이터 카피본을 미리 저장(캐싱)해두었다가 방문자들에게 우선적으로 보여주는 방식으로 페이지 로딩 속도를 높이는 역할을 하는 것이라고 보면 된다.

캐시에 대한 예시를 하나 들자면, 워드프레스에서 WP Rocket, Autoptimize 등의 캐싱 플러그인을 사용하는 사람들이라면 아래와 같은 현상을 반드시 한 번 쯤은 경험하게 된다. (아니 수십, 수 백번도 더 겪을수도…^^)

그것은 바로 열심히 시간과 노력을 들여 웹사이트 디자인과 구조를 변경한 뒤에, 구글 시크릿 모드로 들어가보았더니 레이아웃과 디자인이 와장창 깨져있거나 변경한 내용이 전혀 적용되어 있지 않은 경우이다.

이 또한 캐싱 플러그인이 나의 웹사이트의 일부 정보를 미리 캐싱해 두었다가, 사람들이 방문하면 저장된 정보를 먼저 띄우기 때문에 발생하는 현상이다. 그래서 이 문제를 해결하려면 플러그인 설정창에서 캐시를 깔끔하게 제거해주면 된다.

CDN 작동 방식
기존 방식
서버 데이터 전송 방식
CDN 방식

다시 본론으로 돌아와서 CDN이라는 것은 곧 나의 웹사이트 정보를 전 세계에 분산된 서버 그룹에 미리 캐싱해두는 캐시 서버이자, 데이터 센터를 말하는 것이다.

따라서 CDN을 활용하면 나의 웹사이트에 방문한 사람들이 HTML 페이지, JavaScript, 파일, CSS, 이미지, 비디오 등의 콘텐츠를 로드하는 시간을 더욱 빠르게 단축시킬 수 있다.

참고로 CDN 서비스는 비단 웹사이트에 한정되는 것이 아니며, 전 세계의 인터넷 사용자들의 쾌적한 환경을 위해서 아주 광범위하게 사용이 되고 있다.

대표적으로 넷플릭스, 페이스북, 아마존과 같은 초대형 사이트들의 경우, 전 세계에서 유입되는 엄청난 트래픽을 감당하기 위해서 대부분 CDN을 통해서 제공되고 있는 중이다.

CDN과 호스팅 업체

웹호스팅

그렇다면 CDN이랑 서버를 대여해주는 호스팅 업체와 동일한 것이 아닌가?라는 생각이 들 수도 있다.

하지만 결론적으로 CDN은 콘텐츠를 직접적으로 호스팅하지 않으며, 웹호스팅을 대체할 수는 없다. 그저 콘텐츠들을 캐싱하는 것에만 도움을 주어서 웹사이트 성능을 향상시키는 용도이다.

실제로 CDN을 사용하는 이유도 기존 호스팅 업체의 성능이 만족스럽지 않거나, 트래픽 과부하로 인한 오류를 방지하거나, 추가적으로 성능을 더 높이거나 보안을 강화하고자 하는 경우이다.

여기서 ‘성능’을 높인다는 말은, 방문자들에게 쾌적한 환경을 제공할 수 있도록 웹사이트 로딩 속도를 더욱 더 빠르게 하고, 서버가 다운되는 일이 없도록 안정적으로 유지한다는 것을 의미한다.

CDN 작동 원리

CDN 작동 원리

CDN은 전 세계적으로 전략적인 위치에 ‘데이터 센터’를 배치하고 보안을 강화하여, 다양한 유형의 문제들과 인터넷 정체를 극복하기 위해서 만들어졌다.

따라서 CDN을 사용하면 방문자들이 원본 서버에 연결될 필요없이 지리적으로 더 가까운 데이터 센터에 연결되며, 만일 CDN 서버가 데이터를 찾는데 실패하는 경우 연결되어 있는 다른 CDN와 매핑시켜서 데이터를 대신 전송한다.

CDN 작동 순서

  1. 최초의 요청은 서버로부터 직접 컨텐츠를 가져와서 고객에게 전송하며, 동시에 저장한다.
  2. 이후로는 CDN에서 지정된 만료 시점까지 캐싱된 콘텐츠를 전송한다.
  3. 자주 사용하는 페이지에 한해서 캐싱되며, 호출이 없는 경우 주기적으로 삭제한다.
  4. 특정 CDN 서버에 파일이 없는 경우, 다른 CDN 서버에서 컨텐츠를 찾은 다음에 전송한다.
  5. 컨텐츠를 사용할 수 없거나 오래된 경우, 새로운 콘텐츠를 저장한다.

CDN을 사용하면 좋은 점

웹사이트 로딩 속도 개선

CDN은 방문자와 지리적으로 가까운 위치의 CDN 서버를 이용하여, 방문자들의 위치와 더 가까운 곳에서 콘텐츠를 배포한다. 이를 통해 방문자들은 더 빠른 로딩 속도를 경험할 수 있다.

추가적으로 이는 방문자들의 이탈율을 줄이는 결과를 나타나며, 이는 곧 방문자 체류시간과 만족감을 상승시키는 결과를 가져다준다.

대역폭 비용 절감

웹사이트 호스팅을 위한 대역폭 소비 비용은 웹사이트의 주요 비용 중 하나이다. CDN은 캐싱 및 기타 최적화를 통해서 원본 서버가 제공해야 할 데이터의 양을 줄여주며, 이것은 호스팅 비용의 절감으로 이어진다.

콘텐츠 가용성 및 중복성 증가

트래픽이 많거나 하드웨어 상의 문제가 발생하면 웹사이트가 정상적으로 작동하지 못하는 상황이 생기곤 한다. 하지만 CDN은 분산적인 특성을 가지고 있어서 원본 서버보다 더 많은 트래픽을 처리하고 하드웨어 오류를 더 잘 견딘다.

웹사이트 보안성 개선

CDN은 ‘디도스(DDOS)’를 완화하고, 보안 인증서 개선 및 기타 최적화를 제공해서 보안성을 향상시킨다.

관련 글 : 서버(Sever)란 무엇일까?, 서버와 클라이언트

해당 블로그는 파트너스 활동을 통해 플랫폼으로부터 일정액의 수수료를 제공받을 수 있음.

Leave a Comment