-
Route53 + CloudFront + S3 정적 웹 호스팅AWS/Hands-on 2023. 7. 21. 17:53
이전 포스팅에서 Route53 + API Gateway + S3 웹을 연결하여 https 를 사용한 사용자 지정 도메인으로 웹을 호출해보았다. 근데 S3 웹에서 https 를 사용하는 방법은 API Gateway가 아닌 Cloudfront 를 사용하는것이 문서가 많이 나오는데 위의 방법을 사용했던 이유는 Cloudfront 비용 때문에 다른 방법이 없을까하다가 찾게 된 방법이었다.
👇 이전 글!
Route53 + API Gateway + S3 정적 웹 호스팅
S3에서는 웹 사이트에 대한 HTTPS 액세스를 지원하지 않기 때문에 HTTPS 를 사용하기 위해서는 API Gateway 또는 Cloudfront를 앞에 붙여서 사용해야한다. 이번에는 S3 앞에 API Gateway를 붙여서 HTTPS 로 접근
yentech.tistory.com
하지만 API Gateway는 최대 페이로드가 정해져있어서 만약 S3 웹에서 동영상 스트리밍이 필요하다면 Cloudfront를 사용해야한다. 또 이전 포스팅에서는 S3의 퍼블릭 액세스 차단을 비활성화하여 웹을 생성했는데 네 개의 퍼블릭 액세스 차단 설정을 모두 활성화하여 정적 웹 사이트를 호스팅하려는 경우에도 CloudFront의 원본 액세스 제어(OAC)를 사용하면 된다고 한다.
CloudFront가 안전한 정적 웹 사이트를 설정하는 데 필요한 기능을 제공하기 때문에 S3 정적 웹 호스팅시에는 API Gateway보다 CloudFront가 더 어울릴듯하다.
👇 S3 정적 웹 생성 글 참고!
[1] Route53 + API Gateway + S3 정적 웹 호스팅
S3를 이용한 정적 웹 사이트를 구성하고 Route53으로 도메인 연결을 해보려고 한다. 근데 S3에서는 웹 사이트에 대한 HTTPS 액세스를 지원하지 않기 때문에 HTTPS 를 사용하기 위해서는 API Gateway 또는 C
yentech.tistory.com
🔧 CloudFront 배포 생성
CloudFront 콘솔로 들어가서 배포 생성을 시작한다.
원본 도메인에 S3 웹 엔드포인트를 입력한다.
Redirect HTTP to HTTPs 를 체크하고 HTTP 방법은 전부 때려넣는다.
테스트니까 보호는 비활성화로 선택한다.
대체 도메인 항목을 추가한다. 이때 여기 도메인 이름이 SSL 인증서 이름이랑 같아야 배포가 생성된다..
👇 참고한 AWS 공식문서
대체 도메인 이름(CNAME)을 추가하여 파일에 대해 사용자 지정 URL 사용 - Amazon CloudFront
대체 도메인 이름에 대한 기존 CNAME 레코드가 이미 있는 경우 해당 레코드를 업데이트하거나 배포의 CloudFront 도메인 이름을 가리키는 새 레코드로 바꿉니다.
docs.aws.amazon.com
어쨌든 도메인 이름 작성하고 SSL 인증서도 추가해준 뒤 배포 생성을 완료한다.
맨 오른쪽에 마지막 수정이 배포에서 배포완료 상태로 변경되면 끝!
🔧 Route53 레코드 생성하기
Route53 콘솔로 들어가서 호스팅 영역을 선택하고 레코드를 생성을 시작한다. 단순 라우팅 선택 후 다음!
레코드 이름 : 레코드 이름은 CloudFront 배포 생성시 지정한 대체 도메인 이름과 같아야한다.
레코드 유형 : A ‐ IPv4 주소 및 일부 AWS 리소스로 트래픽 라우팅 선택
값/트래픽 라우팅 대상 : CloudFront 배포에 대한 별칭을 선택
레코드 생성을 완료한다.
이제 생성한 레코드로 호출을 해보면 S3 웹이 잘 뜨는것을 확인할 수 있다.
'AWS > Hands-on' 카테고리의 다른 글
Route53 + API Gateway + S3 정적 웹 호스팅 (0) 2023.07.21 Route53 + S3 정적 웹 호스팅 (0) 2023.07.21 S3 정적 웹 호스팅 (0) 2023.07.21 Lambda 에서 XML 이벤트 처리하기 (0) 2023.07.19 [2] Lambda & DocumentDB 연결 (0) 2023.07.14