응용 프로그램 요청 라우팅을 이용한 파일럿 프로그램 관리

등록일시: 2011-06-08 16:27,  수정일시: 2013-11-26 11:02
조회수: 4,315
이 문서는 IIS 기술을 널리 알리고자 하는 개인적인 취지로 제공되는 번역문서입니다. 이 문서에 대한 모든 저작권은 마이크로소프트에 있으며 요청이 있을 경우 언제라도 게시가 중단될 수 있습니다. 번역 내용에 오역이 존재할 수 있고 주석은 번역자 개인의 의견일 뿐이며 마이크로소프트는 이에 관한 어떠한 보장도 하지 않습니다. 번역이 완료된 이후에도 대상 제품 및 기술이 개선되거나 변경됨에 따라 원문의 내용도 변경되거나 보완되었을 수 있으므로 주의하시기 바랍니다.

개요

본문에서는 응용 프로그램 요청 라우팅을 이용해서 파일럿이나 베타 프로그램을 실행하고 관리하는 과정들을 살펴봅니다. 응용 프로그램 요청 라우팅은 특정 조건을 만족하는 사용자만 파일럿 사이트로 라우팅한다거나 파일럿 사이트로 전달되는 트래픽의 총량을 제한하고 관리하는 등의 용도로 활용할 수 있습니다. 본문에서는 사용자의 프로필에 따라 일부 요청을 파일럿 사이트로 라우트하기 위한 응용 프로그램 요청 라우팅의 구성 방법을 살펴보도록 하겠습니다.

목표

파일럿 프로그램을 런칭할 때 수반되는 위험을 완화시키고 통제가 가능하도록 응용 프로그램 요청 라우팅을 구성하는 것이 본문의 목표입니다.

전제조건

본문의 과정을 정상적으로 따라해보기 위해서는 먼저 다음과 같은 조건들을 만족해야 합니다:

  • IIS 7.0이 설치되어 있는 윈도우 2008(모든 SKU 가능) 이상의 시스템
  • 마이크로소프트 응용 프로그램 요청 라우팅 버전 1 및 관련 모듈들
  • 사이트 및 응용 프로그램이 실행되고 있는 최소한 네 개 이상의 콘텐츠 서버. 이 중 두 개의 서버는 운영 사이트 역할을, 나머지 두 개의 서버는 파일럿 사이트 역할을 수행하게 됩니다.
  • .NET 3.5가 설치되어 있는 컴퓨터와 마이크로소프트 인터넷 익스플로러를 대신할, 파이어폭스 등의 대체 브라우저. (테스트 할 때 필요합니다.)

만약, 아직 응용 프로그램 요청 라우팅을 설치하지 않았다면, 다음 링크에서 다운로드가 가능합니다: *

응용 프로그램 요청 라우팅을 설치하는 보다 자세한 방법은 응용 프로그램 요청 라우팅 설치하기를 참고하시기 바랍니다.

그리고, 마지막으로 응용 프로그램 요청 라우팅 모듈 서버 팜 정의 및 구성하기 문서에서 설명한 과정에 따라 정의 및 구성된 서버 팜이 준비되어 있어야만 합니다. 이 중 하나의 서버 팜은 운영 환경으로, 또 다른 서버 팜은 파일럿 환경으로 사용하게 됩니다.

* 이전 문서에서 설명했던 것처럼 현재 ARR의 최신 버전은 2.5로(2011년 6월 8일 현재), 두 링크 중 어떤 것을 선택하더라도 그 결과는 같습니다. 결론적으로 웹 플랫폼 설치 관리자에 의해서 모든 설치 과정이 이뤄지도록 변경되었습니다.

단계 1 - 사용자 프로필에 기반하여 요청을 라우트하도록 URL 재작성 규칙 수정하기

이번 단계에서는 컴퓨터에 .NET 3.5가 설치되어 있고 인터넷 익스플로러를 사용해서 접근하는 사용자들만 "pilotSiteServers"라는 이름으로 정의된 파일럿 사이트로 라우팅되도록 URL 재작성 규칙을 변경해봅니다. 그 밖의 다른 모든 사용자들은 "productionSiteServers"라는 이름으로 정의된 운영 사이트로 라우트 될 것입니다.

