최근 네트워크가 많은 발전을 이룬 덕분에 언제 어디서든 정보를 교환할 수 있게 되었습니다. 우리는 이러한 네트워크 속에서 살고 있다고 해도 과언이 아닙니다. 더군가나 해외에서 만들어진 앱도 아무 문제 없이 사용합니다.
만약 교환되는 정보가 대용량일 경우 어떨까요?? 데이터를 언제 어디서든 지연 없이 처리하기 위해 등장한 것이 바로 CDN 서비스 입니다.
웹이나 앱이 많은 사용자를 보유하고 있거나 전 세계 또는 먼 곳에 콘텐츠를 제공할 경우 CDN을 사용합니다.
온라인 동영상 스트리밍 서비스를 제공하는 넷플릭스는 CDN 기술을 활용해 전 세계 사람들에게 콘텐츠를 안정적으로 제공하고 있습니다. 또한 보안을 강화할 경우에도 CDN이 활용됩니다.
CDN은 콘텐츠 전송 네트워크를 뜻합니다. 즉, 콘텐츠를 사용자에게 빠르고 안전하게 전달하는 기술을 말합니다.
서버 분산 네트워크라고도 부르는 CDN은 본 서버의 기능과 데이터를 분산시켜서 지리적 제약 없이 사용자에게 콘텐츠를 제공합니다.
CDN의 개념은 본사와 체인점 예시가 적합한데요, 예를 들어서 제주도에 개인이 운영하는 한 편의점이 있다고 가정하겠습니다. 이 편의점에 도시락이 맛있어서 전국적으로 유명해졌습니다. 제주에 거주하는 사람들은 이 도시락이 먹고 싶을 경우 쉽게 편의점에 가지만 타 지역에 사는 사람들은 제주도로 오기가 쉽지 않습니다. 점점 편의점에 많은 관광객이 방문하면서 도시락 공급도 힘들어지게 됩니다.
앞서 CDN을 통해 서버를 분산시킨다는 것을 알았습니다. 즉 본 서버가 클라이언트의 요청을 직접 받지 않습니다.
이러한 특징으로 CDN은 많은 이점을 갖습니다. 먼저 대역폭 비용이 크게 절감됩니다. 여기서 대역폭은 동시에 많은 데이터를 보낼 수 있는 정도를 말합니다. 자동차들이 지나다니는 도로의 너비를 생각하면 쉽습니다. 서버에서 전송하는 데이터가 많아지면 대역폭은 넓어져야 합니다. 하지만 CDN 기술은 본 서버가 클라이언트의 요청을 받지 않기 때문에 대역폭을 넓게 만들 필요가 없어 대역폭 비용이 절감됩니다. 그 뿐만 아니라 본 서버의 부담을 줄이면 가용성과 안정성도 향상됩니다.
CDN의 개념을 보면 본 서버를 똑같이 복제해서 각 지역으로 배포한다고 생각이 가능하지만 그렇지는 않습니다.
CDN은 사용자에게 제공할 콘텐츠와 데이터만 따로 각 지역 서버에 저장해 두는 방식입니다. 클라이언트가 요청하면 그 클라이언트와 제일 근접한 CDN 서버에서 콘텐츠와 데이터를 제공합니다. 여기서 지역별로 존재하는 CDN 서버를 edge라고 합니다. 본 서버에서는 캐싱을 통해 엣지에 저장합니다.
최근에 웹이나 앱에서 많은 기능을 제공하고 있으며 앱의 동시간 서비스 이용자 수가 증가하고 있습니다. 이러한 상황에서 원활하고 안정적인 서비스를 제공하기 위해 CDN을 활용합니다.
CDN을 통해 국내 뿐만 아니라 해외까지 범위를 확장하여 서비스를 제공합니다. 또한 기존 인터넷 망이 갖는 한계점을 보완하고 서버의 부하 분산과 무정지 서비스, 고품질 서비스를 제공합니다.