네임(DNS)서버의 도메인을 이용한 DNS 라운드 로빈




    이번에는 로드 밸런싱의 방법 중에 2가지 방법중에서 네임서버를 이용한 로드밸런싱을 알아보겠습니다.

    우선 네임서버를 이용한 로드밸런싱을 하려면 아래의 내용의 대한 이해가 필요합니다.


    네임서버를 이용한 로드밸런싱의 대한 내용의 선행되어야 하는 부분


    1. 로드밸런싱의 이해 :  http://server-talk.tistory.com/118

     

    2. 도메인의 이해 :  http://server-talk.tistory.com/76

     

    3. 네임서버 설치 :  http://server-talk.tistory.com/77

     

    3. 네임서버의 A레코드의 이해 : http://server-talk.tistory.com/78






     네임서버를 이용한 로드밸런싱 설정하기




    Windows 네임서버의 로드밸런싱으로 진행하며, 테스트로 도메인은 naver.com로 가상으로 만들어 설명하겠습니다.


    네임서버 로드밸런싱 준비사항


    1. 2대 이상의 서버


    2. 접속할 도메인


    3. 네임서버 레코드 정보



    네임서버 로드밸런싱 순서

     

    1. 네임서버 라운드 로빈 설정

     

    2. 네임서버 접속할 도메인 설정



    2대의 웹서버가 준비 되셨다면 두대의 웹서버의 설정을 동일하게 하셨겠죠? 그렇다면 두대의 웹서버의 IP와 도메인을 IIS면 바인딩, apache라면 vhost를 설정하셨을 겁니다. 그후 네임서버의 도메인을 클라이언트의 웹서버의 IP를 요청하는 쿼리를 받을때마다 2대의 웹서버를 번갈아가면서 가르쳐줄 수 있게 설정하는 방법 이며 그것이 라운드로빈(Round robin) 방식입니다.




    위 그림과 같은 기능을 라운드로빈(Round robin) 기능 이라고 하며 Windows 서버는 기본적으로 라운드 로빈이 활성화 되어 있으며, 라운드 로빈 설정 후 도메인 설정만 하시면 네임서버 로드 밸런싱이 가능하게 됩니다 



    그면 이제 네임서버 로드 밸런싱을 설정을 해보겠습니다.



    네임서버의 관리콘솔의 왼쪽패널에서 DNS서버 이름을 마우스 우측 클릭하면 속성부분을 선택합니다.




    속성창의 고급으로 들어가신 후 서버 옵션의 라운드 로빈 사용이 체크 되어 있으면 됩니다.(Windows 서버는 기본적으로 라운드 로빈 사용이 체크) 





    A레코드의 동일한 도메인을 2개를 생성하며 세팅한 2대의 서버의 IP를 각각 입력하시면 됩니다.




    최종적으로 완료된 모습이며 이제 네임버서를 이용한 로드밸런싱 설정이 모두 완료 되었습니다.






    위 그림과 같은 로드 밸런싱이 가능하게 됩니다.


    위와 같은 네임서버 로드밸런싱을 할때 도메인으로 첫번째 접속시 128.1.1.1 두번째 접속시 128.1.1.2 이러한 순서대로 순차적으로 접속하게 됩니다.






     네임서버 로드밸런싱 결론




    지금까지 네임서버의 로드밸런싱을 정리하였는데요

    로드밸런싱은 말그대로 트래픽, 부하를 분산시켜 조율하기 위한 것이며, 로드밸런싱 하는것이다라고 하는 것은 다소 무리가 있습니다.


    이글을 보시는 분들께 이해가 싶게 하기위해서 로드밸런싱(Load balancing)이라고 말씀드렸는데 이러한 부화분산 방식은 정식 명칭은 Round Robin DNS 라고 하며, 단순한 도메인에 IP 리스트만 돌리며 분산접속 방식입니다. 또한 사이트의 부하를 줄일 대안으로 고려해볼 방법중에 하나라고 생각됩니다.


    이제 Round Robin DNS에 대한 정리를 모두 마쳤는데요 마지막으로 장점과 단점을 알아보겠습니다.



    Round Robin DNS 장점


    1. 비용적인 부담이 줄어든다.

     

    2. 중간의 장비 없이도 서비스 가능



    Round Robin DNS 단점


    1. 1대의 서버의 장애발생시 원인을 찾기 힘듬

     

    2. 부하의 분산이 고르지 않음

     

    3. 서버가 이상이 있는 경우에도 이상이 있는 서버로 부하를 분산



    '부하분산/로드밸런싱' 관련 글 more
    Posted by Server-talk 서버이야기
    • RaBi
      2020.02.24 19:47

      질문이 있습니다.
      NAS서버를 운용하는데 인터넷 회선을 3개를 쓰고 있습니다. 각 회선에 데이터 할당량이 150GB인데 한 회선의 할당량을 다 썼을 경우 다른 인터넷 회선으로 바꿔버리려고 합니다.
      이게 로드밸런싱에서 Fail Over기능으로 보이던데 로빈라운드로도 각 인터넷 회선의 할당량을 다 쓸 경우 다음 인터넷 회선으로 바뀌도록 할 수가 있습니까?

      • KeonWoo PARK
        2020.03.02 05:06

        아쉽게도 DNS 기반 로드밸런싱은, 서버의 장애 여부와는 관계 없이 라운드 로빈을 처리하고있습니다.

        말씀하신 Faliover 같은 로드밸런싱 기능을 사용하시려면 Haproxy를 알아보시는게 좋으실듯합니다.

        https://blog.develope.kr/2020/01/haproxy를-이용한-로드-밸런싱-구축하기-1-로드밸런싱이란/