Ssul's Blog
Vercel, AWS(Route53) 도메인 연결하기 본문
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으로 이동
- TXT 레코드로 소유권 검증
- Route53 > 왼쪽에 호스팅영역 클릭 > 레코드 생성 클릭
- Vercel 프로젝트의 Domains 화면에 표시된 값 그대로 추가합니다.
- Name: _vercel.mungkeul.me
- Type: TXT
- Value: Vercel이 보여준 검증 토큰 전체 (따옴표 포함해도 무방, 표기된 그대로)
- TTL: 60초~300초 등 짧게
- 추가 후 Vercel의 Domains 화면에서 Refresh를 눌러 검증합니다.(시간 조금 걸림)
- 검증이 끝나면 TXT는 삭제해도 됨(Vercel 안내 그대로).
'dev > 기능구현' 카테고리의 다른 글
| ios(swift)개발, 다른 앱에서 내앱 호출하기(딥링크) (0) | 2025.05.02 |
|---|---|
| IOS 앱개발 String Catalog로 한국어, 영어 (다국어)동시설정(swiftui) (0) | 2025.04.02 |
| ios push알림 기능 설정 (0) | 2025.02.25 |
| [ChatGPT, DALLE2] 인공지능 카카오챗봇 만들기 (3) | 2024.02.07 |
| [Django, tailwind] AI가 상담글에 자동으로 댓글 달아주기 #2 (react, tailwind) (1) | 2024.01.24 |