CDN

박지환·2022년 4월 19일
0

오늘의 코딩 공부!

목록 보기
1/7

CDN

Content Deliver Network

전 세계 사용자에게 지리적 제약 없이 콘텐츠를 빠르게 전송하는 기술이다.

미러서버처럼 서버 전체를 따라하는 게 아니라
컨텐츠 전달이라는 점에서만 지역적으로 분산하여 사용자가 더 빠르게 정보를 받을 수 있도록 한다

서버와 사용자 사이의 물리적인 거리를 줄이거나, 물리적인 거리는 조금 멀더라도 과부하가 적은 엣지를 통해 정보를 전송함으로써 콘텐츠 로딩에 소요되는 시간을 최소화한다.
DNS를 통해 지역을 식별한다.

본서버와 엣지(각 지역에 분산된 캐시 서버?)는 본사와 체인점 구조라고 볼 수 있다.
*엣지(Edge): 세계 각지의 서버

데이터를 전송하는 방법에는 정적 캐싱과 동적 캐싱이 있다.
동적 캐싱은 미리 엣지에게 데이터를 보내놓는 방법이며, 동영상 등 비교적 무거운 정보를 처리하는데 효율적이다. 반대로 동적 캐싱은 사용자가 요청할 때마다 요청하는 정보를 찾아서 전송한다. 비교적 가벼운 정보를 전송하는데 효율적이다.
정적 캐싱을 미리 본사에서 식재료를 받아두는 것이며, 동적 캐싱은 주문이 들어올 때마다 본사에 식재료를 요청하는 것이라고 볼 수 있다.

캐싱은 일정 시간 간격을 두고 정보를 업데이트하거나 데이트 변화를 감지해서 정보를 보내는 방법을 통해 최적화할 수 있다.
*TTL(Time-To-Live): 데이터가 캐시에 얼마나 남아있을지 지정하는 값

CDN을 사용하면 본서버 대역폭 비용 절감할 수 있다.
그리고 가용성과 안정성을 향상시킬 수 있다.
안정성이 향상되는 이유는 과부하될 확률이 줄어 오류 위험성이 감소하고, 여러 개의 엣지를 보유함으로써 엣지 중 몇몇이 문제가 생기더라도 대체가 가능하기 때문이다. 또한, DDos 공격을 방어하기 용이하고 컨텐츠의 암호화-인증에 효과적인 방식을 가지고 읶기 때문에 안정성에 도움을 준다.

대역폭: 차선 갯수
전송속도: 도로의 제한 속도

<얄팍한 코딩사전>
웹서비스에 필수! CDN이 뭔가요?」를 보고 정리한 글입니다.

profile
시작은 창대하나 끝은 미약하리라

0개의 댓글