Route 53으로 서브 도메인 확장하기

In9_9yu·2023년 6월 30일
1

mobae

목록 보기
8/9
post-thumbnail

0. 🚪 들어가기 전

배포 환경에서 자동 로그인이 안되는 문제 를 해결하는 과정에서 겪은 일입니다.

이 글에서는 서브도메인을 확장하는 방법만 작성합니다.

이 작업을 하면서, 이전 회사에서 다른 개발자분이 서브도메인과 관련된 이슈를 진행했던게 문득 기억났습니다. (그때 잘 들어둘걸.)

현재 가비아에서 example.xyz 라는 도메인을 구매한 상태입니다.

해당 도메인은 HTTPS 적용을 위해 백엔드 서버를 띄우는 EC2 인스턴스에 적용하고 있습니다.

프론트엔드는 Vercel을 통해 배포하고 있는 상황이라, example.vercel.app 도메인을 사용하고 있었습니다.

문제를 해결하기 위해서 example.xyz 를 프론트엔드 도메인으로, api.example.xyz를 백엔드 서버의 도메인으로 바꾸려고 합니다.

1. 서브도메인 호스팅 영역 생성하기

서브도메인 호스팅 영역을 생성하기 전에, AWS 문서에서는 2가지 방법을 소개합니다.

  • 도메인의 호스팅 영역에 레코드 생성
  • 하위 도메인에 대한 호스팅 영역을 만들고, 이 새로운 호스팅 영역에 레코드 생성

이 글은 두번째 방법으로 작업을 진행했습니다. 문서에서는 방법을 다음과 같이 소개합니다.

도메인의 동작 방식과 관련해서는 vercel의 domain overview를 참고하면 좋습니다.

이제부터 문서의 설명대로 따라가 보겠습니다.

트래픽을 라우팅할 하위 도메인과 이름이 같은 호스팅 영역(예: acme.example.com)을 생성합니다.

호스팅 영역 생성

그럼 다음과 같이 서브도메인에 대한 호스팅 영역이 생성됩니다.

서브도메인 호스팅 영역 생성

새 호스팅 영역을 생성할 때 Route 53가 새 호스팅 영역에 할당한 이름 서버를 가져옵니다.

도메인(example.com)의 호스팅 영역에 새 NS 레코드를 생성하고 3단계에서 얻은 이름 서버 4개를 지정합니다.

2. 트래픽 라우팅을 위한 레코드 생성

이 새로운 호스팅 영역에, 해당 하위 도메인(acme.example.com) 및 그 하위 도메인(예: backend.acme.example.com)에 대한 트래픽을 라우팅하는 방법을 정의하는 레코드를 생성합니다.

아까 생성한 호스팅 영역에 들어가서, 레코드 생성을 클릭합니다.

현재 백엔드는 EC2 앞에 로드밸런서를 두고, https를 적용하고 있으므로
api.example.xyz의 트래픽 라우팅 대상을 로드 밸런서로 설정했습니다.

3. 도메인 호스팅 영역에 새로운 NS 레코드 생성

우선, 서브도메인의 NS레코드의 값들을 다 복사합니다.
서브 도메인 영역

그리고 상위 도메인 example.xyz의 호스팅 영역으로 들어가 NS 레코드를 만들고, 그 값으로 아까 복사했던 값을 넣어줍니다.

이렇게 하면 api.example.xyz에 접근하려고 하면 로드밸런서로 연결해 줄 것입니다.

처리하는 방법?

그렇다면 브라우저에서 api.example.xyz로 요청을 날리면 어떻게 될지 궁금해서 도식화를 해봤습니다. 맞는지는 모름니다... 누가 조언좀...

구조

4. 서브도메인에 https 적용

AWS Certificate Manager를 통해 인증서를 간편하게 발급받을 수 있습니다.

HTTP 쓰고 싶어요 (1)과 같은 방식으로 인증서를 발급받으면 됩니다.

profile
FE 임니다

0개의 댓글