본문 바로가기

개발관련

CDN(Content Delivery Network) 이란?

반응형

출처 : Link
출처 : Link

결론 : 언젠가 오리진 서버가 터질정도로 트래픽이 발생하게된다면... CDN을 써보자

 

내가 정리해본 CDN

CDN이란 Contents Delivery Network의 줄임말로서, 

정적인 컨텐츠를 전세계적으로 분산된 서버에 저장해

클라이언트가 서버에 요청할 시 서버에서 직접 컨텐츠를 전달하는것이 아니라

접속자에게 가장 가까운 CDN서버에서 클라이언트에게 컨텐츠를 직접 전달할 수 있도록 된 플랫폼이다.

AWS에서는 CloudFront라는 명칭으로 CDN서비스를 제공한다.

S3는 AWS에서 제공하는 Storage 플랫폼인데,

이 S3와 CloudFront를 조합하여 CDN서버를 구성한다.

CloudFront와 S3을 조합하여 CDN서버를 만들면

CloudFront는 CDN서버의 역할을 하고

S3는 정적인 컨텐츠(html, js, css, image, video 등등)를 저장하는 역할을 한다.

그럼 클라이언트가 EC2같은 서버에게 정적인컨텐츠를 요청할 시에 

EC2대신 클라이언트와 가장 가까운 CloudFront가 S3에서 해당 정적인 컨텐츠를 찾아서 클라이언트에게 전달한다.

 

CDN 서버를 사용함으로써 Origin Server로부터 먼 거리에서 데이터를 요청하는 클라이언트들에게

직접 Origin Server를 통해 응답을 받는 것 보다 훨씬 빠른 속도로 응답을 받도록 할 수 있다.

이미지나 동영상이 많은 사이트의 경우 먼 거리의 클라이언트단에서 이미지나 동영상을 불러오는 속도가 느릴 경우 CDN서버를 사용하면 속도개선의 효과를 볼 수 있을 것이다.

 

 

-------------------------------------------------------
CDN(Content Delivery Network)접속자가 인터넷상에서 가장 가까운 곳의 서버로 컨텐츠를 전송받아 트래픽이 특정 서버에 집중되지 않고 각 서버로 분산되도록 하는기술입니다.

CDN(Contents Delivery Network) 서비스란 여러곳의 IDC 또는 ISP에 동일한 컨텐츠를 올려놓고,
접속자가 사용하는 인터넷전용회선의 종류에 따라 가장 가까운 곳에서 컨텐츠를 불러들일 수 있도록 지원하는 서비스입니다.

예를 들어, 고객님께서 한국통신의 메가패스를 이용하고 계신다면 KT-IDC의 서버에서 컨텐츠
를 전송하게 되고, 하나로통신의 하나포스를 이용하신다면 하나로IDC의 서버에서 컨텐츠를
전송받으실 수 있습니다.

위와 같이 동일한 컨텐츠가 여러 서버에 똑같이 저장되어있는 상태에서, 접속자에 따라 각 서버에서 컨텐츠가 전송되는 형태를 띄고 있으므로 컨텐츠 전송시간이 매우 빨라지게 됩니다.
모든 접속자가 한 서버에 접속하는 것이 아니어, 트래픽이 분산되어 안정적인 서비스가 가능합니다.

컨텐츠의 전송이 빠르고 안정적이므로, 대형 쇼핑몰/ 게임사이트/ 이미지파일을 주로 사용하는
사이트의 경우에는 꼭 사용하시는 것이 좋습니다.

---------------------------------------------------------

CDN은 “느린 응답속도/다운로딩 타임”을 극복하기 위한 기술

기본적으로 사용자가 원격지에 있는 서버(Origin Server)로 부터 Content(예. Web Object, Video, Music, Image, Document 등)를 다운로드 받을때 가까이 있는 서버에서 받는 것보다 시간이 오래 걸리므로, 사용자와 가까운 곳에 위치한 Cache Server에 해당 Content를 저장(캐싱)하고 Content 요청시에 Cache Server가 응답을 주는 기술입니다.

