진짜 개발자
본문 바로가기

AWS/Networking & CDN

AWS - CloudFront이용 하여 S3 웹사이트 배포

728x90

CloudFront이용 하여 S3 웹사이트 배포

CloudFront란?

http://galid1.tistory.com/355



1. S3를 이용한 정적 웹사이트 구축

- http://galid1.tistory.com/357


- 중요한 점은 객체에 Public 접근이 가능해야한다


2. CloudFront 이용하여 S3 웹사이트 배포

1. CloudFront서비스의 좌측의 Distributions탭을 클릭한뒤 Create Distribution을 클릭하여 

  Distribution을 생성한다


2. Web 배포를 위해 Web단의 Get Started를 클릭한다

   

3. OriginSettings

- OriginSettings에 나오는 내용은 Origin Domain Name(배포대상)에 따라 달라진다

  아래의 OriginSettings의 내용은 S3를 OriginDomainName으로 선택했을때의 항목들이다  

 


1) Origin Domain Name : S3의 정적웹사이트 EndPoint를 입력한다

2) Origin Path : 비워둔다 (특정 경로로 라우팅 하고 싶은경우 작성한다)

3) Origin ID : Default값으로 둔다

4) Restrict Bucket Access : 사용자들이 CloudFront를 통해서만 웹사이트에 접근 가능하도록 하려면 다음을 Yes로 한다

    즉, Bucket를 통해서는 접근을 불가능하도록 하게 한다.

5) Origin Custom Headers : 비워둔다 


4. Default Cache Behavior Settings

1) Path Pattern : Default(*) CloudFront에 도착하는 모든 요청을 S3에 전달한다

2) Viewr Protocol Policy : HTTP 그리고 HTTPS로 접속이 가능하게 한다

3) Allowed HTTP Methods : GET, HEAD Method로 오는 HTTP 요청에 대해서만 응답

4) Field-level Encryption Config : default

5) Cached HTTP Methods : GET, HEAD 만 Caching 함

6) Cache Based on Selected Request Headers : Caching할 대상을 Header로 구분하여 지정한다

   White-list로 지정하는 경우 특정 Header만을 지정하여 Caching함

7) Object Caching :  Use Origin Cache Headers

8) Forward Cookies : - 

9) Query String Forwarding and Caching : - 

10) Smooth Streaming : Smooth streaming을 체크할시 Origin Server가 IIS인 경우 지원이 되지 않는다

11) Restrict Viewer Access :  인가된 사용자의 접근만을 허용한다

12) Compress Objects Automatically : 자동 압축

13) Lambda Function Associations : 람다와의 연동설정 부분


5. Distribution Settings

1) Price Class : 배포에 사용될 CloudFront의 클래스를 선택한다

All Edge Location이 당연히 가장 성능이 좋고 다른클래스들은 특정 지역에 배포시 Latency가 발생한다

2) AWS WAF Web ACL : CloudFront(Edge Loacation)에 대한 방화벽 역할 설정

3) Altername Domain Names(CNAMEs) : Cloud Front 의 DomainName에 대한 별칭설정이다

   Route53에 별도의 레코드 등록이 필요하다

4) SSL Certificate : 

5) Supported HTTP Versions : 지원할 HTTP 버젼

6) Default Root Object : Root Directory에 접근하기 위한 별도의 경로 지정시 설정

7) Logging : 로그

8) Enable IPv6 : IPv6에 대한 접근 허용

9) Comment : 남길말

10) Distribution State : enable


3. Access Denied


Access Denied 해결방법(AWS Docs) 

https://aws.amazon.com/ko/premiumsupport/knowledge-center/s3-website-cloudfront-error-403/



4. CloudFront에 접근

1. CloudFront 생성이 완료된뒤 ClodFront를 클릭하면 Domain Name을 알 수 있다 복사를 한다


2. 브라우저에 입력하면 정상적으로 접근이 되는 것을 볼 수 있다.