전보다 더 빠르고 효율적인 콘텐츠 전달을 위한 솔루션, CDN(Content Delivery Network, 콘텐츠 전송 네트워크)

CDN(Content Delivery Network)은 인터넷 환경에서 사용자 디바이스(PC, 모바일 등)에 보다 빠르게 콘텐츠를 전달하기 위한 솔루션입니다. 웹 서비스부터 OTT, 게임 등 다양한 분야에서 사용되고 있으며, 특히 코로나19 상황과 메타버스가 주목받으면서 인터넷 기반의 다양한 서비스에서 사용이 증가하고 있습니다. 더 빠르고 안정적인 서비스 제공을 위해 그 중요성이 더욱 커지고 있는 CDN에 대해 살펴보겠습니다.

클라우드 기술 백서 관련하여 궁금하신 사항은 이곳으로 문의주세요.

CDN(Content Delivery Network, 콘텐츠 전송 네트워크)란?

CDN(Content Delivery Network)은 인터넷 환경에서 사용자 디바이스(PC, 모바일 등)에 보다 빠르게 콘텐츠를 전달하기 위한 솔루션입니다. 웹 서비스부터 OTT, 게임 등 다양한 분야에서 사용되고 있으며, 특히 코로나19 상황과 메타버스가 주목받으면서 인터넷 기반의 다양한 서비스 사용률이 증가함에 따라 더 빠르고 안정적인 서비스 제공을 위해 그 중요성이 커지고 있습니다.

지속적으로 성장중인 CDN 시장에 진출을 시작한 퍼블릭 클라우드 기업들

CDN 시장은 매년 15% 이상 성장하고 있으며, 그 중심에는 Akamai, Limelight와 국내 기업인 CDNetworks를 인수한 차이나넷센터와 같은 전통 CDN 기업들이 있습니다. 거기에 최근 Amazon, MS, Alibaba와 같은 퍼블릭 클라우드(Public Cloud) 기업들도 자사의 인프라를 활용하여 CDN 서비스를 제공하며 기존 CDN 기업들의 강력한 경쟁상대로 떠오르고 있습니다.

이 차트는 2017년부터 2024년 동안 CDN 시장 규모 (단위: 10억 달러)를 보여주고 있습니다.
CDN 시장 규모를 2019년에는 124억 달러로 전망하였고 2020년에는 139억 달러, 2021년에는 12% 성장할 것으로 예상됩니다.
또한 2024년의 CDN 시장 규모는 221억 달러로 전망하고 있습니다.

아시아 지역은 인터넷과 스마트폰의 폭발적인 보급으로 빠른 성장률을 보여주고 있습니다.

