본문 바로가기
infra

[TIL] DNS 서버 Round Robin

by marble25 2023. 3. 30.

쿠버네티스 요청을 처리할 ingress-controller를 만지다가 문득 궁금한 점이 생겼다.

현재 방식은 /etc/hosts를 이용, dns와 master node ip를 1:1 매핑해서 진행하고 있다.

만약 지정한 마스터 노드가 죽으면 worker 노드가 살아있음에도 불구하고 모든 요청을 처리하지 못하게 된다.

그래서 해결법을 찾던 중 DNS 서버에 대한 내용이 있어 정리해 본다.

DNS 서버

DNS 서버는 내가 입력한 string 방식의 dns와 ip를 매핑해주는 서버이다.

한국에서는 주로 ISP(SKT, KT, LG 등의 인터넷 공급자)에서 dns 서버를 운용한다.

dns 서버에 요청해서 내가 요청하는 dns에 해당하는 ip 주소를 알아낸 후, 해당 ip로 다시 요청을 보내게 된다. 이후 로컬에 캐싱을 통해 dns 서버에 요청하지 않고도 해당 ip에 바로 요청을 보낼 수 있다.

상위 도메인 dns 서버가 하위 도메인 dns 서버로 요청을 보내서 요청을 처리하는 방식이다.

Round Robin DNS

기본적으로는 dns 서버는 하나의 dns와 하나의 ip를 매핑한다. 그래서 해당 dns를 요청하면 그와 매핑된 ip를 반환한다.

Round Robin DNS 방식의 경우에는 하나의 dns와 여러 개의 ip를 매핑한다. 그래서 도메인 레코드를 조회하는 시점에 트래픽을 분산하는 방식이다. 추가적인 소프트웨어/하드웨어 로드밸런서가 필요 없기 때문에 구현이 간단하다.

  • 장점: 구현이 매우 간단하다. 추가적인 비용 지출이 필요 없다.
  • 단점: dns에 등록된 웹서버에 문제가 생기더라도 dns는 헬스 체크를 따로 하지 않기 때문에 이를 알 방법이 없다.

HA(고가용성)을 유지하기 위해서는 Round Robin DNS 방식으로는 부족하고, 추가적인 방법이 필요한 것으로 보인다.

'infra' 카테고리의 다른 글

[TIL] mig 해제하기  (0) 2023.12.14
[TIL] js pm2 패키지  (0) 2023.11.05
무중단 배포 프로세스  (0) 2023.09.17
컨테이너 보안  (0) 2023.07.14
[TIL] GSLB(Global Server Load Balancing)  (0) 2023.03.30