Networking, Security, Protocols

CDN이란?

Somaz 2022. 11. 11. 15:43
728x90
반응형

Overview

오늘은 콘텐츠 전송 네트워크 CDN(Content Delivery Network)에 대해 공부해보려고 한다.


CDN이란?

 

콘텐스 전송 네트워크(CDN)는 지리적으로 분산된 여러 개의 서버이다.

 

웹 콘텐츠를 사용자와 가까운 곳에서 전송함으로써 전송 속도를 높인다.

전 세계 데이터센터는 파일 복사본을 임시로 저장하는 프로세스인 캐싱을 사용한다.

 

따라서 사용자는 가까운 서버를 통해 웹 활성화 디바이스 또는 브라우저에서 인터넷 콘텐츠에 빠르게 접속할 수 있다. CDN은 웹 페이지, 이미지, 비디오 등의 콘텐츠를 사용자의 물리적 위치와 가까운 프록시 서버에 캐싱한다.

CDN을 제공하는 서비스로는 대표적으로 Akamai와 AWS가 제공하는 CloudFront가 있다.


캐싱(caching)이란?

캐싱은 데이터에 대한 향후 요청에 신속하게 액세스할 수 있도록 데이터를 로컬에 저장하는 프로세스이다.

 

가장 일반적인 캐싱 유형인 웹 브라우저 캐싱의 경우 웹 브라우저는 로컬 하드 드라이브에 정적 데이터의 복사본을 로컬로 저장한다. 캐싱을 사용함으로써, 웹 브라우저는 서버에 여러 번 왕복하는 대신 로컬에서 동일한 데이터를 액세스할 수 있기 때문에 시간과 리소스를 절약할 수 있다.

 

캐싱은 정적 이미지, CSS 파일 및 JavaScript 파일과 같은 작고 정적인 데이터를 로컬에서 관리하는 데 적합하다.

 


Dynamic Contents와 Static Contents이란?

  • Static Contents
    • User/Region 등 어떤 기준에 대해 상관없이 같은 데이터, 즉 정적 데이터를 말한다.

 

  • Dynamic Contents
    • User/Region 또는 어떤 기준에 따라 다를 수 있는 동적 데이터를 말한다.

 

너무나도 간단한 개념이지만, 캐싱의 관점에서는 또 다르게 적용될 수 있다.

 


 

CDN 캐싱의 방법

  • Static Caching
    • Origin 서버에 있는 컨텐트를 운영자가 미리 캐시 서버에 복사해두고, 사용자가 요청할 때 무조건 캐시 서버에서 컨텐츠를 제공해 준다.
  • Dynamic Caching
    • Origin 서버에 있는 컨텐츠를 미리 캐시 서버에 복사해두지 않고, 사용자의 요청이 있고 캐시 서버에 해당 컨텐츠가 없는 경우에 Origin 서버에서 받아서 전달해준다. 컨텐츠는 오랜 시간 요청이 없으면 삭제될 수도 있다.

 

CDN 동작원리

참조 : https://www.cloudflare.com/ko-kr/learning/cdn/what-is-a-cdn/

최초로 웹 브라우저에서 URL을 이용하여 웹 사이트에 접속을 시도하게 되면 Origin Server로부터 컨텐츠를 가져와 유저에게 전송하며 동시에 CDN Cache Server에 저장한다.

 

그 이후에 발생하는 요청은 유저와 가장 가까운 위치에 있는 CDN Cache Server로 사용자를 접속시키게 되며 컨텐츠 만료 시점까지 저장된 컨텐츠를 여기서 바로 전달해준다.

 


CDN 아키텍처

참초 : https://www.akamai.com/ko/resources/reference-architecture/content-delivery-reference-architecture

 

CDN(Content Delivery Network) 은 Cache Server(PoP, Point of Presence)에 콘텐츠를 저장하는 방식과 아키텍처에 따라 Push/Pull 방식, 분산형/통합형 아키텍처로 구분된다.

 


PoP(Point of Presence)란?

