[AWS] CloudFront

haryun_209·2022년 11월 3일
0

AWS

목록 보기
8/10
post-thumbnail

CloudFront

Amazon CloudFront는 .html, .css, .js 및 이미지 파일과 같은 정적 및 동적 웹 콘텐츠를 사용자에게 더 빨리 배포하도록 지원하는 웹 서비스입니다. CloudFront는 엣지 로케이션이라고 하는 데이터 센터의 전 세계 네트워크를 통해 콘텐츠를 제공합니다. CloudFront를 통해 서비스하는 콘텐츠를 사용자가 요청하면 지연 시간이 가장 낮은 엣지 로케이션으로 요청이 라우팅되므로 가능한 최고의 성능으로 콘텐츠가 제공됩니다.
AWS

CloudFront는 AWS에서 제공하는 CDN 기능이다.
CDN(Contents Delivery Network)이란 지리적으로 서버를 분산시켜 사용자가 요청한 컨텐츠를 가까운 위치의 서버에서 전송함으로써 컨텐츠 제공 속도를 향상시키는 것을 의미한다.

  • CDN 기술의 서버는 원본 컨텐츠를 가지고 있는 오리진 서버와 분산된 위치에 존재하는 캐시 서버로 나누어진다.
  • 오리진 서버는 캐시 서버로 컨텐츠를 분산하여 저장한다. (이를 캐싱이라고 함)
  • 사용자가 요청한 컨텐츠가 캐시 서버에 없는 경우 Cache Miss 상태가 되어 오리진 서버로 컨텐츠를 요청한다. (존재한다면 Cache Hit 상태)
  • 캐싱 방식은 정적 캐싱과 동적 캐싱으로 구분된다.

1. CloudFront 기능

  • 글로벌 엣지 네트워크
  • 정적/동적 컨텐츠 전송
  • 장애 조치
  • SSL 지원
  • 인증 url과 쿠키를 통한 인증과 접근제어

2. CloudFront 사용하기

1) 국외 리전에 환경을 구성한다

  • VPC, Public subnet/routing table, Internet Gateway, Public EC2 Instance(HTTP), Security group(SSH, HTTP)

CloudFront 확인을 위해 상파울루 리전에 환경을 구성하였다.

2) 레코드 추가

Route 53 레코드에 새로운 단순라우팅 레코드를 추가하여 EC2 인스턴스와 연결한 뒤 도메인에 접속하여 지연시간을 확인한다.

웹에 대용량 이미지를 첨부하였기때문에 시간이 오래걸리는 것을 확인할 수 있다. 반복적으로 시도해본 결과 34~37s 정도 걸리는 듯 하다.

3) CloudFront 배포 생성

CloudFront에서 새로운 배포를 생성한다. 모든 엣지 로케이션에 컨텐츠를 배포하고, EC2 인스턴스의 퍼블릭 DNS 주소를 연결하여 지정한다.

배포시 도메인 검증을 위해 연결하고자 하는 도메인의 인증서가 필요하다. 버지니아 리전의 Certification Manager 대시보드에서 발급이 가능하고, 발급한 인증서는 Route 53에 새로운 레코드로 지정해야 검증이 정상적으로 진행된다. (그런데 이 도메인 검증 절차가 생각보다 오래 걸린다,,,)

배포도 5분~10분 정도 기다리니 완료되었다.

4) 대체 도메인에대한 레코드 생성

Route 53에서 cdn.haryun.tk로 새로운 레코드를 정의한다.

5) 검증

모든 설정이 끝났으니 검증을 진행한다. cdn.haryun.tk로 접속한다.
36.88s -> 946ms로 지연시간이 확연히 줄었다!
해당 이미지의 헤더를 확인해보면 'Hit from cloudfront'라고 적혀있음을 확인할 수 있다. 클라우드프론트의 엣지 로케이션에 사용자가 요청한 컨텐츠가 존재한다는 의미이다.

0개의 댓글