CDN(Content Delivery Network)
CDN 없이도 네트워크 접속이 가능하지만 굳이 사용하는 이유는?
1. CDN의 개념
*CDN은 미러사이트처럼 서버 전체 기능을 따라하는 것이 아니라 컨텐츠 전달이라는 용도에 특화된 것임
2. 동적 콘텐츠의 캐싱
CDN에 캐싱되는 주기는 설정하기에 따라 다름. 정적 캐싱과 정적 캐싱으로 나뉨.
정적 캐싱은 캐싱할 리소스를 미리 엣지에 보내는 것.
동적 캐싱은 사용자가 요청을 보낼때마다 보낼 컨텐츠가 엣지에 있는지 먼저 확인하고 있으면 (Cash hit) 바로 보내고 없으면 (Cash miss) 본 서버에 요청해서 받아오는 것.
동적 콘텐츠는 캐싱하기 까다로운 대상임
정적 콘텐츠는 캐싱하면 되는 정적 콘텐츠와는 달리 API 요청의 결과 같은 동적 콘텐츠는 캐싱해두기 까다로운 대상임
대표적인 CDN 업체로 Cloudflare나 Akamai, AWS의 CloudFront, Azure의 CDN 서비스처럼 여러 방법을 고안해서 동적 컨텐츠 전달속도를 높이는 곳들도 있음.
동적 콘텐츠를 바이트 단위로 분석해서 딱 바뀐 부분만 새로 받아오도록 해서 속도를 높이기도 하고, 서버에서 사용자까지 전달되는 경로를 최적화하기도 하고, 데이터를 압축하거나 핸드셰이크 등의 과정을 간소화하기도 함
또한, 동적 콘텐츠의 특성이나 필요에 따라서는 지정된 시간에 한해서 캐싱되도록 할 수도 있음
추가로 데이터가 캐시가 얼마나 남아있을지 사라지는 시간을 지정하는 값을 TTL(Time-To-Live)라고 함.
같은 사이트에서도 컨텐츠에 따라 TTL을 다양하게 설정할 수 있음. 좋은 CDN 서비스 일수록 다양한 기능을 제공함.
또한 CDN에 쓰는 비용이 본서버를 유지하는 비용보다 상대적으로 저렴함.
본 서버에 도달하는 비용보다, 각 지사에 도달하는 비용이 저렴하며 추가적으로 가용성과 안정성도 향상됨
3. 전송 속도와 대역폭
4. CDN의 역할
5. CDN의 보안성