Studying/CS Knowledge

DNS round robin

aoaa 2022. 4. 14. 23:00

https://refreshment-wg.tistory.com/14

 

DNS의 동작 원리

1. DNS?  인터넷에 연결되어 있는 장치들(컴퓨타, 스마트폰, 서버..)은 각각의 장치를 식별할 수 있는 IP주소를 가지고 있으며, 이를 숫자 형태로 나타냅니다 ex) 115.68.24.88  하지만 이런 숫자는 사

refreshment-wg.tistory.com

 DNS의 동작원리와 이어지는 글입니다.

간략하게 DNS는 각 장치들을 식별하는 ip주소에 이름을 부여하는 시스템이라고 했습니다.

 DNS round robin은 DNS 서버 구성 방식 중 하나로 DNS만을 이용해 도메인 레코드 정보를 조회하는 시점에서 트래픽을 분산하는 기법입니다.

 

1. 원리

 웹 서버로 예를 들면, 웹 서비스를 담당할 여러 대의 웹 서버는 각각 자신의 공인 IP를 가지고 있습니다. 웹 사이트에 접속을 원하는 사용자가 해당 도메인 주소를 브라우저에 입력하면 DNS는 도메인의 정보를 조회하는 데, 이 때 IP 주소를 여러 대의 서버 IP 리스트 중에서 라운드 로빈 형태로 랜덤하게 하나 혹은 여러개를 선택해 다시 사용자에게 알려줍니다. 

 결과적으로 웹 사이트에 접속하는 다수의 사용자는 실제로는 복수의 웹 서버에 나뉘어 접속하게 되면서 자연스럽게 서버의 부하가 분산되는 방식입니다.

 

 round robin dns는 지리적으로 복수의 웹 서버가 멀리 떨어져 있어 실시간으로 헬스 체크(서버나 시스템, 네트워크 등이 정상적으로 가동하는지 상태를 확인하는 것)가 어려울 때 사용합니다. 일반적으로 *로드 밸런싱은 뒤 단에 있는 백엔드 서버들의 헬스체크 정보를 수반하지만, round robin dns는 로드밸런싱 기능이 없기 때문에 별도의 헬스 체크가 없습니다. 따라서 특정 웹서버에 문제가 생겨 서비스가 불가한 상태라해도 DNS는 알 방법이 없고 해당 서버의 공인 IP를 도메인 조회 결과에 포함시키기 때문에 HA(High Availability : 고가용성 -> 오랜 기간 동안 지속적으로 정상 운영)용도로는 적합하지 않다. 

*로드 밸런싱: 부하 분산이라고도 하며 둘 혹은 셋 이상의 중앙처리 장치, 저장장치와 같은 컴퓨터 자원들에게 작업을 나누는 것

 

2. 문제점

 먼저 부하 분산을 위해서 서버의 수만큼 공인 IP주소가 필요하기 때문에, 서버의 대수를 늘리기 위해서는 그만큼의 공인 IP가 필요합니다. (비용 증가)

 둘 째로, 균등하게 분산되지 않으면 모바일 사이트 등에서 문제가 될 수 있는데, 스마트폰의 접속은 캐리어 게이트웨이 라고 하는 프록시 서버를 경유합니다. 프록시 서버에서는 이름변환 결과가 일정 시간 동안 캐싱되므로 같은 프록시 서버를 경유 하는 접속은 항상 같은 서버로 접속됩니다. 또한 PC 용 웹 브라우저도 DNS 질의 결과를 캐싱하기 때문에 균등하게 부하분산 되지 않습니다. DNS 레코드의 TTL(Time To Live : 컴퓨터 혹은 네트워크에서 데이터의 유효기간을 나타내기 위한 방법) 값을 짧게 설정함으로써 어느 정도 해소가 되지만, TTL 에 따라 캐시를 해제하는 것은 아니므로 반드시 주의가 필요합니다.

 셋 째, 위에서 설명한 것처럼 서버가 다운되도 확인 불가합니다. DNS 서버는 웹 서버의 부하나 접속 수 등의 상황에 따라 질의결과를 제어할 수 없습니다. 웹 서버의 부하가 높아서 응답이 느려지거나 접속수가 꽉 차서 접속을 처리할 수 없는 상황을 전혀 감지할 수가 없기 때문에 어떤 원인으로 다운되더라도 이를 검출하지 못하고 유저들에게 제공합니다. 이때문에 유저들은 간혹 다운된 서버로 연결이 되기도 합니다. 어디까지나 부하분산을 위한 방법이지 다중화 방법은 아니므로 다른 S/W 와 조합해서 관리할 필요가 있습니다.

 

 Round Robin 방식을 기반으로 단점을 해소하는 DNS 스케줄링 알고리즘이 존재합니다.

Weighted round robin (WRR)

 각각의 웹 서버에 가중치를 가미해서 분산 비율을 변경합니다. 물론 가중치가 큰 서버일수록 빈번하게 선택되므로 처리능력이 높은 서버는 가중치를 높게 설정하는 것이 좋습니다.

Least connection

 접속 클라이언트 수가 가장 적은 서버를 선택하는 법입니다. 로드밸런서에서 실시간으로 connection 수를 관리하거나 각 서버에서 주기적으로 알려주는 것이 필요합니다.

 

 

 

 

 

 

 

 

 

 

출처

http://dailusia.blog.fc2.com/blog-entry-362.html

 

DNS round robin 방식이란? - Problem/Question

Admin: DAILUSIA 모두의 소원을 이루어 주는 마녀, 그 마녀의 소원을 이루어 주고싶은 소년 K 가 되고 싶습니다. ブログのURLをコピー

dailusia.blog.fc2.com

https://m.blog.naver.com/sehyunfa/221691155719

 

라운드 로빈(Round Robin) DNS를 활용한 로드 밸런싱(Load Balancing)

라운드 로빈 DNS는 별도의 소프트웨어 혹은 하드웨어 로드밸런싱 장비를 사용하지 않고, DNS만을 이...

blog.naver.com

 

'Studying > CS Knowledge' 카테고리의 다른 글

가상 메모리  (0) 2022.04.25
캐시 메모리  (0) 2022.04.22
Scheduler 종류  (0) 2022.04.12
객체지향의 SOLID 원칙  (0) 2022.04.12
Managed Code & Native Code  (0) 2022.04.09