콘텐츠로 이동

Route 53에서 DNS 레코드를 추가하는 방법

등록일

수정일

DNS 레코드를 추가하거나 수정할 때는 레코드 타입별 역할이 자주 헷갈린다. 여기서 Route 53에서 자주 다루는 레코드 종류와, 설정 후 dig로 확인하는 방법을 간단히 정리한다.

  • Apex Domain 또는 Naked Domain이라고도 한다.
  • example.com처럼 앞에 www, api 같은 서브도메인이 붙지 않은 기본 도메인을 의미한다.
  • 루트 도메인에는 일반적인 CNAME 레코드를 직접 사용하기 어렵다.
  • 도메인을 IP 주소로 연결하는 레코드다.
  • www.example.com, api.example.com 같은 이름에 서버 IP를 연결할 때 사용한다.

Route 53에서는 Alias를 켜면 A 레코드의 대상으로 IP 주소뿐 아니라 AWS 리소스도 연결할 수 있다.

  • CloudFront 배포
  • Application Load Balancer
  • 정적 웹사이트 호스팅을 켠 S3 웹사이트 엔드포인트
  • 다른 도메인 이름을 가리키는 별칭용 레코드다.
    • 예를 들어 www.example.com이나 api.example.com 같은 서브도메인을 다른 호스트 이름으로 연결할 때 사용한다.
    • 예: www.example.com CNAME sample.example.net
  • 해당 도메인을 어떤 네임서버가 관리하는지 나타내는 레코드다.
  • 도메인을 다른 DNS 서비스로 위임할 때 함께 확인하게 된다.
  • 기본 형식은 dig @<네임서버> <도메인네임> <레코드타입>이다.
  • 네임서버와 레코드 타입은 상황에 따라 생략할 수 있다.
Terminal window
$ dig example.com A
...
;; QUESTION SECTION:
;example.com. IN A
;; ANSWER SECTION:
example.com. 172 IN A 104.18.26.120
example.com. 172 IN A 104.18.27.120
...
Terminal window
$ dig www.example.com CNAME
...
;; QUESTION SECTION:
;www.example.com. IN CNAME
;; ANSWER SECTION:
www.example.com. 300 IN CNAME sample.example.net.
...

  • 루트 도메인에는 일반적인 CNAME을 직접 두기 어렵다.
  • Route 53에서는 이런 경우 Alias A 레코드를 검토할 수 있다.
  • 루트 도메인에는 NS, SOA 같은 레코드가 함께 존재해야 하는데, 일반적인 CNAME은 다른 레코드를 같이 두는 데 제약이 있다.

2) CNAME 동작 순서, 사용하는 이유, 리다이렉트와의 차이

섹션 제목: “2) CNAME 동작 순서, 사용하는 이유, 리다이렉트와의 차이”
  • www.example.com CNAME sample.example.net이라면 동작 순서는 보통 다음과 같다.
    1. 클라이언트가 www.example.com을 조회한다.
    2. DNS는 이 이름이 sample.example.net의 별칭이라고 응답한다.
    3. 클라이언트는 다시 sample.example.net의 실제 IP를 조회한다.
    4. 조회한 IP로 연결한다.
  • CNAME을 쓰는 이유는 다음과 같다.
    • 실제 대상 호스트 이름이 바뀌어도 별칭 레코드만 수정하면 된다.
    • 서브도메인을 다른 호스트 이름으로 연결할 때 IP를 직접 관리하지 않아도 된다.
    • CDN이나 외부 서비스처럼 대상이 다시 다른 DNS 이름을 가리키는 구조와 잘 맞는다.
  • CNAME은 DNS 단계에서 별칭을 해석하는 레코드이지, 브라우저를 다른 URL로 이동시키는 HTTP 리다이렉트는 아니다.
    • 따라서 실제 연결 대상은 sample.example.net을 기준으로 결정되더라도 주소창이 자동으로 바뀌지는 않는다.
  • QUESTION SECTION에서 조회한 도메인과 레코드 타입을 확인한다.
  • 실제 응답 값은 ANSWER SECTION에서 확인한다.