ELB https 통신 구현
https 통신을 구현하기 위해서는 SSL 인증서가 필요하고, SSL 인증서를 발급받으려면 DNS 인증을 받아야 하는데, 이를 위해서는 도메인이 필요하다. Route 53에서 직접 구매하거나, 외부에서 구매한 도메인을 Route 53에 등록해두어야 한다. NS 레코드는 도메인 이름을 네임서버 주소로 매핑하며, SOA 레코드는 특정 도메인의 DNS 존(zone)의 시작을 나타내며, 해당 존에 대한 주요 정보를 제공한다.
Route 53
이렇게 준비가 되면 Route 53 호스팅 영역에서 A 레코드를 하나 생성해야 한다. A 레코드는 원래 도메인 이름을 IPv4로 매핑하는 레코드지만, 별칭을 사용하면 일부 AWS 리소스로 트래픽을 라우팅해주기도 한다. 나는 ALB로 라우팅될 수 있도록 설정해주었다. 이렇게하는 것만으로 우리는 구매한 도메인을 사용해 http 통신을 할 수 있게 된다.
ACM
AWS는 자체적으로 SSL 인증서를 발급해주는 AWS Certificate Manager(ACM)이라는 서비스를 제공하고 있다. 인증서 요청에서 인증서 유형에 퍼블릭 인증서를 선택하고, 다음으로 넘어가서 우리가 구매한 도메인의 이름을 적어주면 된다. 이렇게만 해도 인증서가 발급되는 경우가 있지만, 한 10분 지나도 인증서가 발급되지 않는다면 NAME 레코드를 생성해주어야 한다.
인증서 ID를 누르고 들어가면 도메인 항목에 [ Route 53에서 레코드 생성 ] 버튼이 있다. 거기서 SSL 인증서를 생성하려는 대상 도메인에 CNAME 레코드를 생성해주면 된다.
ELB
이제 우리는 도메인에 A 레코드로 ELB를 연결해두었고, 해당 도메인에 대한 SSL 인증서도 발급받았다. 이제 ELB 리스너가 443 포트를 듣도록 [ 리스너 추가 ]를 해주면 된다. 새로운 리스너를 생성할 때 프로토콜은 https를 선택해주고, 아래로 내려가 보안 리스너 설정을 건드리면 된다. 여기서 인증서 소스는 [ ACM에서 ]를 선택하고, 인증서 선택에서는 SSL 인증서를 선택해주면 된다. 여기서 주의해야 할 점은 도메인과 인증서가 1 대 1 관계라는 점이다. 만약 A 레코드는 DDD.co.kr 도메인에 생성하고, 인증서는 EEE.co.kr SSL 인증서를 사용한다면, 당연하게도 우리가 원하는 대로 작동하지 않을 것이다.
블로그의 정보
Ayden's journal
Beard Weard Ayden