따라서 사용자는 가까운 곳에 있는 서버(Cache Server)로 부터 Content를 수신하게 되므로 원격지 서버에서 받는것보다 빠르게 페이지나 컨텐츠를 이용할 수 있습니다.
CDN은 웹, 애플리케이션, 스트리밍 미디어를 비롯한 콘텐츠를 전송하도록 최적화된 전세계적으로 촘촘히 분산된 서버로 이루어진 플랫폼입니다. 이 서버 네트워크는 수많은 물리적 위치와 네트워크 위치에 분산되어 있어 웹 콘텐츠에 대한 엔드유저의 요청에 직접적으로 응답하고 빠르고 안전한 미디어 전송을 보장합니다. CDN은 오리진이라고도 불리는 콘텐츠 서버와 엔드유저(클라이언트) 사이에서 컨텐츠를 전달하는 역할을 합니다.

CDN의 이용시 장점

 

CDN을 사용하지 않으면 콘텐츠를 담고있는 오리진 서버들은 모든 엔드유저의 요청에 일일이 응답해야 합니다.

이는 오리진과 오리진에 막대한 트래픽을 유발하고 이후에도 엄청난 부하를 유발하여 트래픽이 과도하게 증가하거나 부하가 끊임없이 들어오는 경우 오리진에서 장애가 발생할 확률을 높입니다.

CDN은 오리진을 대신하여 엔드유저와 가까운 물리적 위치 및 네트워크에서 엔드유저 요청에 응답함으로써 콘텐츠 서버의 트래픽 부하를 줄이고 엔드유저의 웹 경험을 개선하여 콘텐츠 제공업체와 엔드유저 모두에게 막대한 이점을 제공합니다.

CDN의 작동원리


일반적으로 웹 브라우저가 실행되는 디바이스인 PC나 모바일 기기의 사용자 에이전트가 특정 주소에 접근하여 HTML, 이미지, CSS, JavaScript 파일등 렌더링하는 데 필요한 콘텐츠를 서버로부터 요청합니다.
대부분의 CDN의 경우 콘텐츠에 대한 각 요청이 발생하면 엔드유저와 가장 가까운 위치에 최적으로 배치된 CDN 서버에 엔드유저가 매핑되고, 해당 서버는 요청된 파일의 캐싱된(사전 저장된) 버전으로 응답(전송)합니다. 서버가 파일을 찾는 데 실패하는 경우 CDN 플랫폼의 다른 서버에서 콘텐츠를 찾은 다음 엔드유저에게 응답을 전송합니다. 콘텐츠를 사용할 수 없거나 콘텐츠가 오래된 경우, CDN은 오리진 서버에 대한 요청 프록시로 작동하여 향후 요청에 대해 응답할 수 있도록 페칭된 새로운 콘텐츠를 저장합니다.

CDN으로 전송가능한 컨텐츠

웹사이트 콘텐츠의 전송은 CDN이 가장 흔히 사용되는 사용 사례이지만, CDN은 이 밖에도 다양한 콘텐츠 유형을 전송합니다. CDN은 4K 및 HD 품질의 동영상, 오디오 스트림, 앱/게임/OS 업데이트와 같은 소프트웨어 다운로드, 의료 정보와 금융 정보가 포함된 데이터 레코드 등 놀랍도록 다양한 콘텐츠를 전송합니다.

다시 말해서 디지털화될 수 있는 모든 데이터를 CDN을 통해 전송할 수 있습니다.

CDN 캐싱 방식의 종류

Content 캐싱(Origin Server에 있는 Content를 Cache Server에 저장하는 행위)은 Static 혹은 Dynamic하게 이루어 질 수 있습니다.

▶ Static Caching

