Dev/인프라

아임웹과 AWS를 연결해서 사용하기 & Route53 이관

싯벨트 2025. 4. 25. 11:21
728x90
 

DNS 이해하기

DNS란다른 네트워크의 기기들이 서로 통신을 하려면 위치를 특정할 수 있는 주소가 필요하고, 이를 IP주소라고 한다. 이때, 범용적으로 사용되는 IPv4 주소는 32비트로 이루어져 있으며, 8개 비트씩

seatbelt.tistory.com

 

배경

도메인과 웹 페이지만 있는 서비스에서 AWS와 연동한 서비스를 구축하는 것을 원하는 상황이다. 이때, DNS 관련 사항을 어떻게 처리할 수 있을지 살펴보자.

  • 호스팅kr에서 도메인을 구매했다.
  • 아임웹에서 웹 퍼블리싱을 하고, 아임웹의 네임서버를 호스팅Kr에서 구매한 도메인에 입력했다.
    (이를 통해, 해당 도메인으로 접속하면 아입웹의 네임서버로 연결된다.)

목적

이러한 상황에서 구현하고자 하는 것은 “도메인을 활용해서 AWS를 연결하고, 람다를 기반으로 웹 애플리케이션을 구축”하는 것이다.

 

아임웹의 네임서버를 그대로 사용하는 방법과 Route53으로 이관하는 방법을 고민해볼 수 있다. 걱정이 되는 포인트는 https 프로토콜 접속메일 주소로 사용하고 있는 도메인의 정상 동작이었다. 그래서 먼저 아임웹의 네임서버를 사용하는 방향으로 구현해본 후, Route53으로 이관하는 작업을 진행했다.

1. 도메인 연결하기

1.1. 호스팅KR 에서 도메인 구매하기

먼저 저렴한 도메인 골라서 결제 진행해준다. 

 

네임서버를 확인하면 호스팅kr에서 제공하는 기본 서버로 세팅되어 있다.

 

주소로 접속해보면 들어가지지 않는다. 아무것도 연결해놓지 않았기 때문에 당연하다.

 

아임웹의 네임서버로 변경해준다.

1.2. 아임웹 연결하기

아임웹 가입 후 사이트를 생성해준다.

 

구입한 도메인 연결을 해준다.

 

도메인을 연결하면 할당된 네임서버가 있는데, 이것을 위의 호스팅kr 사이트에서 네임 서버로 입력해준다. 설정의 의미는 mh-dev.pics로 들어온 요청에 대한 DNS질의를 아임웹의 네임서버로 위임한다는 것이다.

 

이렇게 해주면 해당 도메인을 사용하는 과정이 끝났다. 앞서 가정한 상황은 이 단계까지는 이미 되어있는 것을 가정했던 것이다.

이제 AWS와 어떻게 연결하는지 살펴보자.

 

2. AWS 연결하기

2.1. 서브 도메인 생성하기 - ACM 인증서 요청

2.1.1. AWS ACM이란

https 연결을 위한 SSL/TLS 인증서를 발급하고, 자동으로 갱신하며 관리해주는 서비스다.

2.1.2. ACM 연결하기

ACM 인증서 요청

  • 원하는 서브도메인을 입력하여 인증서 요청을 한다.
  • 요청을 하면 도메인 항목에 CNAME 레코드가 생성된다.

 

아임웹에 CNAME 레코드 연결

  • 아임웹 도메인의 네임서버 설정에서 위에서 생성된 CNAME의 이름과 값을 입력한다.
  • 몇 분이 지나면 ACM 인증서가 발급됨 상태로 변경될 것이다.
  • 이는 해당 호스트 네임을 https와 사용하여 aws의 리소스와 연결할 수 있다는 것을 의미한다.

 

 

‼️ 리전 체크 주의

