CDN(Content Delivery Network)

Dana's Log·2022년 12월 27일
0

CDN이란 무엇인가요?

CDN(Contents Delivery Network)은 지리적 물리적으로 떨어져 있는 사용자에게 컨텐츠 제공자의 컨텐츠(웹페이지, 이미지, 동영상 등)를 더 빠르게 제공할 수 있는 기술을 말합니다.

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업체 = Cloudflare, Akamai, AWS의 CloudFront 등 동적 컨텐츠를 바이트 단위로 분석하여 바뀐 부분 새로 받아오도록 해서 속도 높이기 서버에서 사용자까지 전달 경로 최적화 데이터 합축 handshake 과정 간소화 지정된 시간에 한해서 캐싱(TTL: Time-to-live) 세계각지 서버들 = Edge(엣지) 서버로 직접 요청들이 들어오지 않기때문에 대역폭 비용이 크게 절감 (주어진 시간안에 데이터가 얼마나 많이 보내지는가) 서버 호스팅 비용 절감 과부하로인한 오류 위험성 줄여듬 Ddos 공격에도 방어 가능 컨텐츠 암호화 향상

사용자의 요청을 DNS가 아닌 CDN으로 연결

정적 캐싱 : CDN에 미리 보내놓기
동적 캐싱 : 사용자의 요청마다 보낼 컨텐츠를 CDN에 확인후 있으면
바로 사용자에 보내고(Cache hit) Cache miss일때 서버에 요청해서 보냄
필요 용도 비용에 따라 선택

profile
다나로그

0개의 댓글