– 사용자의 요청이 없어도 Origin Server에 있는 Content를 운영자가 미리 Cache Server에 복사함

– 따라서 사용자가 Cache Server에 접속하여 Content를 요청하면 무조건 그 Content는 Cache Server에 있음! (100% Cache Hit)

– 대부분의 국내 CDN에서 이 방식을 사용함 (예. Pooq 동영상 스트리밍/다운로드, NCSOFT 게임파일 다운로드 등)

▶ Dynamic Caching

– 최초 Cache Server에는 Content가 없음

– 사용자가 Content를 요청하면 해당 Content가 있는지 확인하고, 없으면(Cache Miss) Origin Server로 부터 다운로드 받아(Cache Fill) 사용자에게 전달해 줌

– 이후 동일 Content를 요청 받으면 저장(캐싱)된 Content를 사용자에게 전달(Cache Hit)

– 각 Content는 일정 시간(TTL)이 지나면 Cache Server에서 삭제될 수 있고, 혹은 Origin Server를 통해 Content Freshness 확인 후에 계속 가지고 있을 수 있음

– Akamai, Amazon과 같은 Global CDN 업체, 그리고 Cisco나 ALU의 통신사업자향 CDN 장비 솔루션에서 이 방식을 지원함

CDN을 이용하면 어떤 이점이 있을까요?


기본적으로 인터넷은 오늘날 사용자들이 기대하는 막대한 양의 데이터에 대한 수요, 라이브 고화질 동영상, 플래시 광고, 대용량 다운로드를 처리할 수 있도록 설계되지 않았습니다. 반면 CDN은 인터넷이 보다 효율적으로 작동하고, 규모에 맞게 미디어를 전송하고, 상상할 수 있는 모든 온라인 경험을 제공할 목적으로 설계되었습니다.

따라서 현재는 CDN이 온라인 비즈니스를 성공적으로 수행하기 위한 필수 도구가 되었습니다.

구체적으로 살펴보면, CDN 기술은 비즈니스에 다음과 같은 주요 이점을 제공합니다.

  • 성능
  • 가용성
  • 보안
  • 인텔리전스

성능
성능이란 무엇을 의미할까요? 성능은 온라인 콘텐츠가 빠르게 전송되는 것을 의미합니다. 성능이란, 클릭했을 때 새로운 콘텐츠에 즉각적으로 액세스하게 되는 경험과 페이지가 로드되거나 동영상이 버퍼링될 때까지 기다려야 하는 경험의 차이입니다.

사용자로 부터 요청된 콘텐츠를 CDN 서버에서 캐싱(사전 저장)하게 되면, 엔드유저는 요청이 오리진에 직접 도달할 때까지 기다리는 대신 가장 가까운 CDN 서버에 접속하여 해당 콘텐츠를 받게 됩니다. 그 결과 엔드유저가 경험하는 성능이 크게 향상합니다.

예를 들어, 이탈리아 밀라노의 Fashion House X(FHX)가 온라인 주문을 위한 새로운 라인업을 출시했다고 가정해 보겠습니다. 뉴욕, 파리, 리우데자네이루, 도쿄의 패션 리더들은 앞다투어 온라인으로 접속하여 주문하려 할 것입니다. 만약 FHX가 클라우드 콘텐츠 관리 시스템을 사용하지 않고 있다면, 각 엔드유저의 요청은 밀라노까지 갔다가 엔드유저에게 되돌아가야 합니다. 하지만 FHX가 CDN을 사용 중이고 CDN 전역에 걸쳐 콘텐츠를 사전에 준비해 놓았다면, 각 엔드유저는 해당 도시에서 신규 콘텐츠에 직접 액세스할 수 있게 되고, 이로 인해 수백, 수천 킬로미터의 왕복 시간에 해당하는 데이터가 절약되게 됩니다.

