네트워크

[AWS] DNS 레코드 쉽게 정리 (A, AAAA, CNAME 레코드) + (Route 53의 Alias Record)

찌르비 2024. 1. 29. 20:36
반응형

◇  공부 기록용으로 작성하였으니 틀린 점, 피드백 주시면 감사하겠습니다 

 

Domain Name System Record (도메인 이름 시스템 레코드)

DNS Record

 

DNS 레코드도메인 이름과 관련된 정보를 저장하는 데이터베이스 항목이다.

여기서 DNS 레코드는 DNS 서버로 패킷이 들어왔을 때 어떤식으로 패킷을 처리할지를 나타내는 지침을 말한다.

 

👨‍🏫 실제 예시) 

도메인 매핑하는 목적지 Record Type DNS Class
google.com 172.12.0.1 A IN
naver.com 192.168.1.1 A IN
original.com different.com CNAME IN
example.com 10 mail.example.com. MX IN
example.jp.com "v=spf1 include:_spf.example.com ~all" TXT IN

 

▶ DNS 클래스(Class)란?

더보기

DNS 클래스는 3 가지 유형이 있다:

IN (Internet):
가장 널리 사용되는 클래스로, 대부분의 DNS 레코드가 이 클래스를 사용한다.
인터넷을 기반으로 하는 DNS 레코드를 나타낸다.

 

CH (CHAOS):
주로 실험 및 테스트 목적으로 사용되는 클래스이다.
시스템 정보 및 실험용 레코드를 사용할 때 참조된다.

 

HS (Hesiod):
주로 특정 응용 프로그램에 의해 사용되는 클래스이다.
헤시오드(Hesiod)는 네트워크 정보를 분산 관리하는 데 사용되는 프로토콜이다.

 

 

다양한 DNS 레코드 타입이 있다. 하지만 가장 일반적으로 사용되는 DNS 레코드는 다음과 같다:

DNS 레코드 타입 설명
A record 도메인을 해당하는 IP 주소 (IPv4 형식)을 매핑합니다.
AAAA record 도메인을 해당하는 IP 주소 (IPv6 형식)을 매핑합니다.
CNAME record 도메인을 다른 도메인 이름에 별칭(별명)으로 매핑합니다.
MX record 도메인의 메일 서버를 지정합니다.
TXT record 특정 도메인에 대한 추가 정보를 포함하는 텍스트 데이터를 제공합니다.

 

이것보다 더 많은 레코드 타입이 있다 → https://en.wikipedia.org/wiki/List_of_DNS_record_types

 

 

 

Address record (IPv4)

A record

  • 도메인을 IPv4 주소로 매핑하는 역할을 한다.
  • 가장 기본적인 DNS 레코드이다.
  • A 레코드는 1대 1 매핑이 될 필요는 없다. 
  • 1:N 관계 매핑,  N:M 관계 매핑이 될 수 있다.

 

👨‍🏫 A 레코드의 예시

도메인 이름 Class Record Type IPv4주소 TTL
example.com. IN 192.0.2.1 3600
google.com. IN 256.2.11.45 3600
naver.com IN 1.0.0.0 3600
naver.com IN 1.0.0.1 3600
naver.com IN 1.0.0.2 3600

 

 

🧑 TTL (Time to Live)

패킷(packet)이 네트워크를 통해 전송되는 동안 남아있을 수 있는 시간을 뜻한다.

TTL의 단위는 "초"이다. 다음은 TTL에서 값의 예시이다.

 

600 10 분
3600 1 시간
21600 6 시간
43200 12 시간
86400 24 시간

 

 

 

Address record (IPv6)

AAAA record

  • A record의 IPv6 버전이다.
  • IPv6 주소는 128비트로 표현된다. (IPv4는 32비트)
  • IPv6 예시: 2001:0db8:85a3:0000:0000:8a2e:0370:7334

 

👨‍🏫 AAAA 레코드의 예시

도메인 이름 Class Record Type IPv6주소 TTL
example.com. IN AAAA 2001:0db8:85a3:0000:0000:8a2e:0370:7334 14400

 

 

Canonical Name (캐노니컬 네임 레코드)

CNAME record

  • CNAME 레코드는 도메인 주소를 또 다른 도메인 주소로 매핑한다.
  • 쉽게 말해 도메인 주소로 연결했을 때 또 다른 도메인 주소로 연결되는 방식이다.

 

👨‍🏫 CNAME 레코드의 예시