PoP (Point of Presence)는 둘 이상의 서로 다른 네트워크 또는 통신 장치가 서로 연결되는 지점이다. POP는 주로 다른 장치에 연결하여 인터넷과의 연결을 설정하는 데 도움이되는 액세스 포인트, 위치 또는 시설을 나타난다.

 

그리고 원격 사용자가 인터넷에 연결하기 위해 사용할 수 있는 인프라이다. ISP와 같은 통신 제공 업체는 서로 다른 위치에서 둘 이상의 PoP를 유지 관리 할 수 있고 , 각 PoP는 별도의 사용자 기반을 제공한다. 또한 아날로그를 디지털 데이터로 변환하거나 그 반대로 변환할 수 있다.

 

Push 방식과 Pull 방식

Push 방식은 원본 서버가 새로 업로드된 콘텐츠를 전 세계에 위치한 PoP 서버로 전달하는 방식이다.

 

따라서 웹 사이트 소유자나 개발자가 콘텐츠에 변경사항이 생길때 마다 PoP 서버로 콘텐츠를 Push 해야 하고 지속적으로 유지 보수를 진행해야 한다.

 

따라서 최초 구성에 시간이 걸리지만 , 빠르게 콘텐츠 제공이 가능하고 콘텐츠가 업로드되거나 업데이트되어도 전송 오류가 발생할 확률이 낮다.

 

Pull 방식은 PoP 서버가 원본 서버에서 콘텐츠를 가져오는 방식이다.

 

JavaScripts나 HTML과 같이 사이즈가 비교적 작은 파일에 주로 활용됩니다. 단점은 웹 페이지를 처음 방문하는 경우 PoP 서버가 Origin 서버에서 데이터를 가져오는 과정이 필요해 때때로 응답 속도가 느려질 수 있다.

 

따라서 Pull방식의 경우 Push 방식보다 최초 PoP 서버를 구성하기가 쉽고, 사용자 요청이 있는 경우에만 원본 서버로부터 데이터를 가져오기 때문에 서버 자원을 절약할 수 있다.

 

분산형과 통합형 아키텍처

분산형 아키텍처(Scattered Architecture)의 경우 비교적 사양이 낮은 서버를 구성, 특정 지역에 PoP 여러 개를 밀집해 운영하는 구성 방식이다. 사용자와 서버 간의 물리적인 거리를 최소화했기 때문에 지연 시간을 최소화할 수 있다는 장점이 있다.

 

하지만 PoP가 너무 많아질 경우 이를 유지하는데 많은 비용을 지출해야 하고, 너무 많은 연결 지점으로 인해 특정 사용자에게는 오히려 지연 시간이 더 늘어날 수도 있다.

 

통합형 아키텍처(Consolidated Architecture)는 고용량 서버로 구성된 소수의 PoP를 주요 데이터센터에 배치해 운영하는 구성 방식이다. 운영하는 PoP 수가 분산형보다 적기 때문에 비용을 절감할 수 있고, 보안상 이점도 있다.

 

하지만 고용량 PoP의 경우 분산형보다 복잡성이 높아 콘텐츠를 구성하고 배포하는 데 상대적으로 많은 시간이 걸리고, 그로 인해 네트워크를 신속하게 확장하기도 어렵다는 단점이 있다.

 


 

 

 

Reference

https://www.akamai.com/ko/our-thinking/cdn/what-is-a-cdn

https://library.gabia.com/contents/infrahosting/9051/

https://library.gabia.com/contents/infrahosting/8985/

https://www.cloudflare.com/ko-kr/learning/cdn/what-is-a-cdn/

728x90
반응형

'Networking, Security, Protocols' 카테고리의 다른 글

Curl(Client URL)이란?  (0) 2023.05.26
SSID(Service Set Identifier)란?  (0) 2023.04.05
Vault란?  (0) 2022.10.11
AS, BGP(Border Gateway Protocol)란?  (0) 2022.09.19
Mail Server  (0) 2022.02.17