Ssul's Blog

Vercel, AWS(Route53) 도메인 연결하기 본문

dev/기능구현

Vercel, AWS(Route53) 도메인 연결하기

Ssul 2025. 7. 23. 13:21

0. 요약

- Vercel에 프론트앤드 서비스 배포(예: 서비스명.vercel.app)

- AWS Route53에서 서비스명.com 도메인 구매

- 서비스명.com으로 서비스 접속하기

 

1. A, CNAME이해하기

1-1. A레코드란?

A 레코드(Address Record)는 “도메인 이름을 정해진 IPv4 주소로 바로 연결한다”는 뜻입니다. 브라우저가 서비스명.com를 요청하면 DNS는 즉시 76.76.21.21 같은 숫자 주소를 돌려주고, 사용자는 그 IP가 붙어 있는 서버로 곧장 접속합니다.

루트 도메인(example.com), mail 서버, 고정 IP를 쓰는 웹·API 백엔드처럼 IP가 변하지 않거나 내가 직접 관리하는 서비스에는 A 레코드 한 줄로 끝내는 것이 가장 단순하고 빠릅니다. 또 동일한 이름에 MX·TXT 등 다른 레코드를 동시에 둘 수 있다는 장점도 있습니다.

 

1-2. CNAME레코드란?

CNAME(Canonical Name) 레코드는 “도메인 이름을 다른 도메인 이름으로 바꿔서 한 번 더 조회하라”는 지시입니다. 예를 들어 www.서비스명.com가 cname.vercel-dns.com.으로 지정돼 있으면, 브라우저는 우선 CNAME 값을 받아오고 그다음 cname.vercel-dns.com.을 다시 묻습니다. 최종적으로 얻은 IP로 연결이 이뤄집니다. 이런 간접 방식이 유용한 이유는, Vercel·AWS ELB·GitHub Pages처럼 “실제 IP가 수시로 바뀌지만 서비스용 호스트네임은 고정”인 플랫폼을 사용할 때입니다. IP가 변경되더라도 CNAME 뒤쪽 호스트네임만 살아 있으면 내 도메인은 자동으로 새 IP를 따라가므로 운영 부담이 대폭 줄어듭니다. 다만 한 가지 규칙이 있습니다. 같은 호스트명에 CNAME이 있으면 A·MX·TXT 등 다른 레코드를 둘 수 없습니다. 이름이 ‘별칭’임을 선언했기 때문에, 그 이름엔 오직 CNAME 하나만 있어야 한다는 DNS 표준입니다. 

 

1-3. 루트도메인(서비스명.com)에는 CNAME 못씀

통적인 DNS 규격은 루트 도메인(공란·@ 표기)에 CNAME을 금지합니다. 루트에는 NS, SOA 같은 필수 레코드가 이미 존재해야 하는데, CNAME이 있으면 이들을 둘 수 없기 때문입니다. 그래서 서비스명.com처럼 최상위 이름을 Vercel 호스트네임으로 가리키려면 Route 53에서는 ALIAS 레코드(Cloudflare에선 CNAME Flattening, Netlify에선 ANAME)라는 특수 타입을 제공합니다. 겉으로는 CNAME처럼 별칭을 쓰지만 내부적으로는 A 레코드처럼 동작하여 표준 위반 없이 문제를 해결합니다.

 

 

2. Vercel작업하기

- 프로젝트 > setting선택 > 왼쪽에서 Domains선택 > add Domain

- 구매한 도메인명 서비스명.com 입력

- 자동은 www버전도 입력됨

 

- 서비스명.com은 A레코드가 잡혀 있으며

서비스명.com | A | 99.99.99.1(아이피주소)

- www.서비스명.com에는 CNAME레코드가 자동으로 잡혀있음 

www.서비스명.com  | CNAME | lksjdflkjsdlfkjslkj.vercel-dns-017.com

 

해석해보면, vercel에서 나의 루트도메인은 위 아이피로 연결하고,

www로 시작되는 것은 옆에 있는 도메인으로 검색하라는 의미(이렇게 하면 vercel에 올려놓은 나의 프로젝트를 연결해주는 개념)

 

 

3. AWS Route53작업하기

- Route53 > 왼쪽에 호스팅영역 클릭 > 레코드 생성 클릭 > 다른레코드 추가로 폼 2개 만들기

 

- 레코드 유형을 하나는 A, 하나는 CNAME으로 설정

- vercel에서 봤던 내용을 적어주기

- A는 값에 아이피 주소만 넣고(99.99.99.1(아이피주소))

- CNAME은 레코드 이름에 www입력, 값에 vercel에서 봤던 lksjdflkjsdlfkjslkj.vercel-dns-017.com 입력

 

그리고, vercel로 돌아가서 refresh하면 끝!

 

 

덧. 기존 Vercel프로젝트 삭제 후, 새로운 프로젝트 도메인에 연결시

도메인 검증절차가 필요.

Route53으로 이동

  1. TXT 레코드로 소유권 검증

- Route53 > 왼쪽에 호스팅영역 클릭 > 레코드 생성 클릭

  • Vercel 프로젝트의 Domains 화면에 표시된 값 그대로 추가합니다.
    • Name: _vercel.mungkeul.me
    • Type: TXT
    • Value: Vercel이 보여준 검증 토큰 전체 (따옴표 포함해도 무방, 표기된 그대로)
    • TTL: 60초~300초 등 짧게
  • 추가 후 Vercel의 Domains 화면에서 Refresh를 눌러 검증합니다.(시간 조금 걸림)
  • 검증이 끝나면 TXT는 삭제해도 됨(Vercel 안내 그대로).