피드로 돌아가기
How We Built Our Own DNS Server
Dev.toDev.to
Infrastructure

Hidden Primary 패턴으로 DNS 전파 시간을 90분에서 수 초로 단축

How We Built Our Own DNS Server

Jonas Scholz2026년 4월 17일8intermediate

Context

Managed DNS의 Record limit 제약과 최대 90분에 달하는 느린 전파 시간으로 인한 PaaS 사용자 경험 저하 발생. 비용 예측 불가능한 과금 모델과 특정 지역 제한 등의 제약으로 인해 자체 DNS 서버 구축 결정.

Technical Solution

  • Hidden Primary 패턴 도입을 통해 Primary 서버를 비공개로 유지하고 AXFR/IXFR 표준 프로토콜로 Secondary 서버에 데이터를 푸시하는 구조 설계
  • Postgres의 LISTEN/NOTIFY 기능을 Event Bus로 활용하여 별도의 메시지 큐 없이 데이터 변경 사항을 실시간 감지
  • Go 언어 기반의 경량 서버(~1000라인)를 구축하여 Postgres 데이터를 DNS Zone으로 변환하고 AXFR/IXFR 인터페이스 제공
  • Zone 데이터 해싱을 통해 변경 사항이 없을 시 Serial bump 및 NOTIFY 전송을 생략하는 최적화 로직 적용
  • RFC 1995 기반 IXFR 구현을 통해 Secondary 서버와의 증분 업데이트 신뢰성 확보

Impact

  • DNS 전파 시간: 최대 90분에서 수 초 이내로 단축
  • Record Limit: Managed DNS의 하드 캡(10k) 제약 완전 제거

1. 대규모 레코드 관리가 필요할 때 Hidden Primary 패턴을 통한 벤더 락인 방지 검토

2. 트래픽 규모가 작을 경우 별도 MQ 도입 대신 DB Native Notification 기능을 활용한 아키텍처 단순화 고려

3. DNS 서버 구현 시 AXFR 외에 RFC 1995 IXFR 프로토콜 지원 여부를 확인하여 업데이트 신뢰성 확보

원문 읽기