💨What
- CDN이란? Content Delivery Network
- 기본적으로 사용자가 원격지에 있는Origin-Server로부터 Content를 다운로드 받을 때 가까이 있는 서버에서 받는 것보다 시간이 오래 걸리므로, 사용자와 가까운 곳에 위치한 Cache Server에 해당 Content를 저장(캐싱)하고 Contetn 요청시에 Cache Server가 응답을 주는 기술이다.
지리적 제약 없이 전세계 사용자에게 빠르고 안전하게 컨텐츠를 전송하는 기술
- CDN 사용 x

- CDN 사용


- 가능한 사용자와 가까운 CDN과 연결해 불필요한 연결 설정 비용을 줄일 수 있다.
- 일부 CDN은 인터넷에 분산된 여러 CDN 서버들을 통해 트래픽을 Origin Server로 라우팅함으로 최적화된 경로를 통해 발생한다.
- BGP는 인터넷 라우팅 프로토콜이지만 성능지향적이 아니다.
- 이에따라 BGP가 결정한 경로는 CDN 서버간에 최적화 경로보다 성능이 떨어질 수 있다.
Q. CDN에 없으면 바로 Origin - Server로 가는것인가?

캐싱방식
- static
- 개발자가 미리 cache server에 미리 로드하는 방식
- dynaminc
- 클라이언트가 컨텐츠를 요청하면 해당 컨텐츠가 없으면 origin server로 부터 다운받아 전달하는 방식
퍼징(Purging)
- Cache Eviction 처럼 기다리는 것이 아닌 바로 제거하는 매커니즘이다.
- CDN 서버에서 캐쉬된 리소스를 즉각 삭제를 지원하는 경우 동적인 컨텐츠를 관리하는데 용이하다. (긴 TTL을 사용하는 컨텐츠)
- 해당 방식을 사용해 언제 업데이트 되는지 모르는 동적인 리소스의 캐싱 기간을 최대한 길게 유지 할 수 있다. ( hold -till - told -caching 이라고 함)
- 규모에 따라 퍼징을 사용할 때 캐시 태그, 삭제 캐시 키라는 개념을 사용한다.
- 하나의 리소스에 식별자를 연결한 다음, 태그를 사용해 세분화된 삭제를 할 수 있다.
- 예)
- 사이트 하단 푸터가 포함된 /about, /blog 리소스에 footer라는 태그를 추가한다.
- 사이트 하단 푸터가 업데이트 되면 foot 태그를 가진 CDN에 있는 모든 리소스를 퍼징한다.
캐시 가능한 리소스

❓Why
서버의 부하를 줄일 수 있기 때문이다. (서버로부터 대용량 컨텐츠 로드 해결)
- 리소스 캐싱 기능 제공
✅How
📌 REFER
- 잘 설명되는 블로그
- 일반 참고
- 공식문서
- CDN과 Nginx의 차이