탕구리's 블로그

[AWS 파헤치기] #3 CloudFront(CDN)를 설정하자! 본문

AWS

[AWS 파헤치기] #3 CloudFront(CDN)를 설정하자!

탕구리당 2019. 3. 29. 19:35
반응형

시작하기 전에

해당 블로그에 작성되는 글은 주인장의 지극히 주관적인 생각이 다수이며, 대부분의 지식은 구글링을 통해 얻고 있기 때문에 옳지 않은 정보가 있습니다. 잘못된 부분이나 수정해야 하는 부분이 있다면 과감히 덧글을 남겨주세요! 모르는게 많은 새싹입니다

 

 

오늘의 주제

지난 포스팅에서 AWS CloudFront의 특징에 대해서 알아보았습니다. 까묵었다면 [AWS] - [AWS 파헤치기] #2 CloudFront(CDN)가 뭐야? 를 참고해주세요~ 이번 포스팅에서는 실제로 AWS Console을 통해서 CloudFront를 설정하고 배포하는 방법에 대해서 알아보도록 하겠습니다.

 

 

CloudFront  설정하기

 

1. CloudFront page 접근

화면 찾아가기

 

 

2. 전편에서 말했던  Web(HTTP통신)과 RTMP(스트리밍) 중 택1, 저는 Web 배포를 선택했습니다.

CloudFront 종류 선택하기

 

 

3. Origin Server에 대한 셋팅

오리진 서버 설정하기

- Origin server로 사용할 대상을 선택한다.

- Base path에 대한 설정이 가능하다

- Origin ID는 자동으로 생성된다.

- Restritct Bucket Access(S3에 CloudFront만 접근할 수 있도록 설정)를 활성화시키면 Origin Accesst Identity(오리진 접근 시 식별자)에 관련된 옵션들이 활성화되고 기존에 만들어 놓은 Identity를 사용하거나 새로 만들 수 있다.

 

- Grant Read Permisssion on Bucket : Origin Bucket에 대해서 Permission Policy를 수정할 것 인지 설정, 바로 업데이트 시 CloudFront만 접근이 가능해지는 상태가 된다.

 

- Custom Origin Headers : default로 추가해줄 Header 값을 설정해주는 부분

 

 

4. 캐시 정책 설정(default cache Behavior Settings)

캐시 동작 설정하기

- Viewer Protocol Policy : 사용하실 프로토콜에 대해서 설정해주시면 됩니다.

- Allowed HTTP Methods : 어떤 HTTP medthod에 대해서 허용할지 선택

- Cache Based on Selected Request Header : Origin Setting시 설정해준 Header값을 기반으로 오브젝트 캐싱에 대한 여부를 지정

  * None : CloudFront가 헤더 값을 기반으로 객체를 캐시 하지 않는다.

  * WhiteList : CloudFront가 지정된 헤더의 값만을 기반으로 객체를 캐시 하도로 설정

  * All : 캐싱 기능을 사용하지 않고 모든 요청을 Origin에게 전송합니다.

 

- Object Caching

  * Use Origin Cache Headers :  오리진에서 Cache-Control을 관리하여 CloudFront 시간의 캐시 유지 시간을 관리

  * Customize : 오리진의 Cache-Control을 사용하는 게 아닌 사용자 설정을 통해 오브젝트의 캐시 관련 시간을 지정합니다.

 

- Minimum TTL : 오리진으로 요청이 전달되기 전에 Cloudfront캐시에 머무르는 최소 시간

- Maximum TTL : 오리진으로 요청이 전달되기 전에 Cloudfront캐시에 머무르는 최대 시간, 특정 HTTP 헤더(Cache-Control, max-age...)가 존재할 경우에만 작동합니다.

 

- Default TTL : 오리진으로 요청이 전달되기 전에 Cloudfront캐시에 머무르는 기본시간 (24시간 1일)

- Forward Cookies : 오리진으로의 쿠키 정보 포워딩에 관한 설정, 오리진에는 쿠키를 처리하지 않기 때문에  쿠키를 전달하는 경우 가능성이 줄어든다

 

- QueryString Forwarding and Caching : 쿼리 스트링을 통해 각각의 컨텐츠를 버전별로 관리할 수 있습니다.

- QueryString whiteList : 쿼리스트링 포워딩 시 오리진으로 전달할 쿠키 정보의 필터링 역할을 합니다.

 

 

5. 배포 정보 설정(Distribution Settings)

배포 설정하기

- Price Class : 어느 지역 범위까지의 Edge Node를 사용할 건지 선택합니다. 넓은 범위를 사용할수록 전 세계 사용자한테 콘텐츠 제공에 유리하겠죠?

 

- AWS WAF 웹 ACL : 원하지 않는 요청에 대한 방화벽을 설정할 수 있습니다. 방화벽에 의해 거절된 요청을 HTTP Status 403(Forbidden)을 응답받습니다.

 

- Alternate Domain Names(CNAMEs) : CloudFront 생성 시  할당받는 도메인 이름 대신 객체의 URL에 사용할 하나 이상의 도메인 이름을 지정합니다.

 

- SSL 인증서 : HTTPS를 사용하여 객체에 접근하는 경우 인증서를 등록해야 합니다. 

  *Default CloudFront Certificte : 기본적으로 CloudFront에서 제공하는 인증서 사용

  *Custom SSL Certificate : 사용자 지정 SSL 인증서를 사용, 개인 소유의 SSL 인증서나 ACM을 통해 발급받은  SSL 인증서를 사용

- Supported HTTTP Versions : 사용자와 CloudFront 간 사용할 HTTP version을 선택합니다.

- Default Root Object : 특정 객체가 아닌 배포 URL을 요청할 때 CloudFront가 Origin에 요청할 객체 정보입니다.

  * ex) http://www.example.com/ 로 요청을 보낸 경우 오리진에서는 (예: index.html) 지정된 객체를 응답합니다. 

 

6. 결과 확인

결과 확인하기

CloudFront 배포를 통해 콘텐츠에 대한 요청을 발생했을 때, 개발자 도구를 통해 헤더를 확인했을 때 X-Cache라는 항목을 확인할 수 있으며 CloudFront 캐시에 적중했다는 사실이 확인 가능합니다.

 

 

이렇게 두 개의 포스팅을 통해 CloudFront의 특징과 설정 방법에 대해서 알아보았습니다. 부족한 설명이지만 끝까지 읽어주신 분들이 계시다면 정말 감사합니다 :)

 

 

반응형
Comments