도메인 이름 Class Record Type 주소 TTL
example.com. IN CNAME power.com. 14400
power.com. IN A 192.0.2.1 3600

 

 

 

 

 

 

CNAME 와 A 레코드의 차이 및 장단점

 

위에 설명한 듯이 가장 큰 차이점은 A 레코드는 IPv4으로, CNAME 레코드는 도메인으로 매핑한다는 점이다.

 

A 레코드  장점

직접 매핑: A 레코드는 직접적으로 IPv4 주소로 매핑하기 때문에 더 빠르게 연결한다. (추가적인 조회 없다)

A 레코드  단점

  • IP 주소 관리:
    IP 주소가 바뀌면 모든 A 레코드를 업데이트해야 한다. (IP 주소가 자주 바뀌는 서버라면 많이 불편할 것이다.)
  • 도메인 체이닝 불가능:
    여러 도메인이 같은 IP 주소를 가리키도록 하는 도메인 체이닝이 어렵다.

CNAME 레코드  장점

  • IP 주소 변경 관리 용이:
    IP 주소가 자주 바뀌는 서버여도 유연하게 대쳐 가능하다. 
  • 도메인 체이닝 가능: 
    여러 도메인이 동일한 서버를 가리키거나, 서비스를 공유할 수 있다.

CNAME 레코드  단점

  • 성능 저하:
    CNAME을 사용하면 추가적인 DNS 조회가 필요하므로, 약간의 성능 손실이 있을 수 있다.
  • 도메인 변경: 
    도메인이 바뀌면 CNAME 레코드를 업데이트해야 된다.

 

 

 

Alias 레코드: AWS의 Route53에서 사용하는 레코드

Route 53

  • Alias 레코드는 AWS Route 53 서비스에서 사용되는 특별한 DNS 레코드이다.
  • Alias 레코드는 호스트명이 특정 AWS 리소스로 매핑하는 역할을 한다.
  • Alias 레코드는 CNAME 레코드와 유사하지만 몇 가지 차이점이 있다.
  • Alias 레코드는 CNAME과는 달리 최상위 도메인을 가리키는 데 사용된다.
  • Alias 레코드는 CNAME 보다 속도가 빠르다. (추가적인 조회 없이 직접적으로 AWS 서비스로 매핑하기 때문에)
  • CNAME 레코드는 서브도메인에 대한 별칭을 만드는 데 사용되지만, 최상위 도메인 또는 레코드 세트의 별칭을 만들 때는 사용할 수 없습니다. 이러한 경우 Alias 레코드를 사용합니다.

 

👨‍🏫 ALIAS 레코드의 예시

 

작성 할 때 Alias를 ON으로 설정해야 된다. 그리고 레코드 타입은 A 또는 AAAA 또는 CNAME

도메인 이름 Class Record Type 주소
alias.example.com. IN A some-service.amazonaws.com.

 

실제 AWS에서 Alias 레코드를 사용하고 싶을 경우, 레코드를 작성할 때 Alias를 ON/OFF로 하는 버튼이 있다. 이걸 ON으로 바꾸고 레코드 타입은 A로 주로 설정한다. 

 


🤔 SAA-C03 문제 

Route 53에서 S3의 정적 웹사이트 호스팅 엔드포인트 "example.s3-website-us-east-1.amazonaws.com"의 별칭으로 독자 도메인명 "www.example.com"을 등록하고자 합니다. DNS 쿼리에 대한 응답을 더 빠르게 하려면 어떤 DNS 레코드를 사용해야 할까요?

  1. A 레코드
  2. AAAA 레코드
  3. CNAME 레코드
  4. Alias 레코드

정답

더보기

정답. 4번

Alias 레코드

 

S3의 정적 웹사이트 호스팅 엔드포인트(URL)와 같은 AWS 서비스의 일부는 도메인명에 할당되는 IP 주소가 동적으로 변하기 때문에, 고정 IP 주소를 등록해야 하는 A 레코드를 설정할 수 없다.

이러한 서비스에 독자 도메인명을 별칭으로 할당하고자 할 때는 CNAME 레코드 또는 Alias 레코드를 사용한다.

이 중 Alias 레코드는 AWS 서비스의 도메인명에 할당된 별칭에서 직접 IP 주소로 이름 해석이 가능하므로, CNAME 레코드를 사용하는 것보다 DNS 쿼리에 대한 응답이 더 빨라진다.

728x90
반응형