AWS 배포 관련 포스팅 주제 |
---|
Github Action + Elastic Beanstalk으로 CI/CD |
deploy.yml 뜯어보기 (예정) |
AWS Route 53 / ACM 을 활용한 사설 도메인 연결 및 HTTPS 적용 |
AWS RDS 설정 (예정) |
AWS S3 설정 (예정) |
AWS 프리티어 과금 요소 / 배포 과정에서의 트러블 슈팅 (예정) |
앞서 Elastic Beanstalk으로 CI/CD를 하면서 다음과 같이 AWS에서 제공하는 도메인을 받을 수 있다.
하지만 필자는 이왕 하는 김에 사설 도메인을 연결하기로 했다.
가비아 회원가입 후, 도메인 검색에서 원하는 도메인명을 검색한다.
돈 없는 대학생이므로, 필자는 .shop를 선택했다.
처음 1년간 500원에 해당 도메인을 자유롭게 사용할 수 있다.
구매한 뒤, My 가비아 페이지에 들어가면 내가 구매한 도메인을 확인할 수 있다.
뒤에서 몇 가지 설정을 해야 하기 때문에 잘 기억해두자.
이제 서버에 연결할 사설 도메인이 준비되었으니, AWS에서 Elastic Beanstalk을 연결할 차례이다.
Route 53 - 호스팅 영역 에서 호스팅 영역을 생성한다.
아까 구매한 도메인을 "도메인 이름" 칸에 기입한다.
호스팅 영역이 생성되면 상세정보에서 "레코드" 의 NS(네임서버) 유형에 해당하는 값을 확인한다.
잠시 My 가비아 페이지로 돌아가서, 위에서 확인한 NS 4개의 값을 구매한 도메인의 네임서버 설정에서 1~4차에 기입한다.
이제는 AWS 검색에 ACM이라고 기입하면 두번째에 위치하는 Certificate Manager로 이동한다.
ACM 이란?
↳ AWS에서 제공하는 SSL/TLS 인증서 발급, 관리 서비스(HTTPS 적용을 위해 SSL 인증 필수)
"퍼블릭 인증서" 체크 후 다음으로 넘어간 뒤,
"완전히 정규화된 도메인 이름" 에는 "*.사설 도메인명"으로 기입하고
"검증 방법"은 DNS 검증으로 선택(default)한다.
DNS 검증을 선택하면, ACM에서 CNAME을 발급하게 되는데 이 레코드를 가비아에 돌아가서 등록해줌으로써 도메인 검증 절차를 진행할 수 있게 된다.
생성된 인증서 상세정보에 들어가서, "Route 53에서 레코드 생성" 을 실행하면 Route 53에 아까 만들어둔 호스팅 영역을 체크하여 레코드 생성하여 CNAME 등록을 진행한다.
(이미 인증이 완료된 상황이라 상태가 발급됨으로 되어있지만, 처음 시도할 때에는 위의 사진처럼 검증 대기 중이라고 떠 있을 것이다.)
이제, CNAME 이름과 CNAME 값을 복사해서 잠시 My가비아로 이동한다.
네임서버 설정했던 그 페이지 우측 하단에 DNS 정보 - "도메인 연결" 이 보이는데 이 설정으로 들어간 뒤, 구매한 도메인의 DNS 정보 설정으로 들어간다.
DNS 레코드를 사진과 같이 추가하여 저장한다. 이 때 유의사항이 있다.
"호스트" : 앞에서 복사한 CNAME 이름에서 도메인 앞 부분만 기입해야 한다.
예) "abcd.cargive-back.shop." 으로 되어있으면, 가비아에는 "abcd"만 기입
"값/위치" : 앞에서 복사한 CNAME 값을 그대로 기입한다.
그 뒤에 검증이 성공하면 ACM에서 해당 인증서의 상태가 "발급됨"으로 변경된다.
이제 Elastic Beanstalk에서 배포했던 환경의 "구성" - "인스턴스 트래픽 및 크기 조정" 으로 들어간다.
"리스너" 에서 443번 포트를 통해 HTTPS 접속을 허용하도록 포트와 프로토콜을 추가하고 SSL 인증서는 위에서 설정을 완료한 인증서를 추가한 뒤 저장한다.
마지막으로 Route 53에서 처음에 만들었던 호스팅 영역의 "레코드"로 들어간 뒤 다음과 같이 레코드를 추가한다.
(Elastic Beanstalk 환경과 연결할 것이고, 지역은 해당 인스턴스의 지역을 체크한 뒤 연결할 환경을 지정해주면 된다!)
레코드 이름을 비운 상태로 하나 추가한 뒤, 레코드 이름에 "www" 를 넣은 상태로 하나 추가해주면 끝이다.
이제 사설 도메인으로 접속해도 정상적으로 연결되는 모습을 볼 수 있다.
아울러 URL 옆의 보안 인증 또한 잘 이루어져있다. (HTTPS)