A 레코드

A 레코드는 도메인 이름을 IPv4 주소 하나로 연결하는 DNS 레코드입니다. 웹사이트를 서버에 붙이는 가장 기본적인 설정입니다.

작성

A 레코드(A record)는 도메인 이름을 IPv4 주소 하나로 연결하는 DNS 레코드입니다. example.com에 접속하면 리졸버가 이 레코드를 찾아 203.0.113.10 같은 주소를 받고, 브라우저는 그 주소로 연결합니다. 웹사이트를 서버에 붙이는 가장 기본적인 설정이며 이름과 주소를 1:1로 잇는 것이 전부입니다.

값 형식과 작성 예

값에는 IPv4 주소만 들어갑니다. 포트 번호, 경로, 프로토콜은 넣을 수 없습니다.

이름타입값의미
@A203.0.113.10도메인 자체(에이펙스)
wwwA203.0.113.10www.example.com
apiA203.0.113.20api.example.com
*A203.0.113.30지정하지 않은 모든 하위 이름

@는 도메인 자체를 뜻하는 표기이고, DNS 콘솔에 따라 빈칸이나 도메인 이름 전체를 넣기도 합니다. 이름과 타입 표기 규칙은 DNS 레코드 종류에서 전체를 정리했습니다.

여러 개를 둘 때(라운드로빈)

같은 이름에 A 레코드를 여러 개 둘 수 있습니다. 이때 네임서버는 질의마다 주소 순서를 바꿔 응답하고, 클라이언트는 보통 앞쪽 주소부터 시도합니다. 이것을 DNS 라운드로빈이라고 부릅니다.

주의할 점은 DNS가 서버 상태를 모른다는 것입니다. 등록된 서버 중 하나가 죽어도 네임서버는 그 주소를 계속 응답하고, 그 주소를 받은 사용자는 접속에 실패합니다. 브라우저가 다음 주소로 재시도하는 경우도 있지만 보장되지 않습니다. 장애 시 자동 우회가 필요하면 로드밸런서, 헬스체크가 있는 DNS 서비스, CDN 같은 수단을 씁니다.

apex와 AAAA

에이펙스 도메인(example.com 자체)에는 CNAME을 쓸 수 없습니다. 그래서 apex를 서버에 붙일 때는 A 레코드로 IP를 직접 적는 것이 표준적인 방법입니다. 외부 서비스가 IP 대신 호스트 이름만 알려 주는 경우에는 ALIAS나 ANAME 같은 확장 기능을 찾아야 합니다. 자세한 내용은 에이펙스 도메인을 참고하세요.

IPv6 주소를 연결하려면 A 레코드 대신 AAAA 레코드를 씁니다. 둘은 서로를 대체하지 않고 공존하며, 양쪽이 있으면 IPv6를 쓰는 환경은 AAAA를, 그 외는 A를 사용합니다. IPv6를 지원하려면 A와 AAAA를 같은 서비스로 맞춰 두어야 하고, AAAA만 잘못 남아 있으면 일부 사용자에게만 접속 오류가 나타납니다.

실무에서 알아둘 것

  • 서버를 옮길 때는 며칠 전에 TTL을 짧게 낮춘 뒤 IP를 바꾸고, 안정되면 원래대로 올립니다.
  • 사이트가 열리지 않을 때는 A 레코드의 값이 현재 서버 IP와 같은지부터 확인합니다. 점검 순서는 웹사이트가 열리지 않을 때에 있습니다.
  • A 레코드는 네임서버 안에 있습니다. 네임서버를 바꾸면 A 레코드는 따라오지 않으므로, 새 네임서버에 먼저 같은 값을 넣어 두어야 합니다. 순서는 네임서버 변경 방법을 참고하세요.

자주 묻는 질문

네임서버에는 즉시 반영되지만 사용자에게는 기존 값의 TTL이 지난 뒤에 적용됩니다. 서버를 옮길 계획이라면 변경 며칠 전에 TTL을 짧게 낮춰 두면 전환 시간을 줄일 수 있습니다.

넣을 수 없습니다. A 레코드의 값은 IPv4 주소여야 합니다. 다른 이름을 가리키려면 CNAME 레코드를 쓰거나, 에이펙스 도메인이라면 ALIAS 같은 대체 기능을 사용합니다.

응답에 여러 주소가 모두 실려 나가고 순서가 바뀌므로 접속이 어느 정도 분산됩니다. 다만 DNS는 서버가 살아 있는지 확인하지 않으므로 장애 대응까지 기대하면 안 되고, 그 목적에는 로드밸런서나 헬스체크 기능이 필요합니다.

관련 가이드