CDN (Contents Delivery Network)
정의
- CDN은 컨텐츠 전달 네트워크의 약자로 말 그대로, 컨텐츠를 전달하는 네트워크를 구성
- 웹사이트를 로딩할 때는 웹 서버에 HTTP 요청을 하여 리소스를 가져오지만 웹 서버가 아닌 현재 사용자가 접속한 위치에서 가장 가까운 서버에 리소스를 캐싱 빠르게 가져오는 기법
- 왼쪽 사진 : CDN 미사용
- 오른쪽 사진 : CDN 사용
동작원리
- 최초 요청은 서버로 부터 컨텐츠를 가져와 고객에게 전송과 동시에 CDN 캐싱 장비에 저장
- 최초 요청 이후 요청은 CDN에 지정한 해당 컨텐츠 만료 시점까지 캐싱된 컨텐츠 전송
- 자주 사용하는 페이지에 대해 캐싱, 호출이 없는 경우 주기적으로 삭제
- 서버가 파일을 찾는데 실패한 경우 CDN 플랫폼의 다른 서버에서 컨텐츠를 검색하여 엔드 유저에게 응답을 전송
- 컨텐츠를 사용할 수 없거나 오래된 경우 CDN은 향후 요청에 대해 응답 가능하도록 새로운 컨텐츠 저장
특징
- CDN 네트워크를 구축하기 위해선 해당되는 지역의 ISP(인터넷 제공업체, Internet Service Provider), 네트워크 사업자, 이동통신 사업자에게 서버의 호스팅 비용을 지불
- 네트워크를 구축하면 정적 리소스를 더욱 빠른 속도로 서비스 가능
장점
- 리소스를 캐싱, 로딩속도가 증가
- 1개의 웹서버에서만 리소스를 가져오지 않기 때문에 서버의 부하 감소
- 보통 1개의 도메인이 10개의 병렬연결을 허용, CDN을 사용하면 병렬연결 증가
단점
- 서버를 구축하는 높은 비용
- CDN를 막으면 리소스 로딩이 막힘
- 배포과정 복잡함 증가