2026년 6월 10일 Cloudflare Enterprise가 DNS 레코드 할당량 정책을 바꿨습니다. 지금까지는 존(도메인)별로 몇 만 개 상한이 걸려 있었는데, 이제 계정 전체 레코드 총합으로 제한합니다. 공개 존 총합 1백만, 내부 존 총합 1백만이 기본값.
Enterprise만의 이야기지만, “왜 이런 정책 변화가 필요할까?”의 배경에는 대규모 DNS 운영의 병목이 있습니다. 자체 서버로 DNS를 관리해야 하는 경우에도 같은 이슈를 만나게 되니, 그 병목이 어디서 오고 어떻게 대응하는지 정리합니다.
왜 존별 제한이 문제였나
전통적으로 DNS 서비스는 “존별 최대 레코드 수” 제한이 관행이었습니다.
- 한 존이 너무 커지면 존 파일 파싱·전송·응답 지연.
- 관리 UI가 몇 만 개 레코드를 페이지네이션 없이 처리하기 어려움.
- 한 존 하나 고장 났을 때 blast radius 관리.
그런데 시장의 실제 사용 패턴은 이 가정과 어긋납니다.
- 하나의 큰 존에 몇 십만 개 레코드가 필요한 사업자가 실제로 있음. SaaS·CDN·이메일 사업자가 대표적.
- 여러 작은 존에 각 몇 백 개 레코드로 나눈 사업자도 있음. 어카운트 총합은 비슷하지만 관리 부담이 다름.
- 두 패턴이 자유롭게 섞이는 것을 사업자가 원함.
계정 수준 할당량은 이 유연성을 인정한 결정입니다. 총합만 넘지 않으면 존 하나에 몰든 나누든 자유.
대규모 DNS 운영의 실제 병목
10만 개 이상 레코드를 다룰 때 실무자가 실제로 겪는 문제.
1) API 요청량
레코드 대량 생성·수정을 API로 하다 보면 초당 요청 제한(rate limit)에 걸립니다. Cloudflare Enterprise도 API 초당 1200 요청 정도가 상한. 10만 개 레코드를 새로 만드는 데 1시간 이상.
2) 존 전송(AXFR/IXFR)
Primary → Secondary 존 전송이 큰 존일수록 오래 걸림. 매번 AXFR는 무리라서 IXFR(증분 전송)로 관리하는데, 이때 SOA SERIAL을 정확히 올려야 함.
3) 응답 지연
레코드 조회 시 캐시 미스가 나면 존 파일 전체를 검색해야 하는 구현체가 있음. BIND는 잘 최적화돼 있지만 옛 구현체·자체 개발 서버는 병목.
4) DNSSEC 서명
존 레코드가 많을수록 서명 시간 증가. 롤오버 시 재서명 부담.
5) 감사·롤백
몇 십만 개 레코드에서 어제 누가 뭘 바꿨는지 추적하기 어려움. GUI 히스토리는 대개 최근 100개 수준.
자체 서버로 대규모 DNS를 운영할 때
TCP-80.NET의 일본 전용서버에서 BIND·PowerDNS·Knot를 직접 운영한다면 몇 만 개 이상 레코드에서 아래 실무를 챙겨야 합니다.
1) PowerDNS + SQL 백엔드
BIND의 파일 기반은 몇 만 개까지는 잘 동작하지만, 그 이상은 SQL 백엔드가 낫습니다. PowerDNS + MySQL/PostgreSQL 조합.
# /etc/powerdns/pdns.conf
launch=gmysql
gmysql-host=127.0.0.1
gmysql-user=pdns
gmysql-dbname=pdns
레코드 조회가 인덱스된 SQL 쿼리로 처리돼 응답 지연이 안정적. 스키마 표준.
CREATE TABLE records (
id INT AUTO_INCREMENT PRIMARY KEY,
domain_id INT,
name VARCHAR(255),
type VARCHAR(10),
content VARCHAR(64000),
ttl INT,
prio INT,
INDEX name_index(name),
INDEX nametype_index(name, type)
);
2) 캐싱 프론트엔드로 dnsdist
권위 서버 앞에 캐시 프론트엔드를 두어 응답 부하 분산. dnsdist가 표준.
newServer({address="127.0.0.1:5300", pool="powerdns"})
setLocal("0.0.0.0:53")
pc = newPacketCache(100000, {maxTTL=86400})
getPool(""):setCache(pc)
캐시 히트 응답이 마이크로초, 미스 응답도 밀리초로 안정.
3) 지역 분산
권위 서버를 여러 대륙에 배포. anycast로 라우팅.
Tokyo (Primary)
├── Secondary 1: Seoul
├── Secondary 2: Singapore
└── Secondary 3: Frankfurt
같은 IP를 여러 서버가 anycast로 광고하면 사용자 가장 가까운 서버가 응답. Cloudflare가 하는 일이 이거고, 자체로도 BGP 세션 있으면 가능.
4) 증분 존 전송(IXFR)만 사용
큰 존에서 AXFR로 매번 전체 전송하면 부하 큼. IXFR로 변경분만.
# BIND에 IXFR 강제
options {
request-ixfr yes;
provide-ixfr yes;
};
SOA SERIAL을 매 변경마다 정확히 올려야 IXFR 정확도가 유지됨.
5) 코드 기반 관리 (dnscontrol·octoDNS)
GUI로 몇 만 개 레코드를 관리하는 건 무리. 코드로 정의하고 CI에 태워야 함.
// dnscontrol
var IPS = require_glob("./ips/*.json");
D("example.com", REG_NONE, DnsProvider(BIND),
IPS.map(function(ip) {
return A(ip.hostname, ip.address);
})
);
파일이 git에 있으니 diff·리뷰·롤백 표준 워크플로우.
6) 감사 로그
레코드 변경마다 이벤트를 로그에.
CREATE TABLE dns_audit (
id INT AUTO_INCREMENT PRIMARY KEY,
changed_at TIMESTAMP,
changed_by VARCHAR(64),
action VARCHAR(20),
domain VARCHAR(255),
old_value TEXT,
new_value TEXT
);
PowerDNS는 hook 스크립트로, 자체 API 앞단에 audit middleware를 두는 것도 방법.
7) DNSSEC 자동 서명
대규모 존에서 수동 서명은 불가능. PowerDNS는 built-in 자동 서명 매우 편함.
pdnsutil secure-zone example.com
pdnsutil rectify-all-zones
키 롤오버도 built-in.
언제 관리형 DNS로 옮기는 게 나은가
자체 관리의 반대 방향. 아래 조건이면 Cloudflare·Route53 같은 관리형이 실용적.
- 존이 한두 개, 레코드가 몇 백 이하.
- 지역 분산·anycast를 스스로 하기 부담.
- DNSSEC·DDoS를 관리형에 위임하고 싶음.
- 팀 규모가 작아 인프라 운영 리소스 최소화.
관리형은 무료 티어도 매우 넉넉해서 소규모엔 자체 운영이 오히려 낭비입니다.
하이브리드 접근
가장 실용적인 구조는 종종 하이브리드.
- 공개 프로덕션 도메인: 관리형(anycast·DDoS·DNSSEC 자동)
- 내부·인프라 도메인: 자체(비용·제어·통제)
- 개발·CI 도메인: 자체 + API로 즉시 갱신
Cloudflare가 이번에 계정 수준 할당량을 나눈 이유도 이 하이브리드 사용 패턴 반영. 공개와 내부를 다른 카테고리로 카운트합니다.
마무리
DNS는 규모가 커지면 다른 문제 세트가 등장합니다. Cloudflare의 이번 정책 변화는 그 큰 규모 사업자의 실무를 GUI·API 정책에 반영한 것.
자체 서버로 대규모 DNS를 다뤄야 하는 분은 위 실무를 참고하시면 됩니다. TCP-80.NET의 일본 전용서버에서 PowerDNS·dnsdist·BIND 세팅이 필요하신 경우 @tcp80net 텔레그램으로 문의 주시면 됩니다.
출처 (Source)
이 글은 아래 Cloudflare 공식 changelog를 참고해 tcp-80.net 청중 관점에서 재구성·번역·확장했습니다. 자체 DNS 서버 운영 실무(PowerDNS SQL 백엔드·dnsdist 캐싱·anycast·IXFR·dnscontrol·감사 로그·DNSSEC 자동 서명·하이브리드)는 원문에 없는 자체 추가 내용입니다.
- 원문 제목: Account-level DNS record quotas
- 원문 발행일: 2026-06-10
- 원문 URL: https://developers.cloudflare.com/changelog/post/2026-06-10-account-level-record-quota/
- 원문 저작자: Cloudflare, Inc.
- 본문 재구성·번역: TCP-80.NET (2026-06-10)
Cloudflare Enterprise 정책·할당량·UI는 시점에 따라 다를 수 있으니 최신 정보는 원문 및 Cloudflare Enterprise 담당자를 통해 확인하시기 바랍니다.