S3는 기본적으로 HTTP만 지원한다.
정적 컨텐츠로 사용한 S3 Web서버를 HTTPS 통신을 하기 위해서는 Cloudfront를 등록하여 사용해야 한다.
그 이후 Route53 도메인을 Cloudfront로 등록해주면 된다.
1) 버즈니아북부에서 ACM 생성
1) ACM 생성
2) Cloudfront 생성
1) CloudFront 생성 클릭
2) Origin domain = 해당 S3 선택
3) Viewer protocol policy "Redirect HTTP to HTTPS" 선택
4) Allowed HTTP methods "GET, HEAD, OPTIONS, PUT, POST, PATCH, DELETE" 선택 #필자는 Post 사용
5) Cache policy "CachingOptimized" 선택
6) Alternate domain name (CNAME) - optional = "사용할 도메인 명 입력"
7) Custom SSL certificate - optional = "버즈니아 북부에서 만든 ACM 적용"
2-1) Cloudfront 수정
생성 이후 정상 작동을 위해서는 몇가지 수정해줘야 한다.
1) Cloudfront 클릭 - Origins
2) Create Origin
3) S3 접속 - "Properties" - "Static website hosting" - 여기의 S3주소 전체 복사
4) 다시 Create Origin으로 돌아와서 - Origin domain에 S3 주소 붙여넣기
5) 생성
3) S3 정책 추가
1) 정적 컨텐츠로 사용하는 S3 Permission 클릭 후 다음을 추가
{
"Sid": "AllowCloudFrontServicePrincipal",
"Effect": "Allow",
"Principal": {
"Service": "cloudfront.amazonaws.com"
},
"Action": "s3:GetObject",
"Resource": "s3 주소/*",
"Condition": {
"StringEquals": {
"AWS:SourceArn": "Cloudfront 명"
}
}
}
4) Route53 도메인에 Cloudfront 등록하기
1) 해당 hosting 영역 - "Create 레이블"
2) "A type"
3) Alias 켜고 - Alias to CloudFront distribution
4) 생성한 CloudFront 선택
완료!