CDN

On a regular basis·2021년 12월 6일
0

회사에 CDN 업체 분들이 오셨다가 가셨다. 너무 궁금해서 여쭤봤는데... 설명해주셨는데.... 못알아들어서...^^
공부해보는 CDN!!!!

CDN(Contents Delivery Network)이란?

서버에서 멀리 떨어져있는 사용자에게 컨텐츠를 더 빠르게 제공할 수 있는 기술로써 서버 자체를 여러곳에 두고 이용자가 요청했을 때 제일 근접한 서버에서 처리함으로써 지연되는 시간을 줄여준다. 이 과정에서 여러곳에 캐시 서버를 분산해서 한개의 서버가 죽더라도 다른 서버에서 서비스 제공을 할 수 있다.

CDN을 사용할 경우 서버의 트래픽 부하 및 비용을 줄이고 사용자에게 빠른 서비스 제공도 가능하다.

내가 일하는 곳의 경우에는 동영상과 이미지 데이터들을 CDN 업체에 맡기고 있다고 한다. 아예 이 서버 자체를 CDN 업체에 맡겨버리고 트래픽의 스트레스로 부터 해방되는 것이다!! 꿀 😇

CDN을 사용하지 않을 경우 콘텐츠를 제공하는 서버들은 모든 사용자의 요청에 일일이 응답해야한다. 이는 막대한 트래픽을 유발하고, 트래픽이 과도하게 증하거나 부하가 끊임없이 들어오는 경우 장애가 발생할 확률도 크다.

CDN의 작동원리

사용자가 웹 사이트에 액세스

가까운 최적 CDN 노드로 전송

(case1: 해당 CDN 노드에 캐싱된 데이터)
해당 노드에서 사용자에게 제공

(case2: 캐싱되지 않은 데이터)
1. 해당 노드가 원본 서버로 요청하여 데이터를 가져온 뒤 사용자에게 제공
2. 향후 요청을 위해 해당 데이터 캐싱

원칙적으로 특정 콘텐츠를 처음 요청하는 사용자에게만 지연이 발생하고 이 콘텐츠를 나중에 요청하는 사용자는 원본 서버를 거칠 필요없이 CDN노드에서 콘텐츠를 제공받기 때문에 해당 콘텐츠에 더 빨리 접근할 수 있다.
콘텐츠 캐시 설정에 따라 콘텐츠가 오래되어 만료된 경우 CDN노드에서 콘텐츠를 다시 가져와야 하기도 한다.

CDN 캐싱 방식

캐싱이란 오리진 서버에 저장된 콘텐츠를 지역적으로 분산된 캐시 서버로 저장하는 것! 캐시 서버에 콘텐츠를 갖고 있으면 Cache hit, 그렇지 않으면 Cache Miss.

  • 정적 캐싱(Static Caching)
    이미지 파일, js, css 등과 같이 변경되지 않는 정적인 콘텐츠 캐싱.

  • 동적 캐싱(Dynamic Caching)
    사용자의 요청이나 데이터 정보를 기반으로 즉석에서 생성되는 동적 콘텐츠의 경우 캐싱하더라도 cache hit율이 낮아 캐싱의 이점을 갖긴 어려우나 TTL을 설정하여 오리진 서버 간의 빠른 통신 가능.

참고1: https://velog.io/@boh001/%EA%B0%9C%EB%B0%9C%EC%83%81%EC%8B%9D-1
참고2:
https://velog.io/@mygomi/TIL-91-CDN

profile
개발 기록

0개의 댓글