가용성과 확장성이 높은 웹 그룹 구축

주요항목
down 소개
down 웹 서버용 로드 균형 조정 솔루션
down NLB를 사용한 Duwamish Online 웹 그룹
down 결론
down 부록:라운드 로빈 DNS가 작동하는 방법

Duwamish Online

Paul Johns 및 Aaron Ching
Microsoft Developer Network

요약:이 문서는 Duwamish Online에서 구현한 로드 균형 조정 솔루션을 사용한 것을 예로 들어 네트워크 로드 균형 조정(NLB)을 사용하여 가용성과 확장성이 높은 웹 그룹을 설치하는 방법을 논의합니다. 라운드 로빈 DNS(RRDNS), 로드 균형 조정 교환기 및 Microsoft Windows 2000 NLB 등의 세 가지 로드 균형 조정 방법에 중점을 두어 논의합니다.

소개 Back to Top

기업의 웹 응용 프로그램은 대개 업무에 중요한 작업을 수행하는데, 사용할 수 없게 되는 경우 그 손실이 해당 응용 프로그램과 인프라의 비용을 순식간에 초과할 수 있습니다. 따라서 이러한 응용 프로그램은 가용성과 안정성이 높아야 합니다. 가용성과 안정성을 확보하는 쉽고 효과적인 방법은 바로 추가 서버를 사용하는 것입니다. 둘 이상의 서버로 사이트를 구현하면 서버 중 하나가 손상되더라도 처리 요청을 다른 서버로 리디렉션할 수 있습니다. 이렇게 하면 웹 사이트의 가용성이 높아집니다.

서버를 몇 대 추가하는 것만으로도 가용성을 상당히 높일 수 있습니다. 가용성이 90%인 서버가 한 대 있을 경우 하루에 평균 2.4시간 동안 사용할 수 없음을 의미합니다. 대부분의 서버는 이보다 훨씬 더 안정적이지만, 논지를 설명하기 위하여 극단적인 예를 들어 보겠습니다. 어떤 순간에 서버가 실패할 확률은 0.1입니다. 안정성이 비슷한 수준의 서버를 하나만 추가하면 서버 두 대가 동시에 실패할 확률은 0.1 * 0.1 즉 0.01이 됩니다. 서버 중 하나를 사용할 수 있는 확률은 99%로 훨씬 향상되고 사용할 수 없는 시간은 하루에 14.4분 동안뿐입니다. 안정성이 낮은 서버를 7대 사용하면 최소한 서버 한 대를 사용할 수 있는 가능성은 99.99999%로 증가합니다. 물론 보다 좋은 하드웨어를 사용하면 가용성은 훨씬 높아질 것입니다. Microsoft® Windows® 2000 하드웨어의 가격이 상대적으로 낮은 점을 고려하면 서버를 추가하는 것은 가용성을 높이는 데 특히 매력적이고 비용 효과적인 전략입니다.

웹 서버를 추가하면 또한 보다 큰 로드를 효율적으로 처리하는 데도 도움이 됩니다. 이 문서에서 설명한 바람직한 클러스터 설계 지침을 따를 경우 거의 직선에 가까운 확장성(처리량이 추가 서버의 수와 직선으로 비례해서 증가함을 의미)을 얻을 수 있습니다.

그림 1은 웹 서버를 추가할 때 Duwamish Online 사이트의 성능을 보여줍니다.


[그림1]웹 그룹에 추가 웹 서버가 추가될 때의 Duwamish Online 확장성
현재 사용하는 브라우저가 인라인 프레임을 지원하지 않을 경우 여기를 누르면 새 창에서 볼 수 있습니다.

웹 그룹에서 사이트를 구현하면 처리 로드가 호스트 간에 분산될 수 있습니다. 클러스터가 받은 처리 요청이 해당 클러스터 내의 다른 호스트로 보내져 응답 시간은 줄고 응용 프로그램 처리량은 높아집니다. 클러스터 내의 각 호스트가 응용 프로그램에서 필요로 하는 서버 프로그램의 개별 사본을 실행합니다. 예를 들면 각 호스트가 웹 서버, FTP(파일 전송 프로토콜) 서버 또는 전자 메일 서버가 될 수 있습니다. 로드 균형 조정은 들어오는 클라이언트 요청을 클러스터 호스트 간에 분산시킵니다.

