99클럽 32일차 TIL: CDN

2024. 5. 5. 14:17개발 공부

728x90
반응형

#1. 오늘의 학습 키워드

CDN 에 대해

  • 전에 개발 중인 API 서버에 cache 를 도입하려 Spring 에서 사용 가능한 cache 종류들을 비교하고, 적용하는 글을 포스팅한 적이 있었다.
  • 이번에는 캐시와 그와 관련된 개념들에 관해서 개념적으로 접근하여 공부를 해보겠다.
    • 우선, CDN에 관해 알아보자

#2. 공부한 내용

1. CDN

- 사용자의 지리적 위치, 브라우자 출처 및 컨텐츠 전달 서버를 기반으로,
페이지 및 기타 웹 컨텐츠를 사용자에게 전달하는 분산 서버 시스템이다.
  • Contents Delivery Network의 약자
    • 콘텐츠 전달 네트워크
  • 즉 쉽게 말하면, 전세계 곳곳에 사용자가, 똑같은 서비스를 이용하기 위해 같은 위치에 있는 서버를 접근하는 것이 아니라, 각자에게 지리적 위치로 좀 더 가까운 서버로 접근하여 빠르게 컨텐츠를 전달 받기 위해 CDN 이 존재한다.
    • CDN은 전세계적으로 분산 된 네트워크다.
    • 본래 단일 서버에서 제공되는 컨텐츠들은, CDN 전체에 복제가 된다.
      • 따라서 여러 위치에 동시에 존재함.
    • 해당 방식을 통해, CDN 은 클라이언트의 컨텐츠로의 접근 속도를 향상시킬 뿐만 아니라, 서버 측으로 몰리는 트래픽을 감소 시켜, 양측 모두에게 성능을 향상 시켜준다.
  • 실제로 우리는 CDN과 빈번히 상호 작용을 한다.
  • 그러나 원래 서버의 정보와 CDN 의 정보가 동일하여, 사용자로 하여금 자신의 요청이 원본 서버로 접근하는 지, CDN으로 접근하는 지 모르게 하려면 서버와 CDN 간 동기화 작업은 매번 일어나야된다.

1) CDN 작동 방식

  1. CDN 은 콘텐츠의 복제본을 여러 위치(PoP, Point Of Presence) 에 저장
  2. 사용자는 지리적으로 가장 가까운 PoP 의 캐싱 서버로 요청.
  3. CDN은 웹 사이트의 페이지를 지리적으로 서로 다른 위치에 분산 되어있는 서버 네트워크에 복사하여, 페이지 컨텐츠를 캐싱한다.
  4. 사용자는 CDN의 일부인 웹 페이지를 요청할 때, CDN은 원본 서버에서 사용자에 가장 지리적으로 가까운 CDN 의 서버로 요청을 보내고, 캐시된 컨텐츠를 사용자에게 전달.

2) 장점

  • 성능 향상
    • 사용자가 더 지리적으로 가까운 캐싱 서버로 접근하여 응답 속도 향상
  • 고가용성
    • 분산된 서버 네트워크 사용으로 인한 원본 서버 측 트래픽이 해소되어, 서버 장애 및 과부하로 인한 서비스 중단을 방지할 수 있다.
  • 보안 강화
    • CDN은 보안 기능을 제공하여, 여러 보안 위협으로부터 웹 사이트를 보호할 수 있다.


#3. 오늘의 회고

  • 정리:
    • CDN은 지리적 위치에 따라 사용자에게 더 빠르게 컨텐츠를 전달하기 위한 분산 서버 시스템이다.
    • 실생활에서 우리는 우리도 모른채 항상 CDN과 상호작용을 하고 있었다.
    • 그만큼 효과적으로 우리의 콘텐츠로의 빠른 접근의 니즈를 만족 시키는 우수한 캐싱 기법이라고 볼 수 있겠다.
728x90
반응형