(자료 : CDN 시장 성장 그래프 https://www.t4.ai/industry/cdn-market-share)

CDN의 이해

CDN은 글로벌하게 분포된 CDN 엣지 서버들에 콘텐츠를 캐시함으로써, 콘텐츠를 전달받을 수 있습니다. 이는 많은 사용자들이 서비스를 사용하더라도 엣지 서버에서 캐시 된 콘텐츠를 제공하기 때문에 오리진 서버의 처리량이 줄어 오리진 리소스에도 긍정적인 영향을 줍니다. 이로 인해 콘텐츠 제공자는 서버 투자 및 운영비, 회선비 등의 비용을 절감할 수 있습니다. 즉, CDN은 사용자와 오리진 서버의 거리가 멀수록, 사용자가 많을수록 효과적이라고 볼 수 있습니다.

[여기서 잠깐!] 엣지(Edge)란?

CDN에서는 캐시 서버가 존재하는 데이터 센터를 리전이라고 하지 않고 엣지(Edge), 혹은 엣지 로케이션(Edge Location)이라고 부릅니다. 전세계 각지에 수많은 엣지가 분포되어 있는데 요청이 들어온 곳에서 가장 가까운 엣지로 라우팅하도록 만들어 HTTP응답 속도를 향상시키고 있습니다.

[여기서 잠깐!] 오리진(Origin)이란?

CDN은 네트워크 망에 불과하기 때문에, 실제로는 콘텐츠를 보관할 서버가 필요하고 이것을 오리진(Origin)이라고 합니다.

콘텐츠를 보관하는 오리진(Origin) 서버보다 콘텐츠 전송 네트워크(CDN)가 더 가깝게 위치하고 있기 때문에 사용자는 요청과 응답시간이 짧아 불필요한 연결 시간을 줄일 수 있는 장점이 있습니다.

동적 콘텐츠의 속도 향상

일반적으로 엣지 서버에 캐시 되는 콘텐츠는 이미지, 동영상, 폰트와 같은 정적 콘텐츠입니다. 동적 콘텐츠의 경우, 캐시가 되지 않아 여전히 오리진 서버까지 통신이 필요하여 오리진과 많은 트랜젝션이 필요한 서비스라면 오리진까지의 통신 구간 속도 향상에 대한 고민이 필요합니다. CDN사에서는 기존 CDN 서비스에서 가속 기능을 추가한 모델의 서비스를 제공하고 있습니다. 이는 사용자 위치에 근접한 엣지 서버부터 오리진 서버에 근접한 엣지 서버까지의 미들 마일(Middle mile) 구간에서 계산하여, 불안정한 네트워크 환경을 우회하고, 로우 레이턴시(Low latency)로 오리진 서버와 통신을 할 수 있고, 각 CDN사의 최적화된 전송 기술을 적용하여 동적 콘텐츠 전송에도 속도를 향상시킵니다.

CDN의 주요 기능 및 활용

CDN은 도메인 단위로 적용 가능하며, 패스(Path) 단위로는 적용이 불가합니다. 다만, 국내에 오리진 서버가 위치하여 거리가 먼 해외 사용자에게만 CDN을 적용하는 케이스와 같은 국가별 CDN 적용의 경우에는 CDN DNS를 통해 국가별 GEO IP에 따라 유연하게 적용할 수 있습니다. 기본적으로 서비스 운영자는 캐시 대상이 되는 정적 콘텐츠에 대한 기준을 잘 세우고, 동적 콘텐츠를 구분하여 파일을 잘 관리하는 것으로 Offload(캐시율)를 높일 수 있지만, 캐시의 특성을 이해한다면 더 효율적으로 CDN을 사용할 수 있습니다.

DNS와 같은 네트워크 환경을 파악하라.

사용자의 요청에 근접한 엣지가 할당되는 방식은 DNS 쿼리 시에 적용됩니다. 사용자가 CDN을 사용하는 도메인 주소를 DNS에 질의하면 최종적으로 CDN DNS에서 사용자의 DNS IP주소를 보고 사용자 위치를 판단, 그 위치에 근접한 엣지 IP를 사용자에게 접속하도록 응답하는 방식으로 실제 사용자의 위치보다 사용자의 DNS 위치가 영향을 미치게 됩니다. 글로벌 기업에서 사내 네트워크망을 구축하여 1~2개의 사내 DNS만을 사용하는 경우, CDN을 적용하더라도 각 지법인의 사내 망 사용자들에게는 근접한 엣지 서버를 할당하는데 어려움이 있을 수 있기 때문에 CDN 적용 시 실제 서비스 사용자들의 DNS와 같은 네트워크 환경을 파악할 필요가 있습니다.

효율적인 캐시(Cache) 관리를 고려하라.

캐시 콘텐츠는 URL 기준으로 엣지 서버에 구분되어 저장되며, 지정된 TTL이 만료되면 오리진 서버에 IMS(If Modified Since) 요청을 보내 캐시 된 콘텐츠와 오리진 서버의 콘텐츠를 비교하여 그 변경 여부를 확인합니다. 이때, 동일한 URL의 콘텐츠의 Last-modified 헤더 값이 오리진 서버가 더 최신인 경우, 캐시 콘텐츠가 갱신되고, 과거이거나 동일한 경우, 캐시 된 데이터를 갱신하지 않고 재사용하기 때문에 캐시 기능을 효율적으로 사용하기 위해서는 오리진 서버에 Lastmodified 헤더 설정을 하는 것이 좋습니다. 기존 CDN을 사용하지 않는 경우에는 오리진 서버의 Cache-Control 헤더를 통해 프록시 서버나 사용자 브라우저에 대한 캐시 컨트롤을 하기도 합니다. 그러나 CDN을 사용한다면 CDN 운영자와 협의하여 캐시에 대한 컨트롤은 CDN 설정을 통해서만 사용하여 의도치 않은 캐시 동작으로 인한 사고를 예방하고, 효율적인 캐시 설정 관리를 하는 것을 권고하고 있습니다.

캐시 관련 HTTP 헤더 (응답헤더, 응답헤더 상세항목, 기능설명)
응답헤더 응답헤더 상세항목 기능설명
Cache-Control no-store 캐시파일 생성이 불가 / 일부 콘텐츠에 대해서 캐시 제외 시 사용
no-cache 캐시파일 생성이 가능하나 원본에 매번 유효성 검사 요청 필요
no-cache 캐시파일 생성이 가능하나 원본에 매번 유효성 검사 요청 필요
max-age Edge 서버 내 콘텐츠의 최대 캐싱 기간
public / private Cache Control과 설정과 별개의 콘텐츠 만료시간으로 Cache Control의 max-age 설정 시 무시됨
must-revalidate 만료된 콘텐츠만 오리진에 재확인하는 설정
Expires Public : 캐시 서버에 저장 / Private : 브라우저에 저장
Last-Modified 콘텐츠의 마지막 수정시간으로 CDN 캐시 서버의 IMS(if-modified-since) 요청 시 유효성 검사 수단으로 사용
Etag 콘텐츠 생성 시 부여된 고유키

(캐시 관련 HTTP 헤더)

캐시키(Cache-key)를 생성하는 기준을 고민하라.

Cache-key는 사용자 요청에 오리진 서버로부터 받아온 콘텐츠를 엣지 서버에 캐시하고, 구분하는 기준이 되며 보통 도메인, Path QueryString Parameter(이하 QS)로 정해집니다. 일반적으로는 QS를 포함하여 Cache-key를 생성하기에 사용자가 동일한 Path를 요청하더라도 QS에 따라 다른 요청으로 판단하여 캐시를 하게 되며, 이는 Offload를 감소시킴에 따라 오리진 리소스에 영향을 미치기도 합니다. 이에, 콘텐츠 관리자는 QS에 따른 콘텐츠의 변경 유/무를 파악하고, QS가 콘텐츠에 영향을 미치지 않는 URL들을 구분하여 Cache-key를 생성하는 기준에서 QS를 제외한다면 Offload를 향상시킬 수 있습니다.

Cache-key에 QS(QueryString) 포함 여부에 따라 캐시 동작이 달라집니다. QS를 인식해 동일하다면 같은 객체로 인식하고 다르면 다른 객체로 인식합니다. 이것의 장점은 오리진(Origin) 서버의 과부하를 줄일 수 있고 사용자는 요청과 응답시간이 짧아 불필요한 연결 시간을 줄일 수 있습니다.

(Cache-key에 QS 포함 여부에 따른 캐시 동작)

퍼지(Purge)기능의 특성을 고려하라.

퍼지는 엣지 서버에 캐시 된 콘텐츠를 삭제하는 기능입니다. 오리진 서버의 콘텐츠가 갱신되는 경우, 엣지 서버의 캐시가 만료되기 전까지는 오리진의 갱신된 콘텐츠를 다시 가져오지 않습니다. 때문에 사용자에게 갱신된 콘텐츠를 즉각적으로 제공하고자 할 경우, 퍼지 기능을 이용하여 기존 캐시 콘텐츠를 제거하고 사용자의 요청 발생 시, 오리진에서 갱신된 콘텐츠를 가져옴과 동시에 엣지 서버에 캐시 하도록 합니다. 그러나 브라우저에 콘텐츠가 캐시 되는 경우, CDN의 퍼지로는 브라우저 캐시를 제거할 수 없으므로 브라우저 캐시를 사용자가 직접(Cache-key에 QS 포함 여부에 따른 캐시 동작) 제거하거나 파일명을 변경하여 사용자가 콘텐츠를 다시 받을 수 있도록 하는 조치가 필요합니다. 이러한 CDN 캐시의 기본적인 특성을 고려하여 사용하면, 속도 향상뿐만 아니라 오리진 서버 장애 시, 사용자에게 캐시 콘텐츠를 지속 제공함으로써 서비스 연속성에 긍정적인 효과를 줄 수 있으며 DDoS 공격에도 엣지 서버에서 요청을 처리하여 오리진 서버를 보호할 수 있습니다.

CDN의 추가 기능들

HTTP 기반의 CDN 서비스는 기본적인 캐시 기능 외에도 사용자의 HTTP Request Header 정보를 바탕으로 엣지 서버단에서 다양한 기능을 제공하고 있습니다. 기본적으로 CDN 설정을 통해 공격성 트래픽에 대한 공격자 IP를 차단하거나, 일부 콘텐츠에 대해서는 특정 사용자들만 접근할 수 있도록 하는 접근 제어 기능으로 활용하기도 하며 글로벌 서비스의 경우, 사용자 IP로 접속 국가를 판단하여 해당 국가에 적합한 페이지로 리다이렉션을 시키거나 사용자의 국가명을 쿠키로 생성하여 오리진 서버로 전달함으로써 국가 특성에 따른 여러 기능 구현에도 활용되고 있습니다.

보안 솔루션

인터넷이 발달하면서 인터넷을 통해 많은 사용자들이 정보를 주고받을 수 있게 되었고, 동시에 보안을 위협하는 공격 방법도 진화하고 있습니다. 이에 주요 CDN사의 경우, CDN 서비스에 보안 기능을 적용할 수 있도록 솔루션을 제공함으로써 엣지 서버단에서 DDoS, Bot 그리고 다양한 애플리케이션 공격성 트래픽으로부터 오리진 서버 및 데이터를 보호하고, 오리진 서버에서 감당해야 하는 보안 및 네트워크 부담을 줄일 수 있도록 하고 있습니다. 특히 Akamai의 보안 솔루션의 경우, 2021년까지 가트너 매직 쿼드런트 WAAP(Web Application and API Protection) 보고서에서 4회 연속 리더로 선정되었을 정도로 보안 측면에서도 강력한 경쟁력을 인정받았습니다. 거기에 WAF/ DDos /Bot Manager/API Protector 등 상품을 세분화하여 고객 환경에 맞게 선택적인 솔루션을 적용할 수 있도록 함으로써 삼성을 비롯한 수많은 고객사 서비스에서 이를 통한 보안을 강화하고 있습니다.

각 항목별 우수실적 순위
CHALLENGERS
  • Cloud flare (ability to execute, completeness of vision)
  • FS (ability to execute, completeness of vision)
  • Fastly (completeness of vision)
  • Amazon Web Services (completeness of vision)
  • Barracuda (completeness of vision)
LEADERS
  • Akamai (ability to execute, completeness of vision)
  • Imperva (completeness of vision)
NICHE PLAYERS
  • Fortinet (ability to execute, completeness of vision)
  • Microsoft (ability to execute)
VISIONARIES
  • Radware (ability to execute, completeness of vision)
  • ThreatX (ability to execute)

(가트너 'WWAP' 분야 매직쿼드런트 2021)

이미지 솔루션

최근 웹 서비스에서는 사용자에게 보다 직관적이고, 풍성한 서비스를 제공하기 위해 많은 이미지 및 동영상들이 사용되고 있습니다. CDN 이미지 솔루션에서는 하나의 원본 이미지를 사용자의 네트워크 속도나 디바이스 환경에 맞게 재생성하여 사용자에게 전달함으로써 사용자는 최적화된 이미지 파일을 빠르게 전달받을 수 있으며, 콘텐츠 관리자는 사용자 환경에 따른 여러 품질 및 크기의 이미지 파일들을 생성 및 관리할 필요가 없어지게 되어 성능 및 관리면에 많은 도움을 주고 있습니다. 그 밖에도 동영상 스트리밍, 멀티 오리진 분기, Token Auth 등 다양한 부가 상품들을 제공함으로써 단순히 과거 CDN의 캐시 서비스에 머무르지 않고, 엣지 컴퓨팅의 모습에 가까워지며 경쟁력을 더 강화하고 있습니다.

CDN Image 솔루션은 하나의 원본 이미지를 사용자의 디바이스 환경에 맞게 사용자에게 전달하는 기술입니다.

[여기서 잠깐!] 엣지(Edge) 컴퓨팅이란?

엣지 컴퓨팅은 서버를 클라우드 데이터센터 측에 배치하는 대신, 서버를 PC, 스마트폰 등의 말단 디바이스 자체, 혹은 그에 가까운 영역에 분산 배치하고, 분산 배치된 그 서버에서 말단 디바이스가 보낸 데이터를 처리하는 모델을 의미합니다. 다시말해, 클라우드 컴퓨팅은 클라우드 서버에서 집중 처리되는 반면, 엣지 컴퓨팅은 말단 디바이스와 가까운 곳에 위치한 서버에서 분산처리 한다는 차이점이 있습니다.

클라우드 컴퓨팅과 엣지 컴퓨팅은 둘 다 컴퓨터 리소스와 서비스를 사용자에게 제공하는 기술이지만, 그 구조와 목적이 서로 다릅니다.

클라우드 컴퓨팅은 대규모 데이터 센터에 컴퓨터 리소스를 집중하여 사용자에게 제공하는 기술입니다. 클라우드 컴퓨팅의 장점으로는 대규모 사용자에게 빠르고 안정적인 서비스 제공하고, 서비스의 유연성과 확장성이 높다는 점에 있습니다.

반면, 엣지 컴퓨팅은 클라우드 컴퓨팅과 달리 로컬 기기에서 데이터 처리 및 서비스 제공을 수행하는 기술입니다. 엣지 컴퓨팅은 로컬 기기에서 데이터를 처리하여 지연 시간을 최소화하고 대역폭을 줄이는 등의 이점을 제공합니다.

두 기술은 서로 보완적인 역할을 하며, 비즈니스 요구에 따라 적절한 기술을 선택하여 활용해야 합니다.

우성실 프로 / 삼성SDS
삼성전자를 비롯하여 삼성 관계사의 CDN 서비스 및 CDN사에서 제공하는 다양한 솔루션 운영 및 구축을 담당하고 있습니다.
클라우드 기술 백서 관련하여 궁금하신 사항은 이곳으로 문의주세요.

좋아요
공유하기