CDN이란?

CDN은 곳곳에 분산되어 있는 서버 그룹을 말한다. 이를 작동 시켜 인터넷 콘텐츠를 빠르게 전달할 수 있는 서비스를 말합니다. CDN을 사용하면 HTML 페이지, JS 파일, css, 이미지 및 비디오를 비롯한 인터넷 콘텐츠로드에 필요한 것을 신속하게 전송할 수 있습니다.

사용자 입장에서 가장 가까운 곳에서 컨텐츠를 받게해주는 서비스

Amazon CloudFront란?

Amazon CloudFront는 비즈니스 및 웹 애플리케이션 개발자에게 짧은 지연 시간과 빠른 데이터 전송 속도를 사용하여 콘텐츠를 간편하고 비용 효율적으로 배포할 방법을 제공합니다.

CloudFront를 사용하면 엣지 로케이션의 글로벌 네트워크를 사용해 최종 사용자에게 파일이 전송됩니다.

CDN은 원본서버가 중요하다. 원본서버의 컨텐츠를 각 나라에의 서버로 배포해주는 서비스이다.

  • 엣지 로케이션 = 컨텐츠가 캐쉬될 지역 (캐쉬: 미리 가져와 있는 것)
    • 엣지 로케이션은 READ only가 아니고 쓸수도 있다
    • 객체는 TTL의 수명동안 캐시된다
    • 캐쉬된 객체를 지울 수 있는데 돈이 든다.
  • 원본(origin) = CDN이 분산 시킬 파일의 원본. S3버켓, EC2 인스턴스, ELB, Route53 이 될 수 있다.
  • 분산(distribution) = CDN에 주어진 이름이다. 엣지 로케이션의 모음으로 구성되어있다.
    • Web Distribution - 전형적으로 Websites에서 사용된다 (정적인 컨텐츠)
    • RTMP - 미디어 스트리밍에서 사용된다 (동영상 컨텐츠 프로토콜)

하나의 distribution에 여러개의 origin이 존재할 수 있다.

같은 distribution의 다수의 origin사이에서 구별하기 위해서 origin ID 값이 필요하다.

각 origin의 설명은 distribution안에서 유니크해야한다.

CDN

사용자가 요청을 하면 일단 지역에 있는 데이터 센터에 연결 된다. 데이터 센터에서 다시 uk에 있는 s3로 연결이 된다. 데이터 센터에서 받아온 것을 캐시한다. 두번째 사용자(초록색 화살표)는 이미 데이터 센터에 캐쉬가 남아있기 때문에 바로 볼 수 있다.

URLs VS Cookies

CloudFront 서명된 URL또는 서명된 쿠키 사용

  1. 서명된 URL은 개별 파일 1file = 1URL
  2. 서명된 쿠키는 다중 파일 1cookie = multiple files

서명된 URL 이나 서명된 쿠키를 생성할 때, 정책을 붙혀야한다

정책에 포함된 것 :

  • URL만료
  • IP 범위
  • 신뢰할 수 있는 서명자 (서명 된 URL을 생성 할 수있는 AWS 계정)

CloudFront Signed URL

  • 다른 오리진을 가질 수 있다. EC2일 필요 없다
  • 캐싱 특징을 활용할수 있다.
  • key-pair은 계정 전체이며 루트 사용자가 관리한다.
  • 날짜, 경로, IP 주소, 만료 등으로 필터링할 수 있다.

S3 Signed URL

  • 미리 서명된 URL을 생성하는 IAM 사용자로 요청을 보낸다
  • 제한된 lifetime

S3 signed URL은 S3 버킷에 접근이 가능하고 CloudFront Signed URL은 S3 버킷에 가능하지 않다.

  • 승인한 사람만 액세스할 수 있도록 콘텐츠를 보호하려면 서명된 URL/쿠키를 사용한다
  • 서명된 URL은 개별 파일 1file = 1URL
  • 서명된 쿠키는 다중 파일 1cookie = multiple files
  • 오리진이 EC2이면, CloudFront를 사용한다