콘텐츠가 캐시에 저장되어 있지 않다면 어떻게 될까요? CDN 서버의 캐시에 콘텐츠가 저장되어 있지 않은 경우에는 해당 CDN과 다른 CDN 서버 사이의 상호 연결에 관한 프로그래밍된 기술이 작동하게 됩니다. 이러한 기술을 통해 여러 ISP 간의 피어링, 네트워크 중단으로 인한 패킷 손실, DNS 조회에 소요되는 시간이라는 문제를 극복할 수 있습니다. 또한 고급 CDN에는 동적 콘텐츠(캐싱 불가능한 콘텐츠)를 처리하기 위한 다양한 기술들도 있습니다.

이로 인해 콘텐츠 제공업체는 CDN을 사용하여 위치, 브라우저, 디바이스, 연결하는 네트워크에 관계없이 모든 엔드유저에게 고품질의 웹 경험을 빠른 속도로 제공할 수 있게 됩니다. 웹페이지는 더 빠르게 렌더링되고, 동영상 버퍼링 시간은 줄어들고, 사용자들은 더 많이 참여할 수 있으며, 콘텐츠 제공업체는 더 많은 비즈니스를 창출할 수 있게 됩니다.

 

가용성
가용성이란 사용자 트래픽 급증, 간헐적인 급등, 잠재적인 서버 중단과 같은 극심한 상황에서도 엔드유저에게 콘텐츠를 제공할 수 있는 역량을 의미합니다.

트래픽 부하가 초당 수백만 건의 요청으로 급증하게 되면 제아무리 강력한 오리진 서버라도 막대한 부담이 가게 됩니다. CDN이 없다면 이 모든 트래픽은 콘텐츠 제공업체의 오리진 인프라에서 처리해야 합니다.

만약 오리진에 장애가 발생하게 되면 이는 엔드유저에게 좋지 않은 경험과 심각한 비즈니스상 손실로 이어집니다. 바로 이러한 이유 때문에 대규모로 분산된 서버 인프라를 갖춘 CDN이 필수적입니다.

고도로 분산된 아키텍처와 막대한 규모의 서버 플랫폼을 갖추고 있는 고급 CDN은 수십 TBps의 트래픽을 처리할 수 있으며, 콘텐츠 제공업체는 CDN을 활용하지 않았다면 불가능할 정도의 대규모 사용자 기반에 가용성을 제공할 수 있습니다.
앞서 든 밀라노의 Fashion House X(FHX) 사례를 다시 들어 보겠습니다. FHX는 수많은 패션 애호가들이 사랑하는 브랜드로서, 신규 라인업이 출시되면 패션 피플의 엄청난 관심을 받습니다. 전 세계 패션 애호가들은 출시 시점에 FHX 웹사이트에 동시 접속합니다. FHX가 CDN을 사용하고 있지 않다면 이 모든 사용자들이 동시에 오리진 서버에 요청을 전송하게 되고, 오리진 서버에서는 트래픽 급증으로 인한 장애가 발생할 가능성이 매우 높습니다. 그러나 FHX가 CDN을 사용한다면 이 모든 트래픽이 수십만 대의 서버로 구성된 CDN 전역으로 분산되어 FHX의 오리진이 장애 없이 작동하고 전 세계 패션 애호가들에게 고품질 경험을 제공할 수 있게 됩니다.

 

보안
인터넷에서 가치 높은 데이터와 트랜잭션의 양이 계속 증가함에 따라 공격자의 위협도 마찬가지로 늘어나고 있으며 기업은 그만큼 보안에 큰 비용을 들이게 됩니다. Ponemon Institute에서 발행한 사이버 범죄 보고서에 따르면, 전세계 기업들은 2015년 한 해 동안 사이버 범죄로 인해 평균 770만 달러의 손실을 입었습니다. 악의적인 내부자에 의한 범죄와 함께 DDoS 및 웹 기반 공격이 가장 많은 비용을 초래한 것으로 밝혀졌습니다.

