CDN이란
CDN(Content Delivery Network)은 전 세계에 분산되어 있는 서버들을 통해 사용자에게 웹 컨텐츠를 빠르고 효율적으로 제공하는 기술이다. 웹사이트의 이미지, CSS, JavaScript 파일, 동영상 등 정적 컨텐츠를 사용자와 물리적으로 가까운 서버에서 전달하는 방식이다.
CDN의 작동 방식은 세 종류의 서버로 이루어진다.
- 오리진서버는 웹사이트의 원본 컨텐츠(CSS, JS 등)를 저장하고 있는 중앙 서버이다. 웹사이트 운영자는 오리진 서버에서 콘텐츠를 업데이트하거나 삭제하고, 오리진 서버를 관리해야 한다.
- 엣지 서버는 전 세계 곳곳 위치한 분산 서버이며 오리진 서버의 콘텐츠를 캐싱하고 있다. 캐시 정책에 따라 콘텐츠를 업데이트하고, CDN은 가장 가까운 엣지 서버에서 사용자에게 콘텐츠를 제공하기 때문에 사용자가 최신 콘텐츠를 빠르게 받을 수 있다. 엣지 서버는 CDN 공급업체가 관리한다.
- DNS 서버는 CDN에서 오리진 서버와 엣지 서버를 연결해주는 역할을 한다. 사용자가 오리진 서버에 요청을 보내면 DNS 서버는 사용자를 가장 가까운 엣지 서버로 라우팅해준다.
CDN을 적용하면 컨텐츠 요청이 매번 원본 서버에 직접 전달되지 않으므로, 트래픽을 분산시키는 효과가 있다. 따라서 대규모 트래픽이 발생하더라도 안정적으로 컨텐츠를 제공할 수 있다. 더불어 물리적으로 가까운 위치에서 컨텐츠를 전송하므로 속도가 빠르다.
CDN은 언제 적용하는 것이 좋을까?
첫째, 세계 여러 국가에서 서비스에 방문하는 경우이다. 만약 CDN을 적용하지 않은 한국 서비스에 브라질 사용자가 방문했다면, 방문자의 위치와 서버의 위치가 물리적으로 멀기 때문에 지연 시간이 길다. 반면, CDN을 적용하여 브라질에도 엣지 서버가 있다면, 브라질 사용자가 요청할 경우 가까운 위치에 있는 해당 서버를 통해 빠르게 응답할 수 있기 때문에 지연 시간을 짧게 가져갈 수 있다.
둘째, 대량 트래픽이 발생하는 경우다. CDN을 적용하면 엣지 서버들로 트래픽이 분산되기 때문에, 대량 트래픽이 발생해도 비교적 안정적으로 처리가 가능하다. 또한, 하나의 서버에 장애가 생기더라도 다른 엣지 서버들을 통해 처리할 수 있기 때문에 예기치 못한 장애에 대응하기에도 용이하다.
다만 트래픽이 많지 않고 국내 방문자만 있는 웹사이트는 CDN을 도입할 필요가 없다.