CDN(Content Delivery Network, 콘텐츠 전송 네트워크)이란 웹 콘텐츠를 세계 곳곳에 있는 여러 서버에 분산하여 저장하는 분산 서버 네트워크 시스템입니다. CDN 덕분에 전 세계 어디에 있든지 이미지, 영상 등 웹 콘텐츠를 사용자에게 빠르게 전달할 수 있습니다. CDN의 주요 목적은 서버와 최종 사용자의 물리적 거리를 줄여서 웹 서비스의 성능, 속도, 신뢰성을 향상시키고 서버의 부하를 최소화하는 것입니다.
CDN을 사용하지 않는 한국 웹사이트를 미국에서 접속하면 어떤 문제가 있을까요? 미국까지 물리적 거리가 멀기 때문에 한국에 있는 서버가 사용자의 요청을 받아서 리소스를 보내는데 지연이 생기죠. 반면 CDN을 사용하면 전 세계 여러 위치에 있는 서버에 웹 리소스를 저장합니다. 그럼 미국에서 접속해도 가장 가까운 서버에서 리소스를 가져오기 때문에 지연 시간을 최소화할 수 있어요.
그럼 모든 웹사이트에 CDN이 필요할까요? 아니요. 트래픽이 많지 않고 국내 방문자만 있는 웹사이트는 CDN을 도입할 필요가 없어요. 하지만 웹사이트 로딩 지연이 높거나 트래픽이 많고 서버 성능 이슈가 발견되면 CDN 도입을 고려해보세요.
CDN의 동작 방법을 더 자세히 알아볼게요. CDN에는 아래 세 종류의 서버가 필요합니다.
-
오리진 서버는 웹사이트의 원본 콘텐츠(HTML 파일, 이미지, 비디오, 데이터베이스 등)를 저장하고 있는 중앙 서버입니다. 웹사이트 운영자는 오리진 서버에서 콘텐츠를 업데이트하거나 삭제하고, 오리진 서버를 관리해야 됩니다.
-
엣지 서버는 전 세계 곳곳 위치한 분산 서버이며 오리진 서버의 콘텐츠를 캐싱하고 있어요. 캐시 정책에 따라 콘텐츠를 업데이트하고요. CDN은 가장 가까운 엣지 서버에서 사용자에게 콘텐츠를 제공하기 때문에 사용자가 최신 콘텐츠를 빠르게 받을 수 있어요. 엣지 서버는 CDN 공급업체가 관리합니다.
-
DNS 서버는 CDN에서 오리진 서버와 엣지 서버를 연결해주는 역할을 합니다. 사용자가 오리진 서버에 요청을 보내면 DNS 서버는 사용자를 가장 가까운 엣지 서버로 라우팅해줘요.
그럼 이제 사용자가 웹사이트에 접속했을 때 어떤 일이 일어나는지 살펴볼게요.
- DNS 서버는 사용자의 위치를 기준으로 가장 가까운 엣지 서버(캐싱 서버)의 IP 주소를 반환합니다.
- 엣지 서버는 요청된 콘텐츠가 캐싱되어 있는지 확인합니다. 엣지 서버에 해당 콘텐츠가 캐싱되어 있지 않거나 캐시된 콘텐츠가 만료됐다면, 오리진 서버에서 최신 콘텐츠를 가져옵니다.
- 엣지 서버는 사용자에게 콘텐츠 제공합니다.