Skip to content

Commit ce26985

Browse files
authored
Docs:220127/하현준/DNS Round Robin
1 parent 82deac8 commit ce26985

File tree

1 file changed

+26
-0
lines changed

1 file changed

+26
-0
lines changed

CS/Network/DNSRoundRobin.md

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,32 @@ PC 웹브라우저 또한 DNS request 결과를 캐싱하기 때문에 같은
112112

113113
DNS의 TTL값을 짧게 설정하여 어느정도 불균등 분산 문제를 해결할 수 있지만, TTL값에 따라 캐시된 DNS request에 대한 결과값을 해제하는게 아니므로 주의가 필요하다.
114114

115+
116+
## ## 3. 서버가 다운되도 확인이 불가능합니다.
117+
DNS 서버는 웹 서버의 부하나 접속 수 등의 상황에 따라 질의결과를 제어할 수 없다.
118+
웹 서버의 부하가 높아서 응답이 느려지거나 접속수가 꽉 차서 접속을 처리할 수 없는 상황인 지를 전혀 감지할 수가 없기 때문에 어떤 원인으로 다운되더라도 이를 검출하지 못하고 유저들에게 제공된다.
119+
이때문에 유저들은 간혹 다운된 서버로 연결이 되기도 한다.
120+
DNS 라운드 로빈은 어디까지나 부하분산 을 위한 방법이지 다중화 방법은 아니므로 다른 S/W 와 조합해서 관리할 필요가 있다.
121+
122+
# *해결 방안*
123+
124+
이를 위한 극복 방법은 다음과 같다.
125+
126+
1. 다중화 구성 방식 (Synchronous Time-Division Multiplexing)
127+
AP 서버에 VIP(Virtual IP)를 부여해서 다중화를 구성한다. 각 AP 서버를 Health Check후 이상이 감지되면 VIP를 정상 AP 서버로 인계하는 방식을 사용한다.
128+
즉 DNS Server Table 에 실시간으로 AP 서버의 상태를 확인할 수 있는 칼럼 및 함수를 추가하여 요청될 경우 서버 상태를 확인하여 우회루트를 제공하거나 에러를 전송하는 방식을 말한다.
129+
130+
2. 가중치 편성 방식 (Weighted round robin)
131+
각각의 웹 서버에 가중치를 가미해서 분산 비율을 변경한다. 물론 가중치가 큰 서버일수록 빈번하게 선택되므로 처리능력이 높은 서버는 가중치를 높게 설정하는 것이 좋다.
132+
133+
134+
또 다른 방법으로는 로드 밸런서의 도입을 통하여 다음과 같은 구성도 가능하다.
135+
136+
3. 최소 연결 방식 (Least connection)
137+
접속 클라이언트 수가 가장 적은 서버를 선택한다. 로드밸런서에서 실시간으로 connection 수를 관리하거나 각 서버에서 주기적으로 알려주는 것이 필요하다.
138+
139+
140+
115141
# 참고
116142

117143
[DNS란](https://github.com/alstjgg/cs-study/blob/main/%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC/DNS.md), [2](https://github.com/wjdrbs96/Today-I-Learn/blob/master/Network/Application/DNS%EB%9E%80%3F.md)

0 commit comments

Comments
 (0)