응용 프로그램 요청 라우팅 모듈 서버 팜 정의 및 구성하기
개요
본문에서는 IIS 7.0 응용 프로그램 요청 라우팅(ARR, Application Request Routing) 버전 1을 사용해서 서버 그룹을 정의하고 구성하는 과정을 살펴봅니다. 서버 팜은 HTTP 분석 규칙과 로드 밸런스 알고리즘에 근거해서 HTTP 요청이 라우트되는 응용 프로그램 서버들의 논리적인 그룹입니다.
목표
IIS 7.0 응용 프로그램 요청 라우팅을 이용해서 다음과 같이 서버 팜을 정의하고 구성하는 것이 본문의 목표입니다:
전제조건
본문의 과정을 정상적으로 따라해보기 위해서는 먼저 다음과 같은 조건들을 만족해야 합니다:
- IIS 7.0이 설치되어 있는 윈도우 2008(모든 SKU 가능) 이상의 시스템
- 마이크로소프트 응용 프로그램 요청 라우팅 버전 1 및 관련 모듈들
- 사이트 및 응용 프로그램이 실행되고 있는 최소한 두 개 이상의 응용 프로그램 서버
만약, 아직 응용 프로그램 요청 라우팅을 설치하지 않았다면, 다음 링크에서 다운로드가 가능합니다: *
- Download Microsoft Application Request Routing Version 1 for IIS 7 (x86)
- Download Microsoft Application Request Routing Version 1 for IIS 7 (x64)
응용 프로그램 요청 라우팅을 설치하는 보다 자세한 방법은 응용 프로그램 요청 라우팅 설치하기를 참고하시기 바랍니다.
* 이전 문서에서 설명했던 것처럼 현재 ARR의 최신 버전은 2.5로(2011년 5월 17일 현재), 두 링크 중 어떤 것을 선택하더라도 그 결과는 같습니다. 결론적으로 웹 플랫폼 설치 관리자에 의해서 모든 설치 과정이 이뤄지도록 변경되었습니다.
단계 1 - 응용 프로그램 요청 라우팅을 이용해서 서버 팜 만들기
UI를 이용해서 서버 팜을 생성하고 정의하려면:
- IIS 관리자를 실행합니다.
- 응용 프로그램 요청 라우팅은 서버 수준 기능이므로, 먼저 서버의 루트 노드를 선택하고 확장합니다.
- 서버 팜을 생성하려면, "Server Farms" 노드를 마우스 오른쪽 버튼으로 클릭한 다음, "Create Server Farm..." 메뉴를 선택합니다.
- 서버 팜의 이름을 지정합니다.
본문의 예제에서는 서버 팜의 이름으로 "myServerFarm"을 사용하도록 하겠습니다.
"Next" 버튼을 클릭합니다.
- 다음으로 할 일은 서버 팜에 서버를 추가하는 것입니다.
마법사의 Add Server 페이지에서 필요한 만큼 응용 프로그램 서버를 추가할 수 있습니다.
이제 마지막으로 "Finish" 버튼을 클릭하면 방금 추가한 응용 프로그램 서버들이 멤버로 구성된 서버 팜이 생성됩니다.
노트: Advanced options... 링크를 이용해서 HTTP 및 HTTPS의 포트 번호를 비표준 번호로 구성할 수 있습니다 (표준 포트 번호는 HTTP가 80번이고 HTTPS가 443번입니다)
- 이제 성공적으로 응용 프로그램 서버들을 멤버로하는 서버 그룹이 생성되었습니다.
명령 프롬프트를 이용해서 서버 팜을 생성하고 정의하려면:
- 관리자 권한으로 명령 프롬프트를 엽니다.
- %windir%\system32\inetsrv로 이동합니다.
- 서버 팜을 생성하고 이름을 myServerFarm으로 지정하기 위하여 다음의 명령어를 입력합니다.
appcmd.exe set config -section:webFarms /+"[name='myServerFarm']" /commit:apphost
- 방금 생성한 myServerFarm 서버 팜에 이름이 wonyoo-w2k8인 응용 프로그램 서버를 추가하려면 다음의 명령어를 입력합니다.
appcmd.exe set config -section:webFarms /+"[name='myServerFarm'].[address='wonyoo-w2k8']" /commit:apphost
더 많은 서버를 서버 팜에 추가하려면 필요한 만큼 이 명령어를 반복하여 입력합니다. * - 이번 작업은 appcmd를 이용해서 서버 팜을 생성하는 경우에만 필요합니다.
UI를 이용해서 서버 팜을 생성하는 경우에는 URL 재작성 규칙이 자동으로 생성되므로 이런 작업이 필요 없습니다.
그러나, appcmd를 사용하는 경우에는 반드시 관리자가 직접 URL 재작성 규칙을 작성해야 합니다.
모든 전달된 HTTP 요청을 이름이 myServerFarm인 서버 팜으로 라우트하기 위해서 다음의 명령어를 입력합니다:
appcmd.exe set config -section:system.webServer/rewrite/globalRules /+"[name='ARR_myServerFarm_loadbalance',patternSyntax='Wildcard',stopProcessing='True']" /commit:apphost
appcmd.exe set config -section:system.webServer/rewrite/globalRules /[name='ARR_myServerFarm_loadbalance',patternSyntax='Wildcard',stopProcessing='True'].match.url:"*" /commit:apphost
appcmd.exe set config -section:system.webServer/rewrite/globalRules /[name='ARR_myServerFarm_loadbalance',patternSyntax='Wildcard',stopProcessing='True'].action.type:"Rewrite" /[name='ARR_myServerFarm_loadbalance',patternSyntax='Wildcard',stopProcessing='True'].action.url:"http://myServerFarm/{R:0}" /commit:apphost
* 물론, 명령어에 인자로 전달되는 응용 프로그램 서버의 이름은 매번 적절한 이름으로 달라져야 합니다.
단계 2 - 응용 프로그램 요청 라우팅을 위한 서버 팜의 속성 구성하기
정상적으로 서버 팜이 생성되고 정의되었다면, 응용 프로그램 요청 라우팅의 동작을 관리하기 위한 추가적인 속성들을 설정할 수 있습니다. 다만, 본문에서는 그 중 일부 속성들에 관해서만 살펴볼 것입니다.
UI를 이용해서 서버 팜의 속성을 구성하려면:
- myServerFarm 서버 팜 노드를 선택합니다.
그러면, 다음과 같은 아이콘들이 나타납니다:
- 여기에서는 "myServerFarm" 서버 그룹에 적용될 로드 밸런스 알고리즘을 변경해 볼 것입니다.
먼저, "Load Balance" 아이콘을 더블 클릭합니다.
그리고, "Load balance algorithm" 드롭 다운 리스트 박스에서 "Weighted round robin"을 선택한 다음 "Apply"를 클릭합니다.
- ARR은 서버의 상태를 점검하기 위한 목적으로 지정된 URL로 GET 요청을 전송하도록 구성할 수 있습니다.
이 기능을 구성하려면 "Health Test" 아이콘을 더블 클릭한 다음, "URL" 텍스트 박스에 ARR이 테스트에 사용할 경로를 입력합니다.
그리고, "Apply"를 클릭해서 변경된 내용을 저장합니다.
- ARR의 설정에 친숙해질 수 있도록, 다른 아이콘들도 직접 살펴보시기 바랍니다.
요약
본문에서는 mySeverFarm이라는 이름으로 서버 팜을 성공적으로 생성하고 정의해봤습니다. 현재 myServerFarm 서버 팜은 전달된 요청들을 멤버로 등록되어 있는 모든 응용 프로그램 서버에 균등하게 분배하도록 구성되어 있습니다. 보다 고급의 로드 밸런싱 설정에 관해서는 HTTP Load Balancing using Application Request Routing 문서를 참고하시기 바랍니다.
관련 자료
- 문서
- 응용 프로그램 요청 라우팅 설치하기 2011-05-13 18:43
- 응용 프로그램 요청 라우팅 모듈 사용하기 2011-05-17 15:27
- 응용 프로그램 요청 라우팅 모듈 서버 팜 정의 및 구성하기 2011-05-19 18:56
- 응용 프로그램 요청 라우팅을 이용한 HTTP 로드 밸런싱 2011-05-23 13:33
- 응용 프로그램 요청 라우팅을 이용한 3-티어 배포 아키텍처 구성하기 2011-05-30 14:34
- 응용 프로그램 요청 라우팅을 이용한 파일럿 프로그램 관리 2011-06-08 16:27
- 응용 프로그램 요청 라우팅 2.0을 이용한 공유 호스팅의 배포 개요 2011-07-03 15:12
- 응용 프로그램 요청 라우팅을 이용한 공유 호스팅 2011-07-10 13:34
- 응용 프로그램 요청 라우팅 서버들의 다중 인스턴스 이용하기 2011-07-14 14:18