ACM 인증서를 요청을 할 때는 AWS의 어떤 서비스와 연결할지를 생각하고, 리전을 구분해야 한다. 만약 CloudFront와 연결한다면 글로벌 리전인 us-east-1에서 인증서 요청을 해야 한다. 그리고 API Gateway, Application Load Balancer와 같은 서비스와 연결한다면 해당 리전, 서울이라면 ap-northeast-2 리전에서 인증서 요청을 해야 한다.

이 기준은 해당 서비스가 글로벌 서비스인지, 리전 기반 서비스인지에 따라 다르다. CloudFront는 글로벌 서비스이고, API Gateway, Application Load Balancer는 리전 기반 서비스이다.

2.2. 리소스와 연결하기

인증서 발급까지 마쳤다면 연결하는 것은 간단하다. 아래 서비스들을 만든 뒤, 생성된 리소스에 있는 도메인 이름들을 아임웹에서 CNAME 레코드로 할당하면 된다.

2.2.1. API Gateway

사용자 지정 도메인 이름을 생성한다. 인증서를 발급한 도메인 이름을 입력하고, 맨 아래에 ACM 인증서 설정에서 해당 도메인 이름으로 발급한 인증서를 선택한다.

2.2.2. Elastic LoadBalancer

앞선 케이스와 동일하게 해당 리전에서 ACM 인증서를 요청 및 발행한다. 로드 밸런스 리스너를 설정할 때, https 프로토콜을 생성하여 ACM 인증서를 연결한다.

2.2.3. CloudFront

CloudFront는 글로벌 서비스이므로, ACM 인증서 요청을 글로벌에서 진행해야 한다. 배포를 생성할 때, 발행한 인증서를 할당한다.

3. 메일 서비스 연동하기

3.1. 구글 워크스페이스 등록하기

구글 이메일 등록을 위해 워크스페이스를 사용해보자. 14일 무료이므로 테스트가 가능하다.

 

호스팅 kr이 보기에 없으므로 다른 호스트를 선택해준다.

 

아임웹에 MX 레코드를 기입하여, 메일 서비스를 설정한다.

4. Route53 사용하기

4.1. Route53의 장점

확실히 아임웹 서비스를 이용한다면 UI가 편하고, 대표 도메인에 https를 자동으로 적용해주는 등의 이점이 있다. 그러나 AWS 서비스가 많아지고, 보다 복잡한 연결이 필요하다면 Route53에서 관리하는 것이 좋다.

  • DNS 성능: AWS는 전 세계 100개 이상의 엣지 로케이션을 통해 빠르게 응답한다.
  • AWS 리소스와 자동 통합: 호스팅 영역을 만든 뒤 ACM 인증서 요청을 하면 CNAME을 자동 등록해준다.
  • 고급 DNS 기능
    • Alias 기능을 통해 A 레코드 설정 시, IP주소가 아니라 AWS 리소스를 매핑할 수 있다.
    • Health check 기능을 통해 도메인이 가진 서버의 상태를 체크하여 자동 failover를 할 수 있다.
  • IaC: Terraform, CloudFormation 등으로 관리가 가능하다.

4.2. Route53으로 옮기기

  1. 먼저 도메인을 구매한 호스팅KR의 네임 서버를 아임웹에서 Route53 호스팅 영역의 네임서버로 변경한다.
  2. 이후 아임웹의 모든 레코드를 Route53에 동일하게 작성해준다.
    • 이때, 아임웹에서 퍼블리시한 웹페이지에 연결을 위해 A 레코드로 **.imweb.me 주소를 연결해준다.
  3. 메일 서버 또한, TXT는 처음 소유권을 인증할 때만 사용한 것이므로, 현재 등록된 MX 레코드만 옮겨주면 되고, 값을 입력할 때 하나씩이 아니라 한번에 입력해주면 된다.

 

환경 분리 등의 관리를 위해 호스팅 영역을 여러개로 쪼갠다면, 메인 도메인에 호스팅 영역들의 네임서버를 입력해줘야 한다.


참고자료