CDN(Content Delivery Network)이란?
No Filled
전 세계에 분산된 서버 네트워크를 통해 사용자와 가장 가까운 위치에서 콘텐츠를 전송하여 웹사이트 로딩 속도를 높이고 서버 부하를 줄이는 시스템
기본 개념
- CDN은 원본 서버(Origin Server)의 콘텐츠를 여러 지역에 분산된 캐시 서버(Edge Server)에 복제하여 저장
- 사용자 요청 시 가장 가까운 서버에서 콘텐츠를 제공하는 네트워크 인프라
등장 배경
- 거리로 인한 지연 문제: 서울의 사용자가 미국 서버에 접속하면 물리적 거리로 인해 응답 시간이 길어짐
- 서버 과부하: 인기 있는 콘텐츠에 대한 동시 접속이 증가하면 원본 서버에 부하 집중
- 대용량 파일 전송: 이미지, 비디오 등 정적 콘텐츠의 효율적 전송 필요
- 글로벌 서비스 확장: 전 세계 사용자에게 빠른 서비스를 제공해야 하는 요구사항 증가
동작 원리
1단계: 콘텐츠 배포
- 원본 서버의 정적 콘텐츠(이미지, CSS, JS, 비디오 등)를 CDN 엣지 서버로 복제
2단계: 사용자 요청
- 사용자가 웹사이트에 접속하여 리소스 요청
3단계: DNS 라우팅
- CDN의 DNS가 사용자 위치를 파악하고 가장 가까운 엣지 서버의 IP 반환
4단계: 캐시 확인
- 엣지 서버에 요청된 콘텐츠가 캐시되어 있는지 확인
5단계: 콘텐츠 전송
- 캐시 있음(Cache Hit): 엣지 서버에서 즉시 응답
- 캐시 없음(Cache Miss): 원본 서버에서 가져와 캐싱 후 사용자에게 전송
관련 개념과 비교
CDN vs 로드 밸런서
- CDN: 지리적으로 분산된 캐시 서버, 정적 콘텐츠 전송에 최적화
- 로드 밸런서: 동일 데이터센터 내 여러 서버로 트래픽 분산, 동적 요청 처리
CDN vs 리버스 프록시
- CDN: 전 세계 분산, 정적 콘텐츠 캐싱
- 리버스 프록시: 단일/소수 위치, 보안·압축·캐싱 등 다양한 기능
헷갈리기 쉬운 부분
CDN vs 캐싱
- 캐싱: 데이터를 임시 저장하는 기술 (브라우저 캐시, 서버 캐시 등)
- CDN: 지리적으로 분산된 캐싱 네트워크 전체 시스템
엣지 서버 vs 오리진 서버
- 엣지 서버(Edge Server/PoP): CDN의 캐시 서버, 사용자와 가까운 위치
- 오리진 서버(Origin Server): 원본 콘텐츠를 보관하는 메인 서버
TTL vs Max-Age
- TTL (Time To Live): 캐시가 유효한 시간
- Max-Age: Cache-Control 헤더의 캐싱 기간 지정 값 (같은 개념이지만 문맥에 따라 다른 용어 사용)
개념 정리
CDN은 Content Delivery Network의 약자로, 전 세계에 분산된 서버 네트워크를 통해 사용자에게 콘텐츠를 빠르게 전송하는 시스템입니다.
동작 원리의 경우 원본 서버의 정적 콘텐츠가 전 세계 여러 지역의 엣지 서버에 복제됩니다. 사용자가 웹사이트에 접속하 면 CDN의 DNS가 사용자의 지리적 위치를 파악하고 가장 가까운 엣지 서버로 연결해줍니다. 해당 엣지 서버에 콘텐츠가 캐시되어 있으면 즉시 응답하고 없으면 원본 서버에서 가져와 캐싱한 후 사용자에게 전달합니다.
CDN은 물리적 거리를 줄여 응답 시간을 크게 개선합니다. 원본 서버의 부하를 분산시켜 서버 확장성을 높입니다. 여러 서버에 분산되어 있어 한 서버에 장애가 발생해도 서비스 가용성이 유지됩니다.
주로 이미지, CSS, JavaScript 같은 정적 콘텐츠를 CDN으로 서빙합니다. Cloudflare, AWS CloudFront, Akamai 같은 서비스를 사용합니다. 다만 동적 콘텐츠나 사용자별로 다른 데이터는 CDN 캐싱의 효과가 제한적이라는 점을 고려해야 합니다.
핵심 문장
- 전 세계에 분산된 캐시 서버 네트워크
- 사용자와 가장 가까운 서버에서 콘텐츠를 제공하여 로딩 속도를 높이고 원본 서버 부하 줄임
- 주로 이미지, CSS, JavaScript 같은 정적 파일 전송에 사용
- 지리적 거리로 인한 네트워크 지연을 최소화하는 것이 핵심