✏️ CDN - Content Delivery Network

📍 CDN 의 필요성

CDN 없이 인터넷망 만으로도 온라인 서비스들이 동작 할수는 있다.

하지만 CDN 을 사용하지 않는다면

전 세계의 클라이언트로 부터 서버에게 쏟아지는 수 많은 요청들을 하나의 서버에서 감당해야 하고,

이를 소화하기 위해서 서버의 성능에 많은 투자를 해야한다.


또 멀리 떨어저있는 클라이언트일 수록 data 가 이동해야 할 거리가 길어지기 때문에 로딩시간이 더 많이 걸리게 된다.


📍 CDN 으로 문제 해결

  • 웹 페이지, 이미지, 동영상 등의 컨텐츠를 서버에서 사용자에게 전송하는 것을 뜻한다.
    • 컨텐츠 전송에만 특화된 기능
  • 수 많은 요청을 하나의 서버에 집중시키는 것이 아닌 여러곳으로 분산시키는 기술중 대표적인 기술이다.
    • 같은 기능을 하는 서버 자체를 여러곳에 배치하는 것은 미러 사이트 라고한다.
      • 미러 사이트와 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 를 저장한다.
    • 결국 요청하는 사람이 적을 수록 응답 속도가 느려지고,
      많을수록 응답하는 속도가 빨라지게 된다.
profile
잘못된 내용 PR 환영

0개의 댓글