- S3 정적 웹 사이트 호스팅은 리다이렉트 시 https를 지원안함
- HTTPS를 사용하려면 CloudFront 를 사용해야함

 

//============

* CloudFront 의 문제
    - 파일을 지워도 한동안 계속 보임
    - 업로드 해도 바로 반영이 안됨
            - 게시판에 맞지 않음

                - 해결책 : 일단 s3의 풀주소로 올린후, 시간이 지난다음에 CloudFront의 리다이렉트 주소로 링크를 변경하는 꼼수



     - S3의 사이트 인증 설정이 적용안됨  <-- 결정적인 문제

 


//====================

// 적용 방법


1) CloudFront 콘솔
https://console.aws.amazon.com/cloudfront/home (한국어 지원안됨)
Create Distribution 선택
-> Web : Get Strated 버튼
Origin Domain Name : S3 버킷 선택

-> 일단 Create Distribution 버튼 선택
- Alternate Domain Names (CNAMEs)은 잠시 후에 수정으로 설정

설정후 20분 가량 걸림 
CloudFront 콘솔
Distribution Status 상태에 In Progress 가 사라지고 Deployed로 바뀔때까지 기다린다.


//=======================
2) Route53 에서 CNAME 추가
cf.example.com  (예시 도메인)
Alias = NO
xxx.cloudfront.net

- 이전에 S3 연결을 대체하는 것이라면 S3 주소대신 CloudFront 주소를 적는다.


3) 인증서 생성
- CloudFront 에서 생성한 서비스 수정
- CloudFront Distributionst 선택 -> Edit

- 인증서 추가
Custom SSL Certificate (example.com): 를 선택하기 위해서는 인증서 필요

- 인증서 관리자(Certificate Manager) 에서 이미 필요한 인증서가 생성되어 있는지 확인 https://console.aws.amazon.com/acm/home?region=us-east-1#/
인증서는 버지니아 북부(us-east-1) 리전에 있는것만 가능

Request or Import a Certificate with ACM 버튼 클릭

인증서 요청
도메인 이름 추가 
*.example.com 으로 * (와일드 카드) 문자를 사용가능
'이 인증서에 다른 이름 추가' 버튼을 누르면 여러 도메인을 추가할수 있다


과정을 끝낸후 Route 53 에서 설정 버튼
- Route 53 에 자동으로 추가됨

인증서 관리자에서 해당 도메인의 상태가 '발급 완료'로 나올때 까지 기다림(5분?)


4) Alternate Domain Names (CNAMEs) 추가
- CloudFront 에서 생성한 서비스 수정 다시 시도
Alternate Domain Names (CNAMEs) 에 cf.example.com 입력하고 맨 아래 'Yes, Edit'를 누르면
- 에러 메시지가 나오지만, 정보가 갱신된다.
Custom SSL Certificate (example.com): 를 체크 가능

아래칸의 인증서 입력란 : 리스트 중 선택 하거나 인증서 ARN을 직접 적는다.
인증서 ARN은 인증서 관리자에서 확인 가능
https://console.aws.amazon.com/acm/home?region=us-east-1#/


5) CloudFront 콘솔 에서 대기
Distribution Status 상태에 In Progress 가 사라지고 Deployed로 바뀔때까지 기다린다. (30분?)


6) 확인
https://cf.example.com 로 접속하면 에러 발생
S3 버킷에 파일을 업로드 하고 퍼블릭으로 설정
해당 링크에서 도메인 부분을 설정한 도메인으로 변경해서 접속 시도
https://cf.example.com/folder/pub.txt

 


//===================
// 참고

https://docs.aws.amazon.com/ko_kr/AmazonS3/latest/dev/WebsiteHosting.html
Amazon S3 웹사이트 엔드포인트는 HTTPS를 지원하지 않습니다

CloudFront를 사용하여 Amazon S3 버킷에 대한 HTTPS 요청을 처리하려면 어떻게 해야 합니까?
https://aws.amazon.com/ko/premiumsupport/knowledge-center/cloudfront-https-requests-s3/




//==========================
* 한 CloudFront 에 여러 도메인 연결 방법
- Alternate Domain Names (CNAMEs) 도메인 추가 방법

 CloudFront 콘솔 -> Distributions 선택 -> edit
Alternate Domain Names(CNAMEs) 의 새로운 행에 도메인 이름 추가

Custom SSL Certificate (example.com): 아래 입력란에 인증서 ARN 직접 입력
인증서 ARN은 인증서 관리자에서 확인 가능 
인증서는 추가한 도메인까지 인증을 포함하고 있어야 한다.

반응형
Posted by codens