# CDN

  • 콘텐츠 전송 네트워크(Content Delivery Network)를 의미하는 CDN은 전세계에 분산된 서버 네트워크를 의미하며 사용자와 물리적으로 가까운 위치에서 컨텐츠를 제공
  • 통신에 참여하는 호스트 간에 중간 서버를 두어 성능을 향상(서버 과부하 방지, 통신 지연 단축)
  • 대표적인 CDN 서비스로는 CloudFront, CloudFlare 등이 있음

# CDN에서 Push 방식과 Pull 방식의 차이점

# Push

  • 원본 서버가 콘텐츠를 미리 CDN 서버로 전달하는 방식
  • 적절한 시기에 정확한 콘텐츠 제공 가능하지만, 지속적으로 업데이트를 해줘야 하므로 관리 비용이 상대적으로 높음

# Pull

  • CDN 서버가 원본 서버로 요청을 보내 콘텐츠를 가져오는 방식
  • 클라이언트가 요청을 보내는 경우, CDN에 원하는 콘텐츠가 없다면 원본 서버로부터 콘텐츠를 가져와서 업데이트 하는 방식
  • 초기 요청에서는 원본 서버에서 콘텐츠를 가져오는 작업을 수행해야 하므로 응답 속도가 저하될 수 있음

# CDN을 사용시 고려해야 할 점

  • CDN 사용 시 비용, 만료 시간, CDN 장애 대응, 콘텐츠 무효화를 고려해야 함

# 비용

  • CDN은 주로 제 3 사업자에게 비용을 지불하고 사용하므로, 비용 대비 효과를 고려하여 도입해야 함
  • 성능 향상이 필요한 콘텐츠만 캐싱하는 등의 비용 절감 노력이 필요함

# 만료 시간

  • 콘텐츠의 만료 시간이 길다면 신선도가 떨어지며, 짧다면 원본 서버로의 요청이 빈번해짐

# CDN 장애 대응

  • CDN에서 콘텐츠를 응답할 수 없는 경우, 클라이언트에서 원본 서버로부터 직접 콘텐츠를 가져오도록 구성할 수 있음

# 콘텐츠 무효화

  • 오브젝트 버저닝을 사용하거나 CDN 서비스에서 제공되는 API를 사용할 수 있음