관리 메뉴

나의 개발일지(김지헌)

route53 S3버킷으로 HTTP 도메인 리다이렉션하기 + 클라우드 프론트 본문

공부

route53 S3버킷으로 HTTP 도메인 리다이렉션하기 + 클라우드 프론트

코딩이좋아요 2023. 4. 18. 14:58

이슈 : 기존에는  example.com접속은 가능했지만  www.example.com는 접속이 불가능 했었다. 원하는 방법은 www.example.com로 접속시 example.com로 이동시키는 방법이였고 방법은 두개 정도 있었는데

1. ssl 인증서로 서브도메인을 설정

2. 버킷을 두개 만들어서 접속시 이동시키는 방법이였다.

2번을 선택 했고 https를 사용 할 필요가 없어서 버킷을 두개 이용해서 진행 했다.

 

1. 도메인을 구입

 example.com

 

2. S3 버킷 두개 만들기

example.com 으로 도메인 생성했으면

버킷이름을 example.com , www.example.com 두개 생성한다.

example.com 버킷을 메인으로 사용 하고 www.example.com 들어오는 요청을 example.com로 보내줄것이다.

 

example.com 버킷에 속성으로 가서 제일 하단에 정적 웹사이트 호스팅을 활성화 한다.

유형은 정적 웹 사이트 호스팅으로 하고

인덱스 문서 이름을 index.html로 설정하고

버킷에 홈페이지로 쓸 index.html 파일을 올린다.

 

그리고 권한 설정 하면된다.

권한 탭에 들어가서 버킷 정책 클릭 후 버킷 ARN을 복사해두고

정책 생성기 클릭

Select Type of Policy = S3 Bucket Policy로 설정

Principal = *

Principal = GetObject                  -필요한거 선택하면 된다.

Amazon Resource Name (ARN) 에 복사한 버킷 ARN을 붙혀 넣고 /*를 추가한다.

그후 Add Statement 버튼이 활성화 되면 클릭후 밑에 Generate Policy를 클릭해서 json 코드를 복사 후 

버킷 정책 편집으로 돌아와서 정책에 붙혀넣고 저장하면 된다.

 

3.두번째 버킷www.example.com으로 가서 속성에 정적 웹사이트 호스팅 활성화 시켜준다

객체에 대한 요청 리디렉션 선택 후 호스트 이름을 도메인이름을 넣는다.

그후 권한도 똑같이 설정해주고

 

4. Route53으로 가서 호스팅 영역에서 레코드 생성을 해준다

레코드 이름을 example.com으로 레코드 유형을 A

별칭 활성화 후 트래픽 라우팅 대상을 S3 웹 사이트 앤드포인트 선택 -> 버킷 생성한 리전 선택하면 자동으로 앤드포인트가 뜰꺼다. 레코드 생성 하면 끝

두번째는 www.example.com 로 작성하면 된다.

똑같이 작업하고 레코드 생성한다.

 

그 후 www.example.com로 접속하면 자동으로 example.com로 리다이렉션 될꺼다.

 


+ 클라우드 프론트 배포

S3에서 정적웹호스팅 설정 한 후 앤드포인트url을

-클라우드 프론트 원본 도메인에 앤드포인트를 붙혀넣기

기본 캐시 동작 

- Redirect HTTP to HTTPS

- GET, HEAD(S3 정적 배포), -GET, HEAD, OPTIONS, PUT, POST, PATCH, DELETE(서버를 배포할 때)

- 캐시 키 및 원본 요청 -- chchingDisabled

- 북미, 유럽,아시아 중동 및 아프리카

- 대체 도매인 이름 - *.도메인 -> route53에서 도메인 이름으로 쓸꺼기 때문에 사용할 도메인으로 적기 (ex.  api.도메인 ...)

- SSL 인증서 - 있으면 사용

생성 완료 하면

배포 도메인 이름 복사 후 -> Route53 

해당 도메인 클릭 -> 레코드 생성

-클라우드 프론트 대체 도메인을 입력

- 별칭 활성화

- 클라우드프론트 배포에 대한 별칭 선택

- 자동으로 클라우드 프론트가 뜬다 

레코드 생성 후 접속하면 https로 접속이 가능하다.