메뉴

문서정보

AWS Cheat Sheet - Amazon CloudFront

목차

CDN

CDN(Content delivery Network)란 지리적으로 분산된 프락시 서버(proxy server)와 데이터센터로 구성된 분산 네트워크를 의미한다. CDN의 목표는 서비스를 지리적으로 분산하여 가용성과 성능을 높이는데 있다.

CDN은 인터넷이 사람과 기업을 위한 미션 크리티컬한 매체가 되는 1990년대 후반에 등장했다. 오늘날 CDN은 웹객체(텍스트, 이미지, 스크립트), 다운로드 가능한 파일(영상, 소프트웨어, 문서), 애플리케이션(전자상거래, 포털), 라이브 스트리밍, 주문형 스트리밍 등 다양한 영역에서 활용하고 있다.

CDN은 인터넷 생태계의 한 계층이며, 미디어회사와 전자 상거래 회사들은 최종 사용자에게 콘텐츠를 전달하기 위해서 CDN을 사용한다.

CDN 서비스는 특정 단체 혹은 기업이 무료 혹은 비용을 받고 제공한다.

특징

  1. 지역성(Locality)
  2. 다수의 복제본
  3. 레이턴시 최소화
CDN의 최종 목표는 "레이턴시의 최소화"이며, 이 목적을 달성하기 위해서 지역성과 다수의 복제본 특징을 구축한다.

CDN은 데이터를 소비하는 지역 근처에 스토리지를 배치함으로써 레이턴시를 최소화한다. 데이터를 소비하는 지역이 여러 개일 경우 다수의 복제본을 두는 것으로 소비자가 지역적으로 가까운 서버에서 데이터에 접근 할 수 있도록 한다.

구성요소

 CDN 구조

CDN은 각 지역에 파견나간 컨텐츠(데이터) 중계자라고 생각하면 된다.
  1. 컨텐츠 제공자 : CDN은 원본(Origin)의 중계자이다. 컨텐츠 제공자가 원본을 제공한다.
  2. 캐시서버 : CDN은 원본을 가지지 않는다. 원본에 대한 캐시를 가진다. 이 캐시에 원본을 복제한 컨텐츠를 저장한다.
  3. 원본(Origin) : 원본 컨텐츠
  4. 데이터 : 원본으로 부터 복제되어서 만들어진 서비스 데이터로 고객이 받아본다.
중계자라고 생각하면 하는 일은 간단하다.
  1. 권한/인증 : 데이터 원본 소유자임을 인증한다.
  2. Report : 컨텐츠 제공자에게 원본 컨텐츠를 요청한다.
  3. 컨텐츠 제공 : 컨텐츠 소비자가 컨텐츠를 요청하면 데이터를 제공(Delivery)한다.

기술

CDN은 지리적으로 분산된 여러 지역에 CND노드로 구성된다. 이들 CDN 노드는 인터넷 백본을 통해서 연결이 되며, 이를 통해서 고속으로 컨텐츠를 배포 한다. CDN의 이점은 레이턴시 개선, 컨텐츠의 글로벌 가용성 증가, 대역폭 비용 감소 등이 포함된다. CDN을 구성하는 노드와 서버의 수는 아키텍처에 따라 다르다. 보통 PoPs(points of presence)라고 불리는 원격 데이터센터에 수천에서 수만대의 노드로 구성된다.

컨텐츠 요청은 여러가지 알고리즘을 이용하여 최적의 노드로 전달되도록 한다. 가장 일반적인 알고리즘은 사용자와 가까운 위치의 노드에 접속 하도록 하는 것이다. 혹은 사용자의 위치에서 레이턴시가 가장 짧은 노드로 접속하도록 한다. 비용이 중요하다면 저렴한 위치를 선택하도록 할 수 있다.

대부분의 CDN 제공 업체는 미국, 글로벌, 아시아 태평양 등과 같이 원하는 지역에 전개된 PoP 세트를 통해서 서비스를 제공한다. 이러한 PoP 세트를 "애지", "에지 노드", "에지 서버", "에지 네트워크"라고 한다. 에지라고 하는 이유는 해당 CDN이 사용자로 부터 가장 가까운 에지가 되기 때문이다.

 Content Delivery Network Overview

Amazon CloudFront 소개

Amazon CloudFront는 개발자 친화적인 환경에서 짧은 지역 속도와 빠른 전송 속도로 데이터, 동영상, 애플리케이션 및 API를 전 세계 고객에게 안전하게 전송하도록 도와주는 고속의 CDN 서비스다.

CloudFront는 네트워크 및 애플리케이션 계층 DDoS 공격을 비로해 여러 유형의 공격으로부터 보호하기 위한 AWS Shield, AWS Web Application Firewall, Route 53과 완벽하게 통합되어 있으며, 필드 수준 암호화 및 HTTPS 를 포함한 대부분의 고급 보안 기능을 제공한다.

CloudFront는 Amazon S3, Amazon EC2, Elastic Load Balancing와 같은 AWS 서비스 혹은 사용자 지정 HTTP 서비스를 오리진으로 할 수 있다. 프로그래밍 가능한 엣지 컴퓨팅 기능은 AWS Lambda@Edge를 사용하여 CloudFront를 통해 컨텐츠 전송을 사용자 지정할 수 있다.

CloudFront를 이용한 컨텐츠 제공 방법

캐시 설정 과 가용성 최적화

CloudFront를 사용하는 목적 중 하나는 오리진 서버에서 직접 응답해야 하는 요청의 수를 줄이기 위함이다. CloudFront 캐싱을 사용하면 사용자에게 더 가까운 CloudFront 엣지 로케이션에서 더 많은 객체가 제공된다. 따라서 오리진 서버에 걸리는 부하가 줄어들고 지연시간이 단축된다.

 Origin Shield

CloudFront 모니터링 및 로깅

CloudFront와 보안

 필드레벨 암호화

규정 준수

제한