✏️ CDN - Content Delivery Network
📍 CDN 의 필요성
CDN 없이 인터넷망 만으로도 온라인 서비스들이 동작 할수는 있다.
하지만 CDN 을 사용하지 않는다면
전 세계의 클라이언트로 부터 서버에게 쏟아지는 수 많은 요청들을 하나의 서버에서 감당해야 하고,
이를 소화하기 위해서 서버의 성능에 많은 투자를 해야한다.
또 멀리 떨어저있는 클라이언트일 수록 data 가 이동해야 할 거리가 길어지기 때문에 로딩시간이 더 많이 걸리게 된다.
📍 CDN 으로 문제 해결
- 웹 페이지, 이미지, 동영상 등의 컨텐츠를 서버에서 사용자에게 전송하는 것을 뜻한다.
- 수 많은 요청을 하나의 서버에 집중시키는 것이 아닌 여러곳으로 분산시키는 기술중 대표적인 기술이다.
- 같은 기능을 하는 서버 자체를 여러곳에 배치하는 것은
미러 사이트
라고한다.
- 대역폭 비용을 크게 절감할 수 있다.
- 대역폭이란 주어진 시간안에 얼마나 많은 data 를 응답할 수 있는가 이다.
- 네트워크의 성능을 체크하기 위해 전송속도와 대역폭을 확인해야 한다.
- 전송속도 : 도로의 제한속도
- 대역폭 : 도로의 넓이
- 과부하로 인한 오류의 위험도를 줄일 수 있다.
- CDN Edge 에 문제가 생길경우 다른 Edge 에서 처리할 수 있기 때문에 안정적이다.
- 기술적인 문제 뿐 아니라 ddos 등 외부의 공격으로부터도 안정적이다.
- CDN 에서 제공하는 보안 기술을 서버에서 사용할 수 있게된다.
- 개인정보 보안 기술 등급이 낮더라도 CDN 자체에서 제공하는 보안기술 등급이 높다면 이를 그대로 사용할 수 있게된다.
📍 CDN 의 원리
🔗 프록시 캐시
🔗 CDN 과 프록시 서버
- data 전송 경로
-
CDN 을 사용하지 않을경우 전세계의 모든 클라이언트들은 하나의 서버에 요청을 해야 한다.
서버 <-----------> 클라이언트
<-----------> 클라이언트
<-----------> 클라이언트
<-----------> 클라이언트
-
서버가 CDN 업체와 계약을 할경우 서버는 전세계 각지에 있는 CDN 업체의 Edge 와 의 통신만 하고 클라이언트는 자신의 위치에서 가장 빠르게 응답을 받을 수 있는 Edge 에 data 를 요청할 수 있게 된다.
- 세계 각지의 CDN 서버들을 Edge 라고 한다.
- 가장 빠르게 응답할 수 있다는 뜻은 가장 가까운 위치의 Edge 를 뜻하는 것이 아니다.
서버 <---> Edge 1 <---> 클라이언트
<---> 클라이언트
<---> Edge 2 <---> 클라이언트
<---> 클라이언트
- data 요청 원리
- 원래 서버의 자료를 전부 Edge 에 옮길경우 다양한 회사들과 계약하고 있는 Edge 는 저장공간이 너무 부족하게 되고,
클라이언트의 요청을 그대로 서버에게 다시 요청할 경우 단순히 중간에서 지켜보는 역할 밖에 할 수 없을것이다.
- Cache Hit - 정적 캐싱
- Edge 는 클라이언트의 요청이 올 경우 자체 서버에 요청받은 data 가 있는지 확인하고 있다면 그대로 클라이언트에게 응답한다.
- Cache Miss - 동적 캐싱
- data 가 없다면 서버에서 요청받은 data 를 가져와 클라이언트에게 응답하고,
케시에 기록된 기간동안 data 를 저장한다.
- 결국 요청하는 사람이 적을 수록 응답 속도가 느려지고,
많을수록 응답하는 속도가 빨라지게 된다.