4 min read

홈서버 DNS를 Route 53에서 Cloudflare로 옮긴 이유

도입

홈서버 도메인 관리를 Route 53에 맡겨놓고 1년 넘게 그냥 두고 있었습니다.
딱히 문제가 있었던 건 아닌데, 어느 순간 청구서를 보니까 DNS 호스팅에 매달 $0.50, 쿼리 요금 따로, 도메인 갱신 $13/년. 홈서버 하나인데 좀 아깝더라고요.

Cloudflare는 이걸 전부 무료로 해준다길래 옮기기로 했습니다.

왜 옮겼는지

Route 53 Cloudflare
DNS 호스팅 $0.50/월 + 쿼리당 과금 무료, 무제한
도메인 갱신 $13/년 ~$10.44/년 (원가)
DDoS 방어 기본 무료 L3/4/7
관리 AWS 콘솔 Cloudflare 대시보드

연간 $19이 $10.44로 줄고, 기능은 오히려 많아집니다.
복잡하게 생각할 것도 없었습니다.

전환 과정

DNS 레코드 이전

Cloudflare에 사이트 추가하면 기존 레코드를 자동 스캔해줍니다.
제 경우 레코드가 6개뿐이라 전부 그대로 잡혔고, 와일드카드 A 레코드도 놓치지 않았습니다.

한 가지 주의할 점은 프록시 설정입니다.
저는 Pangolin + Traefik으로 TLS를 직접 처리하고 있어서, Cloudflare 프록시가 끼면 이중 TLS로 충돌납니다. A 레코드를 전부 "DNS only"로 두었습니다.

네임서버 변경

Route 53 도메인 등록에서 NS를 Cloudflare 것으로 교체.
저장하고 5분도 안 돼서 Cloudflare 대시보드에 활성화 확인이 떴습니다.
공식 문서에는 최대 24시간이라고 되어있는데, 거의 즉시였습니다.

Traefik DNS Challenge 전환

이 부분이 사실상 유일한 작업다운 작업이었습니다.
Let's Encrypt 인증서 갱신에 DNS challenge를 쓰고 있었는데, provider를 바꿔야 합니다.

# traefik_config.yml
certificatesResolvers:
  letsencrypt:
    acme:
      dnsChallenge:
        provider: cloudflare  # route53에서 변경

환경변수도 교체합니다.

# .env (기존 AWS 변수 4개 → 토큰 1개)
CF_DNS_API_TOKEN=...

Cloudflare API 토큰은 "Edit zone DNS" 템플릿으로 1분이면 발급됩니다.
docker compose로 재시작하니까 에러 없이 바로 붙었습니다.

도메인 Transfer

DNS만 옮겨도 충분한데, 등록까지 옮기면 관리 포인트가 줄어서 같이 했습니다.
Route 53에서 Transfer lock 해제 + Auth code 발급, Cloudflare에서 Transfer 신청.
$10.44 결제하면 기존 만료일에 1년 추가됩니다. 남은 기간이 날아가는 건 아닙니다.

속도

전환 후에 혹시 느려졌나 확인해봤습니다.

$ dig protomox.com @miguel.ns.cloudflare.com +stats
;; Query time: 6 msec

$ dig protomox.com @1.1.1.1 +stats
;; Query time: 14 msec

Route 53이었을 때랑 같거나 더 빠릅니다.
Cloudflare가 1.1.1.1 인프라를 갖고 있는 회사라 DNS 속도에서 밀릴 일은 없습니다.

같이 한 것: AdGuard upstream 모드 변경

전환 김에 내부 DNS(AdGuard Home) 설정도 봤는데, upstream 모드가 load_balance로 되어있길래 parallel로 바꿨습니다. 1.1.1.1과 8.8.8.8에 동시에 쿼리해서 먼저 오는 응답을 쓰는 방식입니다.

캐시 미스 시 14ms, 캐시 히트 1ms. 체감은 없지만 바꿀 수 있으면 바꾸는 거죠.

결과

항목 Before After
DNS 비용 $6/년 $0
도메인 갱신 $13/년 $10.44/년
인증서 갱신 Route 53 API Cloudflare API
연간 총 비용 ~$19 ~$10.44
전환 시간 - 30분
다운타임 - 0초

마무리

Route 53을 쓸 이유가 "이미 AWS에 있으니까"밖에 없었습니다.
홈서버처럼 AWS 인프라를 안 쓰는 환경에서는 Cloudflare가 비용, 속도, 편의 전부 낫습니다.

주의할 점 하나만 기억하면 됩니다. 자체 TLS를 처리하는 구조(Traefik, Nginx 등)에서는 Cloudflare 프록시를 끄세요. 나중에 IP를 숨기고 싶으면 그때 프록시 켜고 SSL 모드를 Full로 맞추면 됩니다.

참고