AWS는 알면 5분이면 설정할 수 있는데 모르면 지옥이라는 어떤 블로거의 글에 무척 공감했었다. AWS에 대해 잘 모르면 무수히 많은 자료를 찾아보며 공부하고 개념을 익혀야 한다. 마음에 쏙 드는 자료는 찾기 힘들고 좀 괜찮다 싶으면 옛날 자료고 AWS 공식 가이드 문서는 AI 번역본이라 한글인지 난독증이 온 건지 구분이 안 된다.
이제 기술하려는 내용은 AWS Route53으로 도메인을 구매해서 https 인증서를 적용하고 Elastic Beanstalk에 맵핑하는 내용이다. (Elastic Beanstalk를 최초 생성하면 인증서가 없는 http로 랜덤한 도메인이 만들어진다.) 구글링을 해 보면 각 과정에 대한 세부적인 내용은 있는데 전반적인 흐름에 대한 내용이 없어 그걸 파악하는데 오랜 시간이 걸렸다.
그래서 기술하는 내용도 세부 내용이 아니라 전체 과정이 어떤 흐름으로 연결되는지를 기술하려고 한다.
1. Route53으로 도메인 구매
Route53으로 도메인을 구매한다. example.com 이라는 도메인을 구매했다면 https://example.com, https://www.example.com 은 프론트에 할당하고 https://api.example.com 은 백엔드에 할당하는 식으로 구성할 수 있다.
2. ACM(AWS Certificate Manager)에서 SSL/TLS 인증서 생성
Route53에서 구매한 도메인에 대해 ACM에서 TLS 인증서를 생성한다. http://example.com 을 https://example.com으로 만들어 주는 것이다. 이때 *.example.com 으로 인증서를 요청해야 api.example.com 과 같은 다양한 서브 도메인을 만들 수 있다.
3. Elastic Beanstalk 생성 (이하 EB)
일반적으로 백엔드 구성에 활용되는 EB를 생성한다. 생성 시 반드시 필요한게 로드 밸런서를 등록해 주는 것이다. 그런데 로드 밸런서를 등록하려면 EB가 두 개 이상의 서브넷에 배포되어야 한다. 처음부터 보자면 AWS에 VPC를 만들고 EB가 위치할 두 개 이상의 서브넷을 만든다. EB를 생성할 때 로드 밸런서의 서브넷을 설정해야 하는데 앞에서 설정한 서브넷을 넣어 준다. 그리고 EB의 로드 밸런서 > 리스너 설정에서 2번에서 등록한 인증서로 443, https를 등록해 줘야 한다.
4. 도메인 맵핑
마지막 과정으로 Route53으로 등록한 도메인을 EB와 맵핑하는 과정이다. Route53 > 호스팅 영역에 가면 기존에 등록하고 tls를 발급했던 도메인이 나오는데 여기서 레코드 생성 메뉴를 선택하면 서브 도메인을 설정할 수 있고 등록했던 3번에서 등록했던 EB를 맵핑할 수 있다. 설정이 끝나면 https://api.example.com 도메인으로 EB를 호출할 수 있다.
5. 요약
VPC 생성 -> 두 개 이상의 서브넷 등록 -> Route53으로 도메인 등록 -> ACM으로 TLS 인증서 발급 -> EB 생성(로드 밸런서에 서브넷 추가, 인증서 추가된 도메인 맵핑) -> EB와 발급한 도메인 맵핑