CDN(Content Delivery Network) 이란?
CDN은 클라이언트와 오리진 서버의 지역적인 한계로 발생하는 지연
을 최소화 하고, 컨텐츠 요청이 많아진 경우 오리진 서버의 변목현상과 서버 다운을 방지하고자 사용하는 기술입니다.
여러 지역에 분산된 캐싱 서버에 컨텐츠를 저장하고, 클라이언트가 요청할 경우 가까운 곳의 캐싱 서버로부터 컨텐츠를 제공함으로써 성능을 최적화 해줍니다.
CDN의 캐싱 방식
CDN의 캐싱에는 Static Caching
, Dynamic Caching
두가지 방식이 존재합니다.
Static Caching
- 운영자가 오리진 서버에 있는 컨텐츠를 캐싱 서버에 복사해두어 클라이언트가 컨텐츠를 요청할시 무조건 캐싱 서버에 존재할 수 있도록 한다.
- 주로 게임 클라이언트 다운로드 할때 해당 방식 많이 사용한다.
Dynamic Caching
- 운영자가 미리 오리진 서버의 컨텐츠를 캐싱 서버에 저장하지 않는다.
- 클라이언트가 특정 컨텐츠를 최초 요청시 오리진 서버로부터 응답받고, 주변 캐싱 서버에 캐싱된다.
- 캐싱 후에는 캐싱 서버로부터 제공받고, 일정 시간 이후 캐싱에서 삭제된다.
두 방식의 주된 차이점
Static Caching은 주로 변화지 않는 컨텐츠를 위해 사용하하고 네트워크 부하를 줄이는데 사용하고, Dynamic Caching은 요청마다 변경이 많은 컨텐츠에 사용해 서버의 부하를 줄여준다.
CDN에 영향을 주는 HTTP 헤더
- Cach-Control : 캐싱의 유효기간 설정을 담당
- ETag: 캐시된 리소스가 최신인지 확인
- Expires: 캐싱 만료 날짜 지정
- Content_Encoding : 콘텐츠 압축
- Vary : 캐싱 조건 정의
대표적인 CDN 인프라
- AWS CloudFront
- AKamai
- Cloudflare
- Google Could CDN
- Fastly
'CS > Network' 카테고리의 다른 글
[Network] Cors란? (0) | 2024.04.05 |
---|