데이터 통신기술이 발달하면서 세계적으로 수많은 데이터들이 전송되는 세상이되었다.
기하급수적으로 증가하는 데이터르르 최대한 지연 없이 효율적으로 전달하기 위해 CDN이라는 기술이 등장했다.
CDN은 Content Delivery Network의 약자로서 지리적인 제약 없이 전 세계 사용자에게 빠르고 안전하게 컨텐츠 전송을 할 수 있는 기술을 말한다. 이를 통해서 컨텐츠의 병목현상을 피할 수 있다.
CDN은 물리적으로 떨어져있는 사용자에게 컨텐츠를 더 빠르게 제공하기 위해 고안된 기술이다. 우리나라에게 있는 사람이 미국에 있는 서버로부터 이미지나 파일 등을 다운받으려고 한다면 시간이 오래 걸릴 것인데, 서버를 분산시켜 캐싱해두고 사용자의 컨텐츠 요청이 들어오면 사용자와 가장 가까운 위치에 존재하는 서버로 매핑시켜 요청된 콘텐즈의 캐싱된 내용을 전달하는 방식으로 신속하게 데이터를 전송 할 수 있게된다. 만약에 서버가 파일을 찾는데 실패할 경우, CDN 플랫폼의 다른 서버에서 컨텐츠를 찾은 다음 응답을 전송한다.
전자는 CDN를 사용하지 않은 경우이고, 후자는 CDN을 사용할 경우를 보여준다.
Static Caching
- Origin Server에 있는 Content를 운영자가 미리 Cache Server에 복사 해두어 사용자가 Cache Server에 Content 요청 시 무조건 Cache Server에 있다.
- 대부분의 국내 CDN에서 이 방식을 사용 ex)게임 클라이언트 다운로드
Dynamic Caching
- Origin Server에 있는 Content를 운영자가 미리 Cache Server에 복사하지 않음
- 사용자가 Content를 요청 시 해당 Content가 없는 경우 Origin Server로 부터 다운로드 받아 전달한다. 있는 경우에는 캐싱된 Content전달
- 각각의 Content는 일정 시간 이후 Cache Server에서 삭제될 수도 있다.
온라인 게임의 오픈 베타테스트, 정식 서비스 시작시점에 클라이언트의 다운로드 수요가 급격하게 증가한다. 이런 경우 병목현상이 일어나거나 심각한 경우 서버가 다운되기도 하기 때문에 CDN이 필수적으로 사용된다.
대규모 업데이트를 위한 패치가 있을 경우에도 병목현상을 막기 위해 CDN을 사용한다.
넷플릭스에서는 온라인 동영상 스트리밍 서비스를 세계적으로 제공하는 업체로 최대한 지연없이 안정적이고 빠르게 컨텐츠를 제공하기 위해서는 CDN기술이 필수적이다.
CDN에 대해서 잘 배워갑니다!