서브도메인 설정 (Route53, 가비아, cloudfront)
사전 세팅
📌 EC2에서 탄력적IP 설정을 해 주었고, 가비아에서 도메인 구입완료 project.com (예시)
📌 letsencrypt 에서 ssl 인증서 등록까지 완료
📌 Route53에서 호스팅영역 및 A레코드도 등록 -> 가비아에 네임서버 등록
* Route53에서 도메인 연결을 하는 경우 0.5달러가 과금된다
가비아에서 호스팅영역 & A레코드설정 & 서브도메인 설정까지 하고 싶다면 아래 포스팅을 참고
✔️ 참고 가비아에서 서브도메인 설정
https://sihyung92.oopy.io/devops/gabia/1
이번 포스팅에서 할 것
1. 백엔드 도메인 : (예시)_https://project.com
2. 프론트엔드는 cloudfront로 배포를 하고 위의 백엔드 서버로 api 요청을 보내고 싶다
3. 프론트엔드 서버 주소는 (예시) https://frontend.cloudfront.net
동일사이트간 쿠키 공유를 위해 위의 프론트엔드 서버에 서브도메인을 설정한다. (예시) https://www.project.com
* 루트도메인 project.com 을 포함하고 있으면 동일사이트로 간주한다
4. 호스팅영역과 A레코드를 route53에서 진행했기 때문에 Cname 등록 & DNS 검증도 route53 에서 할 것
Route53 & Cloudfront 에서 서브도메인 설정
1. 현재의 Route53 콘솔 설정 상태
2. Cloudfront - 배포 - 편집
3. ACM 에서 인증서 발급 : 서브도메인의 ssl 인증까지 완료해 준다
등록할 서브도메인 입력 - DNS검증 선택 - 나머지는 그대로 둔 채로 요청
4. DNS 검증 (ACM - 인증서나열 로 가면 방금 요청한 인증서가 있다) * 리전은 글로벌로 해야 한다
그냥 위에서 Route53 에서 레코드 생성만 눌러주면 끝
5. Route53 으로 와보면 아래와 같이 자동으로 CNAME이 등록되어 있다
조금 기다려 보면 ACM 인증서의 상태가 검증대기 -> 발급됨으로 바뀐다.
* 두 번 정도 새로고침 하니까 바로 발급됨으로 변경되었다. 30분이 넘어도 변함이 없다면 처음부터 다시 시도해 보기
7. Cloudfront에서 서브도메인 설정하기
방금 발급된 인증서를 선택하고 변경사항을 저장하면 끝.
등록한 서브도메인으로 접속해보고 혹시 Access denied 가 나오거나 한다면..
오류페이지 등록이 잘 되었는지 확인해 보기
여기까지 했다면
백엔드 https://project.com (루트도메인)
프론트엔드 https://www.project.com (서브도메인)
으로 설정되어있다.
처음부터 백엔드 프론트엔드 서버 나눌 생각을 못해서
백엔드에 루트도메인을 줬지만 지금 이것 말고 할게 많아서.. 나중에 바꿔 보겠어요
서브도메인은 www 든 api 든... 뭐든 상관없다
나의 경우 루트도메인인 https://projects.com 에다가 letsencrypt 로 ssl인증을 했기 때문에 백엔드 서버 주소로 들어가서 인증서를 확인해 보면 발급기관이 letsencrypt로 되어있다. (url창 옆 자물쇠 누르면 됨)
Route53에서 서브도메인을 등록한 https://www.projects.com 의 프론트엔드 서버로 접속하면 aws 에서 발급된 인증서 임을 확인할 수 있다!
백엔드와 프론트엔드 도메인을 맞춰 주었으니 이제 둘이 쿠키를 공유할 수 있게 해보자... ➡️ 서버-프론트엔드 간 쿠키(세션id & csrftoken) 공유하기