UI를 이용해서 URL 재작성 규칙을 수정하려면:

  1. IIS 관리자를 실행합니다.
  2. 좌측 트리뷰에서 "pilotSiteServers" 서버 팜을 선택합니다.
  3. 그러면, 다음과 같은 아이콘들이 나타납니다.
  4. "Routing Rules" 아이콘을 마우스로 더블 클릭합니다.
  5. 이번 시나리오에서는 HTTP 요청의 특정 헤더값에 따라 선택적으로 라우팅되는 복수의 서버 팜이 사용되기 때문에, 추가적인 옵션들을 제공해주는 URL 재작성 사용자 인터페이스를 통해서 필요한 수정 작업을 처리합니다. "Advanced Routing" 영역의 "URL Rewrite" 링크 버튼을 마우스로 클릭합니다.
  6. 이미 두 개의 규칙이 생성되어 있지만 수정이 필요합니다.
  7. 규칙들이 목록에 나타나는 순서가 대단히 중요합니다. 만약, "ARR_productionSiteServers_loadbalance" 규칙이 "ARR_pilotServers_loadbalance" 규칙보다 위쪽에 나타나있으면, 둘 둥 하나의 규칙을 선택한 다음 "Move Up" 링크 버튼이나 "Move Down" 링크 버튼을 이용해서 규칙들의 순서를 조정합니다.
  8. 그리고, "ARR_pilotSite_Servers_loadbalance" 규칙을 선택한 다음 "Actions" 패인에서 "Edit..." 링크 버튼을 마우스로 클릭합니다.
  9. 이제, .NET 3.5가 설치된 IE를 사용하는 클라이언트는 "pilotSiteServers" 서버 팜으로 접속되도록 URL 재작성 규칙을 수정해야 합니다. 따라서, 이를 위한 조건을 추가해줍니다. "Add Conditions" 버튼을 누르고 "Add..." 버튼을 클릭합니다.
  10. "Condition input" 텍스트 박스에는 "{HTTP_USER_AGENT}"를 입력하고, "Pattern" 텍스트 박스에는 "*MSIE*"를 입력합니다. 이 조건은 클라이언트가 IE를 사용하는 경우 만족하게 됩니다.
  11. 그리고, .NET 버전을 점검하기 위한 또 다른 조건을 추가합니다. 다시 "Add..." 버튼을 클릭한 다음, "Condition input" 텍스트 박스에는 "{HTTP_USER_AGENT}"를 입력하고, "Pattern" 텍스트 박스에는 "*.NET CLR 3.5*"를 입력합니다.
  12. 마지막으로 "Stop processing of subsequent rules" 옵션의 체크 박스를 해제한 다음, "Apply" 링크 버튼을 클릭해서 변경된 내용을 저장합니다.

이미 설명한 것처럼, URL 재작성 규칙들이 나타나는 순서가 매우 중요합니다. 지금처럼 "Stop processing of subsequent rules" 옵션이 해제된 경우에는 URL 재작성 규칙들이 목록에 나타난 순서대로 하나씩 순차적으로 처리되기 때문입니다. 결과적으로, 이번 시나리오에서는 목록의 가장 첫 번째 규칙인 "ARR_pilotSiteServers_loadbalance" 규칙이 제일 먼저 적용됩니다. 이 규칙은 클라이언트가 .NET 3.5가 설치되어 있는 컴퓨터에서 인터넷 익스플로러를 사용하고 있는지 여부를 확인하며, 만약 그렇다면 해당 요청은 "pilotSiteServers" 서버 팜으로 전달됩니다. 그리고, "Stop processing of subsequent rules" 옵션이 해제되어 있으므로 첫 번째 규칙에 해당하지 않은 나머지 모든 요청들은 "productionSiteServers" 서버 팜으로 전달되는 "ARR_productionSiteServers_loadbalance" 규칙이 적용됩니다.

명령 프롬프트를 이용해서 URL 재작성 규칙을 수정하려면:

  1. 관리자 권한으로 명령 프롬프트를 엽니다.
  2. %windir%\system32\inetsrv로 이동합니다.
  3. 다음의 명령어를 입력하여 HTTP_USER_AGENT 헤더값에 IE 및 .NET 3.5에 관한 정보가 포함되어 있는지 점검하도록 "ARR_pilotSiteServers_loadbalance" 규칙을 수정합니다:
    appcmd.exe set config -section:system.webServer/rewrite/globalRules 
        /+"[name='ARR_pilotSiteServers_loadbalance'].conditions.[input='{HTTP_USER_AGENT}',pattern='*MSIE*']" 
        /commit:apphost
    
    appcmd.exe set config -section:system.webServer/rewrite/globalRules 
        /+"[name='ARR_pilotSiteServers_loadbalance'].conditions.[input='{HTTP_USER_AGENT}',pattern='*.NET CLR 3.5*']" 
        /commit:apphost
  4. 다음의 명령어를 입력해서 "ARR_pilotSiteServers_loadbalance" 규칙의 "Stop processing of subsequent rules" 옵션을 해제합니다:
    appcmd.exe set config -section:system.webServer/rewrite/globalRules 
        /[name='ARR_pilotSiteServers_loadbalance'].stopProcessing:"False" 
        /commit:apphost

요약

본문에서는 URL 재작성 규칙들을 수정해서 응용 프로그램 요청 라우팅으로 사용자들 중 특정 조건을 만족하는 일부 사용자들만 파일럿 사이트에 접근할 수 있도록 처리를 해보았습니다. 응용 프로그램 요청 라우팅의 보다 많은 속성과 기능들을 살펴보려면 응용 프로그램 요청 라우팅을 이용한 HTTP 로드 밸런싱 문서를 참고하시기 바랍니다

관련 자료