기존에 OpsNow에서는 GoDaddy를 통해서 도메인을 구매하고 DNS를 관리하였습니다. 물론 GoDaddy도 훌륭한 서비스입니다만, AWS 위에서 서비스를 개발하고 도메인을 연결하려면 무조건 Route 53을 쓰는 것이 유리합니다. 그 이유는 다음과 같습니다.

  • AWS 리소스 엔드포인트를 A Record로 지정 가능
  • 단순 라우팅 외의 다양한 라우팅 정책 사용 가능
  • 조금 더 훌륭한 UI
다양한 라우팅 정책들이 Route 53에서 지원됩니다.

그래서 DNS 관리 주체를 GoDaddy에서 Route 53으로 변경하기 위한 작업을 진행하였습니다. 방법은 간단합니다. GoDaddy에서 네임 서버를 AWS에서 제공하는 것으로 바꿔주기만 하면 됩니다. 물론, OpsNow 서비스가 중단되지 않도록 조심해야 할 필요가 있습니다.

레코드 이전

먼저, 이전할 Route 53에 opsnow.com 도메인에 대한 호스팅 영역을 생성합니다. 그리고 GoDaddy의 DNS에 등록된 레코드를 복제해서 Route 53으로 옮겨야 합니다. 간단하게는 레코드 내보내기와 가져오기 기능을 이용할 수 있으나, Route 53의 기능을 최대한 활용하기 위해서는 각각의 레코드에 대해서 하나하나 재작업을 해야 할 필요가 있습니다.

예를 들어, www.opsnow.com에 대한 기존 레코드는 CNAME으로 ALB (Application Load Balancer) 의 엔드포인트로 지정되어 있었습니다. Route 53에서는 ALB에 대한 A 레코드 설정이 가능하기 때문에 이런 것들을 Route 53에 맞춰서 다시 지정해줘야 합니다. CloudFront 또는 API Gateway에 대한 엔드포인트도 마찬가지 입니다.

레코드 이전시에 일부는 GoDaddy에서만 유효한 것이므로 이러한 레코드는 옮길 필요가 없습니다.

네임 서버 변경

모든 레코드에 대한 복제가 완료되었으면 이제 네임 서버를 변경할 차례입니다. 네임 서버에 대한 변경 사항은 DNS마다 다르지만 오래 걸리면 하루가 걸릴 수도 있습니다. 변경이 완료되기 전까지 긴장의 끈을 놓을 수가 없더군요. 😅

앞서 생성한 Route 53의 opsnow.com 호스팅 영역을 보시면 4개의 네임 서버 정보가 나타납니다.

호스팅 영역의 세부 정보에 네임 서버 정보가 나타납니다.

이 값들을 GoDaddy의 네임 서버에 대한 고급 설정에서 입력해주시면 됩니다.

네임 서버를 추가합니다.

그대로 저장하시면 네임 서버에 대한 변경 사항이 전파되기 시작합니다. 변경된 네임 서버가 정상적으로 반영되었는지 확인하려면 nslookup을 이용하면 됩니다.

nslookup -type=NS opsnow.com
Code language: Bash (bash)

네임 서버에 대한 변경사항이 바로 나타나지 않을 수 있습니다. 이때는 정상 반영 여부를 구글이나 Cloudflare처럼 세계적인 DNS를 이용해보시면 전파 내용을 바로 확인할 수 있습니다.

nslookup -type=NS opsnow.com 8.8.8.8

서버: dns.google
Address: 8.8.8.8

권한 없는 응답:
opsnow.com nameserver = ns-***
opsnow.com nameserver = ns-***
opsnow.com nameserver = ns-***
opsnow.com nameserver = ns-***

Code language: Bash (bash)

네임 서버에 대한 변경사항이 전파되는 중간에 접속을 시도하면 전파가 완료되지 않은 DNS를 조회하게 되면 GoDaddy의 레코드를 따라서, 전파가 완료된 DNS를 조회하게 되면 Route 53의 레코드를 따라서 홈페이지로 연결됩니다. 그래서 서비스 도메인에 대한 중단 없이 도메인의 네임 서버 변경이 가능합니다. 이전 완료❗