CDN(Content Delivery Network)이란?
지리적으로 분산된 여러 개의 서버이다. 웹 콘텐츠를 사용자와 가장 가까운 곳에서 전송함으로써 전송 속도를 높인다.
CDN은 전세계 데이터 센터에 파일 사본을 임시로 저장하는 '캐싱'이라는 프로세스를 통해 사용자와 가장 가까운 서버에서 인터넷 콘텐츠에 접속할 수 있도록한다. 이를 통해 페이지 로드 시간이 단축되고 더 빠른 고성능 웹 환경을 경험할 수 있다. 웹 페이지, 이미지, 동영상 등의 콘텐츠를 사용자의 위치에 가장 가까운 서버에 캐싱해 로드할 필요없이 작업을 수행할 수 있게 해준다.
어떻게 작동하는가?
사용자가 런던에 있는 한 업체의 사이트를 보고 싶어한다면 웹사이트의 콘텐츠 로딩 시간이 걸어질 것이다. cdn은 이런 문제를 해결하기 위해 런던 웹사이트에 있는 콘텐츠를 캐싱해 전 세계의 PoP에 저장한다. 이러한 PoP는 자체 캐싱 서버를 갖고 있으며 요청자로부터 가장 가까운 엣지서버에서 해당 콘텐츠를 전송한다.
CDN은 3가지 종류의 서버에 의존한다.
오리진 서버
- 오리진 서버에는 콘텐츠의 원본 버전이 포함되어 있으며 원본 소스 역할을 한다. 콘텐츠를 업데이트해야할 때마다 오리진 서버에서 변경이 이루어진다. 해당 서버는 공급업체가 소유할 수 있으며 S3 혹은 GCS같은 third party 클라우드 공급업체의 인프라에서 호스팅할 수 있다.
엣지 서버
- 전 세계 여러 지리적 위치에 위치하며 이를 PoP(Point of Presence)라고도 한다. 엣지 서버는 오리진 서버에서 복사된 콘텐츠를 캐싱하고, 인근 사용자에게 해당 콘텐츠를 전송하는 역할을 담당한다. 사용자가 오리진 서버의 콘텐츠에 대한 접속을 요청하면 지리적으로 가까운 엣지 서버에 캐싱된 콘텐츠 사본으로 리디렉션된다. 캐싱된 콘텐츠가 오래된 경우, 엣지 서버는 오리진 서버에 업데이트된 콘텐츠를 요청한다. CDN 엣지 서버는 호스팅 공급업체가 소유하거나 관리한다.
DNS 서버
- DNS 서버는 오리진 및 엣지 서버의 IP 주소를 추적하고 제공한다. 클라이언트가 오리진 서버에 요청을 보내면 DNS 서버는 콘텐츠를 더 빠르게 제공할 수 있는 페어링된 엣지 서버의 이름으로 응답한다.