grep

DevOps

TOAST CDN 소개(TOAST Service 들여다 보기)

NHN

2019년 8월 20일

원문에서 보기 ↗

CDN (Content Delivery Network) 이란?

CDN (Content Delivery Network)은 콘텐츠(이미지, 텍스트, 미디어 파일 등)를 최적화된 경로를 통해 전송할 수 있도록 전 세계적으로 분산된 서버로 이루어진 플랫폼입니다.

CDN을 사용하지 않으면 오리진(origin) 서버라 불리는 콘텐츠 서버는 모든 엔드유저의 요청을 처리해야 합니다. 오리진 서버는 예측할 수 없는 엔드유저의 요청을 처리해야 하므로 많은 트래픽이 유입되면 부하를 일으킬 수 있어 장애가 발생할 확률을 높입니다. 또, 엔드유저와 오리진 서버 사이의 품질이 보장되지 않은 네트워크를 통해 콘텐츠가 전송되므로 응답 품질을 보장할 수 없습니다.

CDN은 엔드유저와 오리진 서버 사이의 중재자 역할을 합니다.

엔드 유저의 콘텐츠 요청은 지리적 위치, 네트워크 품질 등을 고려하여 가장 최적화된 CDN 엣지 서버로 요청이 전달됩니다. CDN 엣지 서버는 엔드 유저를 대신하여 오리진 서버로 콘텐츠를 요청하고 응답을 저장(캐싱) 한 후 엔드유저에게 전송합니다. 이후 엣지서버는 캐싱된 콘텐츠가 있는 경우, 오리진 서버를 통하지 않고 바로 엔드유저의 콘텐츠 요청에 응답할 수 있습니다.

이를 통해 엔드 유저는 가장 최적화된 경로의 엣지 서버로부터 바로 콘텐츠를 빠르게 전송받을 수 있습니다. 또, 오리진 서버를 운영하는 콘텐츠 제공 업체는 CDN엣지 서버를 통해 엔드유저 요청에 응답함으로써 트래픽 부하를 줄여 오리진 서버의 가용성을 높일 수 있습니다. customer-letter-cdn.png

토스트 CDN 소개

토스트의 CDN을 이용하면 간단한 설정만으로 CDN 서비스를 사용할 수 있으며, CDN 서비스 관리를 위한 API를 제공합니다.

특징

CDN 서비스 생성

  1. 서비스 지역과 원본 서버(오리진 서버)를 입력하는 것만으로 CDN 서비스를 생성할 수 있습니다. 2.png
  1. [확인] 버튼을 클릭하여 CDN 서비스를 생성합니다.
  2. 약 10분 후 서비스 상태가 녹색(서비스 중)이 되면 CDN 서비스가 정상적으로 생성된 상태입니다. 서비스 생성 후 제공된 {random-service-name}.cdn.toastcloud.com 서비스 도메인은 엔드 포인트 도메인 주소로 사용됩니다.

CDN 추가 설정

캐시 설정

캐시 설정을 통해 엣지 서버가 오리진 서버의 콘텐츠를 얼마나 오래 캐시 할 것인지 TTL(초 단위) 설정을 할 수 있습니다. 기본적으로 엣지 서버는 오리진 서버의 캐시 설정을 이용합니다. 그러므로 토스트 클라우드 CDN을 통해 캐시 설정을 하고자 하는 경우, 오리진 서버의 캐시 설정은 제거해야 합니다.

리퍼러(referer) 헤더 접근 제어

리퍼러 헤더 접근 제어 설정을 통해 허용된 웹 페이지에서만 CDN 콘텐츠를 요청할 수 있도록 접근 제어를 할 수 있습니다. HTTP의 referer 요청 헤더는 현재 요청된 페이지의 이전 링크의 웹페이지 주소를 포함합니다. referer 헤더를 참조하여 접근을 허용 여부를 설정할 수 있습니다. 접근 정책은 화이트 리스트 방식과 블랙리스트 방식을 제공합니다.

캐시 재배포(Purge)

오리진 서버의 콘텐츠가 업데이트되어도 엣지 서버의 캐시된 콘텐츠는 설정된 TTL 시간 동안은 업데이트되지 않습니다. 그러므로 오리진 서버의 최신 콘텐츠를 엔드 유저에게 제공하고자 하는 경우 캐시 재배포(Purge) 기능을 통해 엣지 서버의 캐시를 무효화 해야 합니다. 캐시 재배포(Purge) 작업은 수 분 정도 시간이 소요됩니다.

캐시 재배포(Purge)는 총 3가지 타입이 제공됩니다.

[주의] 캐시 재배포(Purge)가 완료된 후에는 엣지 서버에 캐시된 콘텐츠가 없기 때문에 오리진 서버로 트래픽이 유입될 수 있습니다. [주의] 캐시 재배포(Purge)는 요청 타입에 따라 사용량 제한이 있습니다.

FAQ

  1. 캐시가 정상적으로 동작하고 있는지 확인하고 싶습니다.
  1. {random-service-name}.cdn.toastcloud.com 도메인이 아닌 제가 소유한 도메인을 통해 서비스 하고 싶습니다.
  1. 캐시 재배포(Purge) 진행률이 100%가 안 됩니다. 정상적으로 작업이 된 것인가요?