CDN은 사용자와 가까운 곳에 서버를 위치시켜 요청에 신속하게 응답하는 기술입니다. 이를 통해 전송속도 향상은 물론 비용도 절감할 수 있습니다. 캐싱, 로드밸런싱, 스트리밍, 동기화 등의 주요 기술과 클라우드 서비스와 비교하여 CDN을 사용할 경우의 이점에 대해 자세히 알아보겠습니다.
CDN 개념
CDN 기술은 위의 그림과 같이 Original Server와 사용자 사이에 CDN 네트워크와 Cache 서버가 위치합니다. 사용자가 서버에 페이지나 리소스를 요청하면, CDN은 캐시서버에 Data가 있는지 체크하고 존재하면 바로 사용자에게 전달합니다.
CDN 주요기술
CDN 서비스를 구축하기 위해 다음과 같은 기술이 활용됩니다.
1. 캐싱 기술
컴퓨터의 Cache 메모리와 같은 개념으로 사용자가 자주 요청하는 정보를 캐시서버에 저장하여 바로 전송하는 방식입니다. 캐시 서버를 위치시키는 방식에 따라 Push 모델, Pull 모델 및 이 두 가지를 방식을 합친 방식을 사용합니다.
2. Global Server Load Balancing
인터넷상에 수많은 CDN 캐시서버가 분산되어 있습니다. 이들 중에서 이용자에게 최상의 서비스를 제공할 수 있는 서버를 선택하여 연결합니다.
3. 로드 밸런싱
트래픽을 분산하여 Original Server의 부하를 경감시키며, 만약 서비스가 불가능한 CDN 서버가 있으면 이를 나머지 서버로 트래픽을 분산시킵니다.
4. 스트리밍 기술
대용량의 멀티미디어 데이터를 한 번에 전송하지 않고 요청한 패킷만큼 쪼개서 전송하는 기술입니다. 유형에 따라 Multicasting Streaming 및 On-Demand Streaming으로 나눌 수 있습니다.
5. 동기화 기술
오리지널 서버에 콘텐츠가 변경된 경우 이를 즉각 반영하여 사용자들이 동일한 정보를 받을 수 있도록 합니다.
6. 분산 기술
분산데이터를 관리하고 분산병렬 처리할 수 있는 기술입니다. Grid 컴퓨팅이나 가상화 기술등을 적용합니다.
CDN을 사용하는 이유
CDN 서버를 사용하면 오리지널 서버의 부하를 경감시키고 사용자는 더욱 빨리 요청에 대한 응답을 받을 수 있습니다. CDN을 사용함으로써 얻을 수 있는 다양한 이점은 다음과 같습니다.
이점 | 설명 |
성능 | 유튜브의 경우 지역별로 캐시서버가 있어 더 빨리 동영상 콘텐츠의 감상이 가능합니다. 이처럼 사용자의 요청 콘텐츠가 인근 캐시서버에 저장되어있는 경우 빠르게 제공할 수 있습니다. |
가용성 | 한순간 과도한 트래픽이 한꺼번에 몰리는 경우가 있습니다. CDN 서버를 이용하면 부하를 분산시켜 안정적인 서비스를 제공할 수 있습니다. |
사용자정보 | CDN은 전 세계 트래픽의 절반 이상을 부담하고 있을 정도로 활용성이 큽니다. 이 서버에는 사용자의 접속정보, 디바이스 종류와 같은 사용자 정보를 축적할 수 있습니다. |
보안강화 | 웹서버에 직접 접속하는 경우 분산서비스거부공격이나 취약점을 노린 공격에 직접적으로 누출될 가능성이 큽니다. CDN 서버를 사용하면 접속을 분산시켜 DDoS 공격을 약화시킬 수 있습니다. |
CDN vs 클라우드 서비스
가용성 확보 및 보안강화 측면에서 클라우드 서비스 역시 좋은 솔루션입니다. 가령, 클라우드는 서비스는 트래픽 폭증에도 Auto Scaling을 통해 안정적으로 대응할 수 있습니다. 이러한 클라우드 서비스와 비교하여 CDN이 갖는 이점은 다음과 같습니다.
비용절감
클라우드 서비스는 대부분 종량제 요금방식입니다. 사용하는 만큼 비용이 증가하므로 대규모 서비스를 하는 경우 CDN이 더 저렴합니다.
빠른 서비스
만약 클라우드 서버가 한국에 위치한 경우 미국이나 유럽에서 접속 시 속도 저하가 발생할수 있습니다. 하지만 CDN은 부하를 고려하여 여러 지역에 서버를 배치하므로 이러한 지역적인 속도 문제를 해결할 수 있습니다.
도입효과
CDN을 사용하면 콘텐츠 제공자는 웹서비스의 성능을 향상하는 동시에 비용을 절감하고 고객을 만족시킬 수 있는 이점이 있습니다. 사용자 또한 다양한 콘텐츠를 빠른속도로 제공받을 수 있습니다.
이상으로 Content Delivery Network 기술의 개념과 주요기술 그리고 사용 이유에 대해서 알아보았습니다.