CDN (Content Delivery Network, 컨텐츠 전송 네트워크)

CDN이란 웹 컨텐츠를 세계 곳곳에 있는 여러 서버에 분산하여 저장하는 분산 서버 네트워크 시스템입니다.
CDN 덕분에 전 세계 사용자들에게 이미지, 영상, 웹 컨텐츠를 빠르게 전달할 수 있습니다.
CDN의 주요 목적은 서버와 최종 사용자의 물리적 거리를 줄여 웹 서비스의 속도, 성능, 신뢰성을 향상시키고 서버의 부하를 최소화하는 것입니다.
만약 CDN을 사용하지 않으면 어떻게 될까?
사용자가 지리적으로 원본 서버에서 먼 곳(ex. 한국 사용자가 미국 서버 접속)에서 웹사이트에 접근하는 경우, 정적 리소스를 매번 원본 서버에서 가져오게 됩니다.
물리적 거리와 네트워크 홉 수로 인해 지연 시간이 증가하고, 이는 고객 불만으로 이어져 결국 사용자 이탈률을 높일 수 있습니다.
반면 CDN을 사용하면 전 세계 여러 서버에 웹 리소스를 분산 저장해두기 때문에, 가장 가까운 서버에서 리소스를 가져올 수 있어 지연 시간을 줄일 수 있습니다.
대표적인 CDN 서비스로는 CloudFront, CloudFlare 등이 있습니다.
CDN 작동 방식
CDN에는 세 종류의 서버가 필요합니다.
오리진 서버: 웹 사이트의 원본 컨텐츠(HTML, 이미지, 비디오, 데이터베이스 등)를 저장하는 중앙 서버
엣지 서버: 전 세계에 분산된 서버로, 오리진 서버의 컨텐츠를 캐싱하여 사용자와 가까운 위치에서 빠르게 제공
DNS 서버: 사용자 요청을 받아 가장 가까운 엣지 서버로 라우팅해주는 역할
사용자가 웹사이트에 접속하면
DNS 서버는 사용자의 위치를 기준으로 가장 가까운 엣지 서버의 IP 주소를 반환합니다
엣지 서버는 캐시에 해당 컨텐츠가 있는지 확인하고, 없다면 오리진 서버에서 가져와 저장합니다
엣지 서버는 사용자에게 컨텐츠를 제공합니다
이러한 방식으로 웹 리소스 전송 속도와 효율성을 크게 개선할 수 있습니다.
CDN의 장점
빠른 응답 속도: 사용자와 가까운 서버에서 컨텐츠를 제공
서버 부하 감소: 원본 서버의 트래픽을 분산
글로벌 커버리지: 세계 어디서든 빠른 접근 가능
DDoS 완화: 공격을 CDN이 중간에서 흡수
안정성 향상: 트래픽 폭주시에도 서비스가 중단되지 않음
Push 방식과 Pull 방식
Push 방식: 오리진 서버가 컨텐츠를 미리 엣지 서버에 푸시
Pull 방식: 사용자 요청이 발생할 때 엣지 서버가 오리진 서버에서 컨텐츠를 가져와 캐시
상황에 따라 Push는 실시간성이 중요한 리소스에, Pull은 관리 편의성과 자동화가 필요한 경우에 적합합니다.
CDN 사용 시 고려해야 할 점
비용 : CDN은 사용량 기반으로 요금이 청구되므로, 트래픽 규모에 따라 경제성을 판단해야함
컨텐츠 만료 시간 (TTL) : 너무 길면 최신성이 떨어지고, 너무 짧으면 캐시 효율이 낮아짐
CDN 장애 대응 전략 : 장애 시 원본 서버로 직접 fallback 할 수 있도록 구성 필요
콘텐츠 무효화 정책:
오브젝트 버저닝: 파일 이름이나 URL에 버전 정보를 넣어 새 콘텐츠를 식별
무효화 API: CDN에서 제공하는 API를 통해 특정 콘텐츠를 즉시 제거 및 갱신
참고 자료 : https://docs.tosspayments.com/resources/glossary/cdn
Subscribe to my newsletter
Read articles from 갱갱 directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by
