Cloud Architect/AWS

Route 53와 ACM을 사용해 도메인에 HTTPS 적용하기

sangwonYoon 2023. 7. 26. 11:10

법률 조언 챗봇 서비스의 접근성을 높이기 위해 도메인을 등록하고, 도메인에 HTTPS를 적용했다. 이번 포스팅에서는 AWS의 Route 53 ACM 서비스를 활용해 진행한 과정을 공유해보려고 한다.

 

도메인 구매

먼저 Route 53에서 도메인을 구입해야 한다. 가비아와 같은 외부 도메인 기관에서 구매할 수도 있지만, 도메인을 등록하는 절차가 추가로 필요하기 때문에 Route 53에서 도메인을 구매하기로 결정했다.

도메인 등록 > 도메인 이름 선택에서 원하는 도메인을 검색한 후 장바구니에 추가한다.

 

구매자의 정보를 입력하고 다음 화면으로 넘어간다.

 

도메인을 자동 갱신할지 선택하고 이용 약관에 동의 후 주문을 완료한다.

 

주문 완료 후 30분정도 기다리면 도메인 등록이 완료된다.

 

SSL 인증서 발급

AWS Certificate Manager를 사용하면 인증서를 발급받을 수 있다.

 

도메인 이름에는 인증서에 포함할 도메인들을 입력해준다. *.domain.com과 같이 와일드 카드 형식으로 입력할 수 있다.

검증 방식은 DNS 검증을 선택한다.

DNS 검증을 진행하기 위해 Route 53에 ACM(AWS Certificate Manager)에서 생성한 CNAME 값을 등록해야 한다.

인증서 ID를 클릭하여 상세 페이지로 들어간다.

 

Route 53에서 레코드 생성 > 체크박스 선택 > 레코드 생성을 누르면 AWS에서 도메인을 구입하면서 자동으로 생성된 호스팅 영역에 CNAME 값이 등록된다.

 

호스팅 영역에 CNAME 레코드가 정상적으로 등록된 것을 확인할 수 있다.

 

 

CNAME을 등록한 이후 10분정도 기다리면 인증서가 발급된다.

 

ALB 생성

 

이제 사전에 준비해둔 웹 서버와 ALB를 연결하고, ALB에 SSL 인증서를 등록해야 한다.

사전에 웹 서버가 올라간 EC2 인스턴스를 준비해야 한다.

ALB에 SSL 인증서를 등록하게 되면, 웹 서버 대신 ALB가 SSL Handshake를 비롯한 암호화 통신을 진행하기 때문에 웹 서버의 작업 부담을 덜어줄 수 있다.

리스너 및 라우팅 항목에서 리스너는 HTTPS:443으로 등록하고, 대상 그룹은 웹 서버 인스턴스의 HTTP:80으로 등록한다. HTTPS 통신은 ALB가 진행하기 때문에 웹 서버는 HTTP 통신으로 작업 부담을 줄인다.

보안 리스너 설정 항목에서 앞서 생성한 SSL 인증서를 등록할 수 있다.

 

도메인 연결

Route 53 > 호스팅 영역 > yoonseul.link > 레코드 생성

레코드 이름 항목은 하위 도메인을 명시하고 싶다면 입력하고, 그렇지 않다면 빈칸으로 두면 된다. 만약 빈칸으로 둘 경우 등록한 도메인 자체의 레코드를 생성한다.

별칭 토글 버튼을 켜고 앞서 생성한 ALB를 트래픽 라우팅 대상에 등록한다.

 

로드 밸런서 > 리스너 > 리스너 추가

HTTP로 도메인에 접근할 경우, HTTPS로 리다이렉션할 수 있도록 ALB의 80번 포트로 들어오는 요청을 443번 포트로 리다이렉션 하는 리스너를 생성한다.

 

도메인 주소에 HTTPS로 접속하면 웹 서버와 성공적으로 연결되는 것을 확인할 수 있다.