웹 서버용 로드 균형 조정 솔루션Back to Top

로드 균형 조정을 구현하는 방법은 여러 가지가 있습니다. 그러나 다음 세 가지 주요 로드 균형 조정 방법으로 제한해 논의하겠습니다.

  • 라운드 로빈 DNS(RRDNS)
  • 로드 균형 조정 교환기(예: Cisco LocalDirector, F5 Networks' BIG-IP 및 Alteon Websystems ACEdirector)
  • Windows 2000 네트워크 로드 균형 조정

각 로드 균형 조정 솔루션을 자세히 살펴 보겠습니다.

라운드 로빈 DNS

RRDNS는 인터넷 서버 그룹에 대해 제한된 형태의 TCP/IP(transmission Control Protocol/Internet Protocol) 로드 균형 조정을 가능하게 하는 간단한 저가의 솔루션입니다. 대개 BIND 4.9 이상의 지원이 있는 다른 많은 시스템뿐만 아니라 서비스 팩 4가 있는 Microsoft Windows NT® 4.0과 Windows 2000 같은 매우 인기가 높은 운영 체제의 표준 기능으로 무료로 제공되고 있습니다.

참고 BIND(Berkeley Internet Name Domain)는 사실상 DNS의 참조 구현입니다.

RRDNS는 실제로 클라이언트 요청이 풀 내의 모든 서버로 번갈아 보내져 서버 간에 소토량이 분배될 때 서버 풀이 클라이언트 단일 호스트로 나타나도록 합니다.

라운드 로빈 DNS가 비용에 민감한 많은 사이트 사이에서 인기 있지만 가용성이 높은 솔루션으로서는 효과적으로 기능하지 못합니다. 서버 실패 시 RRDNS는 실패한 서버가 DNS에서 수동으로 제거될 때까지 실패한 서버로 요청을 계속 라우트하므로 많은 사용자들이 대상 웹 사이트에 성공적으로 액세스할 수 있기 전에 DNS가 자신의 연결을 시간 제한할 때까지 기다려야 합니다.

RRDNS가 작동하는 방법에 대한 보다 깊이 있는 토론을 보려면 부록을 참조하십시오.

로드 균형 조정 교환기

Cisco LocalDirector, F5 Networks' BIG-IP 및 Alteon Websystems ACEdirector 같은 로드 균형 조정 교환기는 TCP/IP 요청을 서버 그룹 내의 여러 서버에 리디렉션하므로 안정성도 있으면서 확장성이 높은, 상호 운영 가능 솔루션을 제공합니다.

이들 교환기는 인터넷과 웹 그룹에 대한 연결 사이에 자리합니다. 모든 요청이 같은 IP 주소를 사용하여 교환기로 가면 교환기는 해당 교환기에 구현된 다양한 알고리즘에 따라 다른 웹 서버로 요청을 전달합니다. 교환기는 그룹 내의 서버를 자주 핑(Ping)하여 해당 서버가 가동 중인지, 또 얼마나 바쁜지 확인할 수 있습니다. 따라서 교환기는 로드 균형 조정을 비교적 효율적으로 관리할 수 있습니다.

또 다른 일반적인 알고리즘은 요청자의 IP 주소나 요청의 기타 정보와 같은 요청의 내용에 따라 로드의 균형을 조정하는 것입니다. 일부 인터넷 서비스 공급자(ISP)와 일부 회사는 프록시를 통하여 동일한 주소로 가는 모든 요청자의 IP 주소를 변경하는 프록시 서버를 사용하기 때문에 IP 주소만을 사용하면 제대로 작동하지 않습니다.

로드 균형 조정 교환기를 사용하는 것이 라운드 로빈 DNS를 사용하는 것보다 훨씬 낫고 확장성이 뛰어납니다. 하지만 교환기는 상당히 비싸고 교환기가 전체 웹 응용 프로그램에 대한 유일한 오류 지점이 되는 것을 방지하려면 여러 대의 교환기가 필요합니다. 다음 솔루션인 Windows 2000 Network NLB는 대개 로드 균형 조정 교환기보다 값이 싸고 유일한 오류 지점을 방지합니다.

Windows 2000 NLB

네트워크 로드 균형 조정(NLB)은 Windows 2000 Advanced Server와 Windows 2000 Datacenter Server에서 사용할 수 있는 클러스터링 기술 중 하나입니다. 이 기술은 웹 서버와 LDAP(Lightweight Directory Access Protocol) 서버 같은 IP 기반 응용 프로그램에 높은 수준의 가용성과 확장성을 제공합니다. Microsoft Application Center 2000은 Advanced Server보다는 Windows 2000 Server에서 NLB를 제공합니다.

NLB는 TCP/IP 서비스를 제공하는 복수 서버의 클러스터 간에 들어오는 IP 소통량을 분산시킵니다. 전체 클러스터에 대해 하나의 공통 가상 IP 주소를 활용하여 클러스터 내의 여러 서버 간에 클라이언트 요청을 투명하게 분할합니다.

그림 2는 NLB가 작동하는 방법을 보여줍니다.

D5NLB02
[그림2]네트워크 로드 균형 조정 구조

클러스터에 대한 공통 외부 IP 주소 외에도 클러스터 내의 각 서버는 전용 네트워크 주소에도 응답합니다. 따라서 각 시스템은 두 개의 네트워크 주소, 클러스터 네트워크 주소전용 네트워크 주소에도 응답합니다. 네트워크 로드 균형 조정은 호스트의 상위 수준 프로토콜 TCP/IP와 네트워크 어댑터 사이에 논리적으로 배치된 네트워크 드라이버를 사용하여 구현됩니다. 모든 클러스터 호스트가 들어오는 소통량을 받습니다. NLB 네트워크 드라이버는 필터의 역할을 하여 호스트가 들어오는 소통량의 일부만 처리할 수 있도록 합니다. 들어오는 요청은 호스트에 대한 NLB 설정값에 따라 받아들여집니다. NLB 설정값에 대해서는 이후에 알아보겠습니다.

NLB를 구축했을 때의 장점은 아래와 같습니다.

  • 내결함성. 네트워크 로드 균형 조정은 작동하지 않는 호스트를 자동으로 감지하여 복구할 수 있습니다. 오프라인 호스트의 경우에는 들어오는 소통량이 모든 서버 간에 분산됩니다. 유일한 오류 지점을 방지하기 위해 추가 하드웨어가 필요하지 않습니다.
  • 더 높은 수준의 확장성. 네트워크 로드 균형 조정은 최대 32대의 컴퓨터를 지원합니다. 하지만 대개 그보다 적은 16-24대의 컴퓨터로 이루어진 클러스터가 더 나은 리소스 사용률을 제공합니다. 수행 능력이 더 필요할 경우 NLB와 앞에서 논의한 두 가지 로드 균형 조정 방법 중 하나를 조합하여 복수 NLB 클러스터 간에 로드 균형을 조정할 수 있습니다.
  • 향상된 성능. 대부분의 로드 균형 조정 교환기와 달리 네트워크 로드 균형 조정 성능은 클러스터 호스트 및 LAN(Local Area Network)의 속도와 함께 자동으로 향상되므로, LAN과 호스트의 속도가 향상됨에 따라 병목 현상이 발생하지 않도록 보장합니다.
  • 관리 효율. 호스트에 대한 처리 로드를 사용자 정의하기 위해 단일 TCP 포트에 대한 로드 균형 조정을 지정할 수 있습니다. 또한 특정 포트에 대한 액세스를 차단할 수도 있습니다.
  • 사용의 편리함. 네트워크 로드 균형 조정은 표준 네트워킹 드라이버 구성 요소를 설치하므로 특별한 하드웨어를 실행할 필요가 없습니다. 시스템을 클러스터에 포함시키거나 시스템을 클러스터에서 제거하는 작업은 쉽습니다. Application Center 2000 서버가 출시되면 더 쉬워질 것입니다. 자세한 내용은 http://www.microsoft.com/applicationcenter/default.htm 을 참조하십시오.

NLB를 사용한 Duwamish Online 웹 그룹 Back to Top

Duwamish Online에서 구현한 로드 균형 조정 솔루션을 살펴 보겠습니다. Duwamish Online의 경우 네트워크 하드웨어는 100Mbps 교환기를 사용합니다.

교환기는 OSI(Open Systems Interconnection) 데이터 연결 계층에 해당합니다. 교환기는 네트워크 장치 사이에 충돌 없는 전용 통신을 제공하며 두 포트 간에 복수의 동시 데이터 전송을 가능하게 하여 네트워크 성능을 향상시킵니다.

교환기는 시작되면 각 네트워크 어댑터 카드의 미디어 액세스 제어 주소와 해당 어댑터가 연결되는 포트 번호와의 테이블을 작성합니다. 따라서 포트 1의 호스트가 포트 2의 또 다른 호스트에 데이터 패킷을 보내야 할 경우 교환기가 데이터 패킷을 포트 2로 직접 전달합니다. 이런 방식에서는 포트 2로 전송하기 위해 다른 호스트나 포트가 데이터 패킷에 응답할 필요가 없습니다.

네트워크 로드 균형 조정에서는 미디어 액세스 컨트롤 주소가 클러스터 네트워크 어댑터의 미디어 액세스 제어 주소로 대체됩니다. 해당 클러스터 내의 모든 호스트가 이 미디어 액세스 제어 주소를 사용합니다. 들어오는 요청의 경우 교환기는 해당 클러스터 미디어 액세스 제어 주소와 연관된 모든 포트로 해당 요청을 전달합니다. 해싱 알고리즘에 따라 호스트 중 하나가 해당 패킷을 받아들이고 다른 호스트는 무시합니다. 처리 후에는 데이터 패킷이 처음 수신한 포트로 다시 보내집니다.

교환기는 여러 대화를 동시에 전체 대역폭에서 처리할 수 있기 때문에 교환기를 사용했습니다. 따라서 클러스터가 한 요청을 처리 중인 상태에서 또 다른 요청을 받을 경우 또 다른 호스트가 해당 데이터 패킷을 선택하여 처리를 시작할 수 있습니다. 따라서 높은 수준의 시스템 성능이 보장됩니다.

그림 3은 Duwamish Online 사이트의 네트워크 구조와 교환기가 현재 어떻게 구축되어 있는지를 보여줍니다.


[그림3 ]Duwamish Online 하드웨어 구성
현재 사용하는 브라우저가 인라인 프레임을 지원하지 않을 경우 여기를 누르면 새 창에서 볼 수 있습니다.

NLB 클러스터 설치

클러스터 내의 각 호스트에 대해 특정 NLB 설정값을 지정해야 합니다. 또한 전체 클러스터에 대해서도 몇 가지 매개 변수를 지정해야 합니다. 따라서 해당 클러스터 내의 모든 호스트에 대해 클러스터 차원의 설정값이 동일해야 합니다.

서버에 대한 NLB 구성

  1. Windows 바탕 화면에서 네트워크 환경 아이콘을 마우스 오른쪽 단추로 누른 다음 등록 정보를 선택합니다. 네트워크 및 전화 접속 연결 창에서 외부 네트워크 세그먼트에 연결된 네트워크 어댑터를 마우스 오른쪽 단추로 누릅니다. 등록 정보를 선택하여 로컬 영역 연결 등록 정보 대화 상자를 엽니다.
  2. 네트워크 로드 균형 조정 확인란을 선택하고 등록 정보 단추를 눌러 네트워크 로드 균형 조정 등록 정보 대화 상자를 엽니다.
  3. 클러스터 매개 변수 탭을 누릅니다.
  4. 해당 클러스터 내의 모든 서버 간에 클러스터 매개 변수가 일관성이 있어야 합니다. 다음 표에 클러스터 매개 변수 중 일부가 설명되어 있습니다.

    [표1]클러스터 매개 변수

    매개 변수
    설명
    주 IP 주소이 주소는 일반적인 점 표기법으로 지정되며 해당 클러스터의 가상 IP 주소에 해당합니다.
    서브넷 마스크이 매개 변수는 해당 클러스터의 서브넷 마스크를 지정하며 일반적인 점 표기법으로 지정됩니다.
    전체 인터넷 이름이 매개 변수는 클라이언트에서 액세스할 때의 해당 클러스터의 인터넷 이름을 지정합니다. Duwamish Online 사이트의 경우 "www.duwamishonline.com"이 사용됩니다.
    네트워크 주소이 매개 변수는 해당 클러스터의 미디어 액세스 제어 주소를 지정하는데, 이 주소는 클라이언트 간의 소통량을 처리하는 데 사용됩니다. 이 주소는 해당 클러스터의 IP주소를 기준으로 생성됩니다. Duwamish Online은 NLB에서 설정한 기본값을 사용합니다.

  5. 호스트 매개 변수 탭을 누릅니다.
  6. 호스트 매개 변수는 해당 클러스터 내의 각 호스트마다 고유합니다.

    [표2]호스트 매개 변수

    매개 변수
    설명
    Priority ID(우선 순위 ID)이 매개 변수는 TCP 및 UDP 포트에 대한 소통량을 처리하기 위한 우선 순위를 지정합니다. 각 시스템마다 고유 값을 가져야 합니다. Duwamish Online은 클러스터 내의 시스템 4대에 대해 값 1, 2, 3, 4를 사용합니다.
    초기 클러스터 상태이 매개 변수는 해당 호스트에서 Windows 2000이 시작될 때 네트워크 로드 균형 조정이 시작될 것인지 여부와 호스트가 클러스터에 참여하는 지를 지정합니다. Duwamish Online은 기본값 active를 사용합니다.
    전용 IP 주소이 매개 변수는 해당 클러스터와 관련이 없는 소통량에 사용될 IP 주소를 지정합니다.
    서브넷 마스크이 매개 변수는 지정된 IP 주소에 대한 서브넷 마스크를 지정합니다.

  7. 포트 규칙 탭을 누릅니다.
  8. 각 TCP 및 UDP 프토 클러스터 소통량이 처리되는 방법을 규정한 규칙을 지정해야 합니다.

    포트 규칙은 연속 주소 범위에 대해 지정됩니다. 포트 443은 SSL(Secure Sockets Layer)에 의해 사용되므로 특수 구성이 필요합니다. 다음 표에 나열된 포트 규칙을 추가합니다.

    [표3]포트 규칙

    포트 범위포트 규칙
    0-442필터링 모드:다중 호스트 특수 클라이언트 선호도: 없음
    443-443필터링 모드:다중 호스트 특수 클라이언트 선호도: 단일
    444-64000필터링 모드:다중 호스트 특수 클라이언트 선호도: 없음

호스트에 대하여 아래 세 가지 필터링 모드 중 하나를 지정할 수 있습니다.

  • 다중 호스트는 네트워크 소통량이 해당 클러스터 내의 다중 호스트에 의해 처리되도록 지정합니다.
  • 단일 호스트는 포트와 관련된 네트워크 소통량이 해당 클러스터 내의 단일 호스트에 의해 처리되도록 지정합니다.
  • 사용 안 함은 특정 호스트에 대한 모든 네트워크 소통량이 차단되도록 지정합니다.

Duwamish Online 사이트의 경우 소통량이 클러스터 내의 모든 호스트 간에 골고루 분산되도록 대부분의 호스트에 대해 다중 호스트를 선택합니다.

또한 클라이언트 선호도를 지정하여 특정 클라이언트에서 온 소통량을 클러스터 내의 특정 호스트가 처리하도록 합니다.

  • 없음은 네트워크 로드 균형 조정이 복수 요청을 같은 클라이언트에서 같은 호스트로 지정할 필요가 없음을 나타냅니다.
  • 단일은 같은 클라이언트에서 온 복수 요청이 특정 호스트로만 지정될 것임을 나타냅니다.
  • 클래스 C는 네트워크 로드 균형 조정이 같은 TCP/IP 클래스 C 범위의 복수 요청을 같은 호스트로 지정함을 나타냅니다.

Duwamish Online 사이트의 경우 같은 클라이언트에서 온 요청이 여러 서버에 의해 처리될 수 있도록 대부분의 포트에 대해 없음을 지정합니다.

클러스터에서 노드 제거

흔히 시스템 하드웨어 또는 응용 프로그램 소프트웨어 업그레이드 같은 예약된 유지 관리 작업을 위해 웹 서버 노드를 제거하는 작업이 필요합니다. 또는 웹 서버 중 하나가 제대로 응답하지 못하기 때문에 운영 팀에서 자세히 조사하기 위해 해당 노드를 제거하기로 결정할 수도 있습니다.

NLB 클러스터에서 웹 서버 노드를 제거하는 작업은 매우 간단합니다.

  1. 명령 프롬프트에서 "wlbs stop"를 입력하면 해당 노드가 클러스터에서 분리됩니다.
  2. 해당 클러스터에 있는 다른 기존 노드의 명령 프롬프트에서 "wlbs query"를 입력하여 제거된 노드의 우선 순위 ID가 사라졌는지 확인합니다.

운영 팀은 이제 제거된 노드가 인터넷으로부터 어떠한 요청도 더 이상 받지 않기 때문에 그에 대해 선택한 모든 작업을 수행할 수 있습니다.

클러스터에 노드 추가

사이트로의 소통량이 늘어나면 NLB 클러스터에 추가 웹 서버 노드를 추가하여 추가 로드에 대비하여 용량을 늘리고자 할 수도 있습니다. 다음은 한 클러스터 당 최대 32개의 노드까지 NLB 클러스터를 확장하기 위한 단계입니다.

  1. 기존의 다른 웹 서버와 유사하거나 동일한 하드웨어 구성을 가진 서버 시스템을 사용합니다.
  2. 새 서버에 운영 체제, 타사 소프트웨어 및 응용 프로그램의 모든 구성 요소를 포함하여 완전히 똑같은 소프트웨어를 설치합니다.
  3. 새 서버에 완전히 똑같은 시스템 구성 및 성능 구성 프로시저를 적용합니다.
  4. 고유 우선 순위 ID와 전용 IP 주소를 제외하고 서버에 대해 똑같은 NLB 설정 매개 변수를 사용합니다.
  5. 모든 네트워크 케이블 연결이 올바르게 설치되었는지 확인합니다. 새 서버를 부팅합니다.
  6. 명령 프롬프트에서 "wlbs start"를 입력하면 해당 서버가 NLB 클러스터의 노드로서 가입됩니다.
  7. 명령 프롬프트에서 "wlbs query"를 입력하여 새 서버의 우선 순위 ID가 확장된 클러스터의 일부로 나타나는지 확인합니다.

클러스터의 응용 프로그램 상태 관리

클러스터에서는 서버 그룹이 응용 프로그램 상태(즉, 클라이언트 세션에 고유한 데이터)를 관리하는 것이 어렵습니다. 웹 서버가 하나만 사용될 경우 세션 상태가 웹 서버에서 저장될 수도 있습니다. 그러나 동일 클라이언트에서 온 요청이 클러스터 내의 다른 서버로 지정되도록 클라이언트와 서버 간에 선호도가 관리되지 않는 경우에는 로드 균형 조정 구성표가 매우 효과적입니다. 따라서 이러한 경우에는 세션 데이터가 웹 서버에 외부적으로 관리되어야 합니다. Duwamish Online에서는 세션 상태를 별도의 데이터베이스에 저장하는데, 클러스터 내의 모든 서버가 이 데이터베이스에 액세스할 수 있습니다. 데이터베이스가 유일한 실패 지점이 되는 것을 방지하기 위해서는 디스크 저장 장치에 대해 장애 조치 클러스터링과 RAID 어레이를 사용하여 데이터베이스 서버를 가능한 한 안정성 있게 만들어야 합니다.

클러스터에 대한 장애 조치 테스트

장애 조치 동안 NLB가 어떻게 작동하는지 보여주기 위해 우리는 Microsoft Web Application Stress Tool(http://webtool.rte.microsoft.com/)을 사용하여 2 노드 NLB 클러스터에 대해 로드 테스트를 실시했습니다. 사이트의 로드 테스트에 대한 자세한 내용은 곧 발간될 Duwamish Online 성능 테스트 문서를 찾아 보십시오.

이 테스트의 경우에는 웹 서버 두 대와 데이터베이스 서버 한 대가 설치되었습니다. 처음에는 두 웹 서버가 같은 로드로 NLB 클러스터에서 실행되었습니다. 테스트가 시작된 후 약 1분 후에 웹 서버 #2의 네트워크 연결이 일부러 제거되어 해당 서버의 네트워크 또는 하드웨어 오류를 시뮬레이트합니다. 약 1분 후 네트워크 연결이 다시 설정되어 웹 서버 #2가 자동으로 NLB 클러스터에 다시 수렴됩니다.

테스트 결과에 따르면 웹 서버 #2가 작동할 수 없게 된 후(이 경우에는 웹 서버 #2의 연결이 네트워크에서 끊어짐) 20초 내에 새로운 모든 요청을 웹 서버 #1이 넘겨 받습니다. 장애 조치 발생 후에는 초당 약 55 페이지의 전체 시스템 처리량이 웹 서버 #1에 의해 유지됩니다. 이것은 NLB 클러스터 내의 나머지 서버가 매우 짧은 시간 내에 자동으로 새로운 요청을 계속해서 처리한다는 것을 보여줍니다.

웹 서버 #2가 네트워크에 다시 연결된 후 원래의 시스템 처리량으로 다시 복구하는 데는 15-20초 걸렸습니다. 그림 4는 웹 서버 #2가 매우 짧은 시간 내에 NLB 클러스터로 다시 수렴되어 계속해서 웹 서버 #1과 균등하게 새로운 요청을 처리한다는 것을 보여줍니다.


[그림4]장애 조치 동안의 NLB 클러스터의 시스템 처리량
현재 사용하는 브라우저가 인라인 프레임을 지원하지 않을 경우 여기를 누르면 새 창에서 볼 수 있습니다.

클러스터의 확장성 테스트

그림 5는 NLB 클러스터 내에 웹 서버 수를 달리하여 Duwamish Online 사이트의 로드를 테스트한 결과를 보여줍니다. 사용된 서버는 저렴한 이중 처리기, 워크스테이션 유형의 시스템입니다. 클러스터에 시스템을 추가하면 용량이 직선으로 증가하는 것에 유의하십시오. 앞에서 언급한 것처럼 리소스 활용률이 최대가 되는 경우는 대개 서버가 NLB에서 지원하는 최대 개수인 32대보다 훨씬 아래인 16-24대로 한정된 클러스터에서 발생합니다. 라운드 로빈 DNS나 로드 균형 조정 교환기 중 하나를 사용하여 복수 NLB 클러스터 간에 로드 균형을 조정하면 이보다 규모가 큰 클러스터도 구축할 수 있습니다. 다중 처리기 서버의 NLB 클러스터도 확장성이 매우 큽니다.


[그림5]웹 서버를 추가하여 시스템 처리량 증가
현재 사용하는 브라우저가 인라인 프레임을 지원하지 않을 경우 여기를 누르면 새 창에서 볼 수 있습니다.

결론Back to Top

이것은 안정성과 확장성 측면에서 볼 때 여러 대의 웹 서버에서 사용자의 웹 사이트를 처리하도록 할 수 있기 때문에 아주 중요합니다.여러 대의 서버를 사용하려면 로드 균형 조정 기능이 있어야 합니다.

가장 간단한 형태는 라운드 로빈 DNS이지만, RRDNS에는 수 많은 기술적 한계가 있습니다. 이 중 최악의 기술적 한계는 속도가 느리거나 반응이 없는 서버를 찾을 방법이 없어서 서버가 요청을 처리할 수 있는지 여부에 관계 없이 해당 서버로 요청을 보낸다는 것입니다. 그러나 RRDNS는 규모가 작고 중요하지 않은 웹 사이트에는 때때로 성공적으로 사용되며 보다 일반적으로는 클러스터 집합 간에 로드 균형을 조정하는 데 사용됩니다.

많은 사이트가 특히 자신에 속한 웹 서버에서 Microsoft Windows NT Server나 Windows 2000을 사용하지 않는 사이트가 로드 균형 조정 교환기를 사용하여 요청을 분산시킵니다. 로드 균형 조정 교환기는 로드를 잘 분산시키지만 값이 비싸고 유일한 오류 지점을 나타내므로 웹 응용 프로그램의 안정성과 가용성을 감소시킬 수 있습니다.

Windows 2000을 사용한다면 Windows 2000 Advanced Server 네트워크 로드 균형 조정의 사용을 고려해 볼 수 있습니다. 이 제품은 유일한 오류 지점을 추가하지도 않고, 비싼 하드웨어를 필요로 하지 않으며, 대개 로드 균형 조정 교환기보다 저렴합니다. Windows NT 시스템을 위한 Windows 로드 균형 조정 서비스(WLBS)라고 하는 버전도 있습니다.

부록:라운드 로빈 DNS가 작동하는 방법Back to Top

응용 프로그램이나 사용자가 인터넷의 리소스를 요청할 경우 해당 리소스의 인터넷 이름을 사용할 수 있습니다. 예를 들면 응용 프로그램이 IP 주소 대신 "msdn.microsoft.com"이라는 이름을 사용합니다. 그러나 인터넷에서 리소스를 찾기 위해서도 해당 리소스의 IP 주소를 알고 있어야 합니다. DNS(Domain Name System)는 리소스의 인터넷 이름을 해당 IP 주소로 변환하는 표준 방법입니다. 이름을 해당 IP 주소로 변환하는 방법을 이름 확인이라고 합니다. DNS에 대한 자세한 내용은 Setting Up a Domain Name System 문서를 참조하십시오.

도메인의 DNS 서버가 쿼리될 때마다 다른 IP 주소(또는 다른 순서의 가능한 IP 주소 집합)를 제공할 수도 있습니다. 각 IP 주소마다 요청을 똑같이 처리할 수 있는 논리적으로 동일한 서버를 가리킵니다. 다른 클라이언트는 다른 IP 주소를 가진 다른 시스템으로 경로가 지정되기 때문에 이로 인해 근본적인 형태의 로드 균형 분산이 제공됩니다.

RRDNS의 주요 장점은 추가 하드웨어가 필요하지 않다는 것입니다. 즉 DNS 서버를 적절히 설치하기만 하면 서버가 작동합니다. 그러나 많은 사이트가 로드 균형 조정에 RRDNS를 사용하지 않게 하는 단점도 몇 가지 있습니다.

  • DNS의 캐싱 기능은 들어오는 모든 요청이 DNS 서버에서 직접 자신의 주소를 받지 않으므로 완벽한 로드 균형 조정을 방해합니다.
  • 이 문제는 캐싱을 사용 불가능하게 하면 해결할 수 있지만, 그렇게 하는 것은 모든 확인 작업이 서버에 의해 확인되어야 하므로 이로 인해 비용이 많이 들고 사용자에게는 잠재적으로 속도가 더 떨어질 가능성이 있다는 것을 의미합니다.

  • DNS 서버는 웹 그룹에 있는 서버 중 하나 이상이 오버로드되거나 서비스를 못하는지를 확인할 수 없습니다. 따라서 일부 서버가 지나치게 로드되거나 반응을 하지 않는 경우에도 라운드 로빈 구성표는 차례로 모든 서버에 소통량을 보냅니다. 이것은 확실히 불편한 일이며 사용자는 새로 고침을 눌러 다시 시도할 수 있지만 캐싱이 발생하지 않는다면 성공할 가능성이 희박합니다.

라운드 로빈 DNS는 주로 마지막 문제 때문에(적어도 무관하지는 않음) 규모가 크거나 임무에 중요한 웹 그룹에는 거의 사용되지 않습니다. 그러나 서버가 2-3대인 웹 그룹의 로드 균형 조정에는 RRDNS를 사용할 수 있습니다. 또는 본 문서에서 언급한 기타 로드 균형 조정 솔루션 중 하나를 통하여 균형을 조정한 서버 클러스터 2-3대 사이의 로드 균형을 조정하는 데 이를 사용할 수 있습니다. 이 때 전체 클러스터가 실패할 확률은 근소합니다.


 

최종 수정일 : 2002.5.23