DNS의 흐름에 대해서 알기 전, DNS가 무엇일까?
DNS란, 도메인 주소를 IP주소로 변환하는 역할을 하는 서버이다.
그런데 위에 말한 도메인 → IP 이렇게 변환하는 작업이 어떤 흐름으로 진행이 될까?
Round Robin은 DNS Server의 구성 방식 중 하나이다.
Domain에 대한 IP 요청 쿼리 시 RR(RoundRobin) 방식으로 IP를 반환한다.
시분할 을위한 선점형 스케줄링 중 한 방법인 RR은 프로세스에 우선순위를 두지 않고 순서대로 시간단위로 CPU를 할당하는 방식의 스케줄링 알고리즘이다.
즉, DNS서버에 들어오는 IP변환 요청들은 우선순위를 두지않고, 시간단위로 응답을 해주는 방식이다.
이 방식으로 구성을 하면 자동적으로 시간에 따라 스케줄링이 변화되기 때문에 로드밸런서가 필요가 없다.
로드밸런서
한 서버에 여러 요청이 들어오면 부하가 생기기 때문에, 동일 기능을 하는 서버들중 여유로운 서버에 트래픽을 나누는것
naver.com은 3개의 서버가 MSA 방식으로 묶여있다고 하자.
자, 그렇다면 어떤방식으로 흘러가게 될까?
Client 하나가 naver.com에 요청을 한다고 가정해보자.
1 - Client → DNS → 127.0.0.1 → 서버
2 - Client → DNS → 127.0.0.2 → 서버
3 - Client → DNS → 127.0.0.3 → 서버
4 - Client → DNS → 127.0.0.1 → 서버
이런 방식으로 한 클라이언트가 DNS Round Robin방식을 이용해서 요청당 같은기능을 하는 다른 서버에 요청이 보내지도록 하는 흐름이다.
위에 흐름을 보았듯이 문제점이 많이 발생을 한다.
가중치를 정해주는 RR방식으로, 서버별로 가중치를 정해주고 이 가중치에 다라 분산을 해주는 방식이다.
서버의 성능이 높을수록 가중치를 높게 설정해주면 좋다.
서버에 접속한 클라이언트 수가 가장 적은 서버를 선택하여 알려주는 방식이다.
이는 로드밸런서에서 사용하는 방법인데, 로드밸런서는 서버당 connection의 수를 실시간으로 확인을 하여 트래픽이 낮은 서버를 판별해준다.