Cloud/AWS

[AWS] Cloud Front

dhyuck 2021. 10. 5. 00:47
반응형

CDN

  • CDN(Content Delivery Network, Content Distribution Network)은 사용자와 물리적으로 가까운 곳에 캐시 서버를 운영하여 컨텐츠를 빠르게 전송하는 캐싱 기술 입니다.

  • 오리진 서버는 원본 컨텐츠 서버를 의미합니다.

  • 오리지 서버에 있는 컨텐츠를 분산된 캐시 서버에 저장하는 것을 캐싱이라고 합니다.

  • Request Routing : 사용자의 컨텐츠 Request에 대해, 최적의 Cache Server를 선택해주는 기능으로 CDN 망에는 이를 처리해주는 Request Router가 존재합니다.

  • CDN 캐싱 종류

    • Cache Hit : 캐시서버에 컨텐츠가 존재하는 경우 / Cache Miss : 캐시서버에 컨텐츠가 존재하지 않는 경우

    • Static Caching

      이미지, 자바스크립트, CSS와 같이 변경되지 않는 정적인 컨텐츠를 캐싱합니다.

    • Dynamic Caching

      동적인 컨텐츠는 정적 캐싱에 비해 Cache Hit는 높지 않지만, 동적 컨텐츠를 CDN을 통해서 배포하면 오리진 서버를 보호하고 사용자에게 보다 빠른 컨텐츠를 제공할 수 있습니다.


CloudFront

  • Cloud Front는 AWS의 CDN 서비스로 엣지 로케이션이라고 불리는 데이터 센터의 네트워크를 통해 컨텐츠를 전달합니다.

  • Distribution

    오리진과 엣지 로케이션 중간에서 컨텐츠 배포 역할을 수행하는 CloudFront의 독립적인 단위입니다.

    Distribution을 생성하면 xxxx.cloudfront.net 이라는 도메인이 생성되며, Route53과 연결하여 사용자가 원하는 도메인으로 CNAME 처리 할 수 있습니다.

    Distribution은 HTTP(S) 전용의 Web Distribution과 동영상 컨텐츠 전용의 RTMP Distribution으로 나누어집니다.

  • Edge Location

    오리진에서 Distribution을 통해 배포되는 컨텐츠를 캐싱하는 장치입니다.


CloudFront 설정

  1. S3 버킷 또는 사용자의 HTTP 서버와 같은 오리진 서버를 지정합니다. 오리진 서버는 객체의 최종 버전을 저장합니다.
  2. 오리진 서버에 파일을 업로드합니다. 객체라고도 불리는 파일은 웹페이지, 이미지 뿐만 아니라 HTTP를 통해 제공될 수 있는 모든 항목입니다.
  3. Distribution을 생성합니다. 이때 CloudFront가 사용자 요청에 의해 파일을 가져올 오리진 서버를 지정합니다.
  4. Distribution 생성을 완료하면 다음과 같은 도메인이 할당 됩니다. http://d1111111abcdef8.cloudfront.net
  5. Distribution의 설정을 모든 엣지 로케이션과 접속지점(Points Of Presence, POP)으로 보냅니다.

CloudFront의 동작 방식

  1. 사용자가 이미지 파일 또는 HTML 파일 요청합니다.

  2. DNS가 최적의 서비스를 제공 할 수 있는 엣지 로케이션으로 요청을 라우팅합니다.

  3. CF는 해당 캐시에 요청된 파일이 있는지 확인하여 파일이 있다면 전달하고, 파일이 없다면 다음을 수행합니다.

    1. CF는 오리진 서버에 사용자 요청을 전달합니다.

    2. 오리진 서버는 파일을 엣지 로케이션으로 전달합니다.

    3. 오리진으로 부터 첫번째 바이트가 도착하면 CF는 컨텐츠를 사용자에게 전달하기 시작합니다.

      이후 CF는 다음에 다른 사용자가 해당 파일을 요청할 때 엣지 로케이션의 캐시에 파일을 추가합니다.


CloudFront의 특징

  1. CF의 오리진으로 S3, EC2, ELB, 사용자의 HTTP 서버를 사용 할 수 있습니다.

  2. CF는 HTTP 또는 WebSocket 프로토콜을 사용해 전송할 수 있는 콘텐츠를 지원합니다.

  3. 지역 제한 기능을 사용하면 특정 국가의 사용자만 내 콘텐츠에 액세스하도록 지정할 수 있습니다. 또한, 특정 국가의 사용자가 내 콘텐츠에 액세스할 수 없도록 지정할 수도 있습니다.

  4. 서명된 URL과 서명된 쿠키를 사용하여 프라이빗 컨텐츠를 제공 할 수 있습니다.

  5. AWS 오리진(Amazon S3, Amazon EC2 등)을 사용 중인 경우 Amazon CF로 전송되는 AWS 데이터에 대해 전송 비용이 부과되지 않습니다.

  6. CF는 사용자 정의 오류메세지를 생성하여 반환하도록 할 수있습니다.

  7. CF에 캐싱된 파일은 기본적으로 24시간 이후에 자동으로 만료가 됩니다.

    CF는 파일이 만료 될 때까지 제공하고, 파일이 만료된 후에 CF가 해당 파일을 요청 받으면 CF는 이 요청을 오리진 서버로 전달하여 최신 버전의 파일이 있는지 확인합니다. 이때 오리진의 응답은 파일의 변경 여부에 따라 달라집니다.

    CF 캐시에 이미 최신 버전이 있다면 오리진은 304 Not Modified를 반환하고, CF 캐시에 최신 버전이 없다면 오리진은 200 OK와 최신 버전의 파일을 반환합니다.


반응형

'Cloud > AWS' 카테고리의 다른 글

[AWS] IAM  (0) 2021.10.13
[AWS/CLI] describe-route-tables  (0) 2021.10.07
[AWS] AWS Cli 설정하기  (0) 2021.09.03
[AWS] EC2 Windows 만들고 접속하기  (0) 2021.07.06
[AWS] EC2 Linux에 EBS 볼륨 추가  (0) 2021.07.04