제목: "[AWS] Route53,ACM으ㄹ 통해 Elastic Beanstalk HTTPS 설정하기(freenom을 통통한 무료 도메인 사용)"
작성자: tistory(EARTH_ROOPRETELCHAM)
작성자 수정일: 2021년11월30일
링크: https://earth-95.tistory.com/127
작성일: 2022년6월13일
먼저 AWS 콘솔에 접근하여 Route53의 호스팅 영역의 호스팅 영역 생성을 클릭한다.
아래와 같이 생성하고자 하는 DNS에 등록하고자 하는 도메인 이름을 작성하고, 호스팅 영역 생성을 클릭하면, 레코드 정보를 확인할 수 있다.
레코드 정보 중, 유형이 NS인 것이 NameServer이기 때문에, 해당 로우의 값/트래픽 라우팅 대상에 적힌 nameserver 리스트를 호스팅 영역 생성 시 등록한 도메인 이름과 동일한 도메인 구매시, nameserver로 넣어야 한다.
필자의 경우, 서브 도메인을 생성하여 해당 도메인을 EB에 연결할 것이다. 서브 도메인을 생성하기 전에, 먼저 Route53에 호스팅 영역을 생성하면서 얻은 NameServer를 신규 발급 받은 무료 도메인과 연결해보자
실 프로젝트에서는 가비아를 통해 도메인을 구매하였지만, 이번 포스팅에서는 테스트 용도로 사용하기 위해 발급받은 도메인이라 Freenom에서 무료 도메인을 발급받았다.
먼저 Freenom 사이트에 접속하여 로그인을 하고 원하는 도메인을 구매할 수 있는지 확인한다.
이때 위와 같이 Ge it Now! 버튼을 클릭하여 바로 도메인 발급이 되면 문제 없지만, 아래와 같이 Get it now 클릭 시 Not available이 뜬다면, 검색창에 최상위 도메인까지 모두 넣어서 검색한 후 발급을 시도해보자.
1 domain in cart가 뜬 것을 확인한 후 Checkout 버튼을 클릭하면, 아래 과정과 같이 도메인 발급이 가능하다.
로그인이 완료되면, Services->My Domains를 클릭하여 NameServer를 등록하면 된다.
위와 같이 Services-> My Domains에 접근한 뒤 NameServer를 등록하고자 하는 도메인의 Manage Domain을 클릭한다.
그 후, Management Tools-> NameSergvers를 클릭하여 아래와 같이 NameServer를 입력한다.
위에 등록하는 NameServer는 Route53에서 호스팅 영역 생성 시 유형이 NS로 나온 로우의 값/트래픽 라우팅 대상에 적혀 있는 ns 도메인들을 각각 한 줄 씩 넣어주면 된다. NameServer를 등록한 뒤, whois 명령어를 통해 신규 발급 받은 도메인을 확인해보면, NameServer가 변경된 것을 확인할 수 있다.
기본적으로 EB에 접근할 때 사용하는 도메인은 EB의 환경에서 확인할 수 있다.
현재 하고자 하는 작업은 기존과 동일하게 HTTP를 사용하되, EB가 기본으로 제공하는 도메인이 아닌 신규로 발급 받은 도메인을 통해 EB에 접근하고자 하는 것이다.
먼저 Route53에 접속하여 레코드 생성을 클릭하여 서브 도메인을 생성해보자.
레코드 생성 시, 레코드 이름은 원하는 이름으로 지정하면 된다.
레코드 유형의 경우, AWS 리소스로 트래픽 라우팅은 CNAME 레코드나 A레코드 모두 사용 가능하다.
트래픽 라우팅 대상에는 별칭을 사용하여 기입하였으며, EB에 대한 라우팅인데, ALB를 선택한 이유는 다음과 같다
위와 같이 레코드를 생성해주면, 생성된 레코드로 접근 시 기존에 EB도메인으로 접근했을 때와 동일한 화면을 확인할 수 있다.
Alias 레코드는 CNAME 레코드와 유사해보이만 CNAME 레코드가 가진 문제를 해결 할 수 있는 장점을 가지고 있다.
AWS Elastic Load Balancer, AWS EB와 같은 AWS가 기본적으로 제공하는 DNS 이름은 보통 XXX-<aws-region>.amazon.com
으로 생성된다
Alias 레코드를 사용하면, 도메인 내에 AWS region이 포함되어 있으면 따로 IP 정보를 넣을 필요없이 어떤 AWS 서비스로 라우팅할 것인지 작성할 수 있다.
AWS Certificate Manager를 통해 프로비저닝된 공인 SSL/TLS 인증서는무료이며, 사설 인증 기관을 사용할 경우에만 과금된다.
AWS가 제공하는 공인 SSL/TLS 인증서를 사용하여 기존에 생성한 서브 도메인을 https로 접근하였을 때, EB에 정상접근되도록 설정해보자
위 과정을 토대로 인증서를 발급받으면 아래와 같이 검증 대기중으로 뜬 인증서를 볼 수 있다.
인증서를 클릭하여 인증서 정보를 보면, 도메인 부분에 Route53에서 레코드 생성 버튼이 있다. 해당 버튼을 클릭하여 Route53에 레코드를 생성해준다.
여기까지 완료되면, 검증 대기중이 아닌 발급됨으로 인증서의 상태가 변경된다.
이 때, https://도메인으로 접속하게 되면 한없이 로디이 이루어지며, 접근이 되지 않는 것을 확인할 수 있다.
이는 EB 설정에서 로드밸런싱에 80포트에 대해서만 세팅을 해주었기 때문이다.
먼저, EB에 접속하여 ALB 설정을 추가하고자 하는 환경의 구성을 클릭한다. 그 후 로드밸런서 탭의 리스너 부분을 아래와 같이 수정한다.
ALB 설저으이 경우, 443 포트를 통해 HTTPS 접근할 수 있도록 하였다.
리스너 추가 시 ACM은 위에서 생성한 인증서를 연결해주면 된다.