우리가 자체 DNS 인프라를 구축한 이유
·2021.04.29 09:00
핵심 내용
Replit은 멀티 클러스터 환경에서 효율적인 요청 라우팅을 위해 자체 DNS 인프라를 구축했다.
자세히 보기
Replit은 기존의 단순한 프록시 구조에서 벗어나, 각 클러스터가 독립된 데이터베이스와 프록시 인스턴스를 갖는 멀티 클러스터(Multi-cluster) 환경으로 전환했다.
이 과정에서 특정 사용자의 repl(예: blog.replbot.repl.co)이 속한 클러스터의 프록시로 요청을 정확히 전달해야 하는 라우팅 문제가 발생했다. 초기에는 **메타 프록시(Meta-proxy)**를 도입해 요청을 다시 전달하는 방식을 고려했으나, 이는 추가적인 네트워크 홉(Hop)을 발생시켜 성능을 저하시키는 단점이 있었다.
대안으로 Replit은 *.repl.co 도메인에 대한 권한 있는 DNS(Authoritative DNS) 네임 서버를 직접 구축하는 방식을 선택했다. 이 방식은 추가적인 네트워크 홉 없이도 클러스터 인지(Cluster-aware) 라우팅을 가능하게 한다.
- Go 언어와 miekg/dns 패키지를 사용하여 구현했다.
- 도메인을 통해 해당 repl의 클러스터를 식별하고, 해당 클러스터의 프록시 로드 밸런서(Proxy Load Balancer) IP를 응답한다.
- 와일드카드 TLS 인증서 생성을 위한 DNS-01 챌린지 처리 기능도 포함하고 있다.
이 한국어 요약은 AI가 자동으로 만들었습니다. 원문의 주장과 맥락은 원문에서 확인해 주세요. 저작권은 원저작자에게 있습니다.