Akamai의 인터넷 현황 보안 보고서에 따르면, DDoS 공격과 웹 기반 악용(SQL 인젝션(SQLi), 크로스 사이트 스크립팅(XSS), 로컬 또는 리모트 파일 인클루전(RFI) 공격 등)이 점점 늘어가는 추세입니다. 또한 DDoS 공격으로 주의를 돌린 후 더욱 심각한 손실을 유발하는 다른 악용 공격을 가하는 사례 또한 늘어가고 있습니다. 두 가지 유형의 공격 모두, 정상 트래픽에서 악성 트래픽을 구별하기가 쉽지 않은 경우가 대부분이며 시간이 지나면서 전략이 급속도로 진화하기 때문에 방어 전략을 최신 상태로 유지하기 위해서는 상당히 많은 전용 보안 리소스가 필요합니다.
인터넷 위협 환경의 급격한 변화는 보안 웹사이트 지원이 CDN의 중요한 요구 사항으로 인식되는 결과를 낳았습니다. Akamai와 같은 오늘날의 고급 CDN은 인터넷 보안을 핵심 역량으로 삼아 독자적인 클라우드 기반 솔루션을 제공하고 있습니다. CDN은 악성 행위자들이 어떠한 경우에도 전송 및 가용성에 영향을 미치지 않도록 하는 동시에 다양한 공격을 막아냄으로써 콘텐츠 제공업체와 사용자들을 보호할 수 있어야 합니다.

 

인텔리전스
전 세계 인터넷 트래픽 중 절반 가까이를 처리하는 CDN 제공업체들은 전 세계의 엔드유저 연결, 디바이스 유형, 브라우징 경험에 대해 막대한 데이터를 생성하고 있습니다. 이들은 이러한 데이터를 고객에게 제시함으로써 고객의 사용자 기반에 대한 유용하고 중요한 인사이트와 인텔리전트를 제공할 수 있습니다.

Akamai에서 제공하는 인사이트와 인텔리전트에는 엔드유저가 웹 콘텐츠와 소통하는 방식을 측정하기 위한 RUM(Real-User Monitoring) 및 Media Analytics와 온라인 위협을 추적하기 위한 클라우드 보안 인텔리전스가 포함됩니다.
Akamai는 또한 글로벌 광대역 동향에 주력하는 보고서와 정보 보안 환경에 주력하는 보고서로 구성된 인터넷 현황 보고서 시리즈를 공개함으로써 대중이 이러한 데이터 중 일부를 사용할 수 있도록 하고 있습니다. 보고서는 여기에서 다운로드하실 수 있습니다.

 

CDN 반드시 사용해야 할까요?
갈수록 많은 기업들이 온라인에서 사업을 영위하고 갈수록 많은 사용자들이 인터넷에서 쇼핑과 공유를 즐기고 있습니다. 따라서 콘텐츠 제공업체는 다양한 콘텐츠의 전송, 서로 다른 디바이스 유형에 맞춘 콘텐츠 조정(디바이스 인식), 데이터 및 엔드유저의 온라인 정보 보안이라는 일련의 도전 과제에 직면하고 있습니다.

콘텐츠 전송 네트워크는 이러한 기업들이 미디어 전송의 다양한 문제들을 극복하도록 지원할수 있도록 고유의 역량을 보유하고 있습니다.

CDN은 20년이 넘는 세월 동안 유통, 금융, 헬스케어를 비롯한 여러 업종이 전 세계 엔드유저에게 빠르고 규모에 맞게 온라인 콘텐츠를 제공할 수 있도록 지원해 오면서 인터넷의 보이지 않는 백본 역할을 수행해 왔습니다.
귀하가 온라인으로 어떤 작업을 행한 적이 있다면, 실제로 인식했든 인식하지 않았든, 이미 CDN의 이점을 누린 경험이 있으실 것입니다.

반응형