SharePoint 2013에서 요청 관리자 사용
최초 문서 게시일: 2012년 9월 15일 토요일
아직 관련 정보가 많이 제공되지 않고 있으므로 이 게시물을 통해 RM(요청 관리자)과 관련된 몇 가지 PowerShell 스크립트를 제공하고자 합니다. RM을 잘 모르는 사용자를 위해 설명하자면, RM은 SharePoint 요청 라우팅 및 제한을 수행하도록 설계된 새로운 SharePoint 2013 기능입니다. SharePoint는 사용자 에이전트, 요청된 URL, 원본 IP 등 들어오는 요청의 특성을 파악하여 각 요청에 대한 응답을 사용자 지정할 수 있습니다. 즉, 정의된 규칙을 기준으로 요청을 라우팅할 수도 있고 요청 자체를 제한할 수도 있습니다. RM 규칙은 SharePoint 2010에서 제한이 적용되었던 방식과 마찬가지로 웹 앱별로 적용됩니다.
RM의 목표를 간략하게 설명하자면 다음과 같습니다.
- RM은 보다 정상적인 상태를 유지하면서 요청을 WFE로 라우팅함으로써 상태가 불량한 WFE도 활성 상태로 유지합니다.
- RM은 유해한 요청을 식별하여 즉시 거부할 수 있습니다.
- RM은 우선 순위가 높은 최종 사용자의 요청을 처리하기 위해 우선 순위가 낮은 봇의 요청을 제한함으로써 요청에 우선 순위를 적용할 수 있습니다.
- RM은 검색 등 특정 유형의 모든 요청을 특정 컴퓨터로 보낼 수 있습니다.
- 트래픽이 격리되므로 단일 컴퓨터의 오류를 해결할 수 있습니다.
- RM은 높은 로드를 생성하는 요청을 기능이 보다 뛰어난 WFE로 보낼 수 있습니다.
라우팅 및 제한 규칙은 다음과 같이 구현됩니다.
- 라우팅 규칙은 요청을 라우팅하며 MachinePools에 연결됩니다.
- MachinePools는 서버를 포함할 수 있습니다.
- 서버는 라우팅에 가중치(정적 가중치/상태 가중치)를 사용합니다.
- 정적 가중치는 WFE에 대해 일정하게 유지되고 상태 가중치는 상태 점수에 따라 동적으로 변경됩니다.
지금까지 RM에 대해 간략하게 설명했습니다. RM의 기능 및 사용법에 대해 자세히 확인하려는 경우 TechNet에서 다른 설명서를 참조할 수 있습니다. 이 게시물에서는 독자가 RM에 대해 충분히 숙지하고 있거나 많은 관심을 가지고 있으며, RM을 사용하여 특정 작업을 실제로 수행하려 한다고 가정합니다. 이제 작업을 시작할 수 있도록 몇 가지 PowerShell을 보여 드릴 텐데요, 개인적으로 RM 사용 시 이러한 cmdlet을 유용하게 활용했습니다. 기본적으로는 다음과 같은 과정을 진행합니다.
- SPWebApplication에 대한 참조를 가져옵니다.
- 웹 응용 프로그램의 요청 관리 설정에 대한 참조를 가져옵니다.
- 기준을 하나 이상 만듭니다.
- 요청은 규칙의 모든 기준과 일치해야 해당 규칙과 일치합니다(모든 기준이 AND로 포함됨).
- 컴퓨터 풀에 대한 참조를 가져오거나 필요한 경우 새 참조를 만듭니다.
- 규칙을 추가합니다.
그러면 아래 예를 살펴보겠습니다.
#SPWebApplication에 대한 참조 가져오기
$w = Get-SPWebApplication -identity https://foo
#웹 응용 프로그램의 요청 관리 설정에 대한 참조 가져오기
$rmset = $w | Get-SPRequestManagementSettings
#하나 이상의 기준 만들기
$criteria = New-SPRequestManagementRuleCriteria -Property Url -Value ".*\.docx" -MatchType Regex
#컴퓨터 풀에 대한 참조를 가져오거나 필요한 경우 새 참조 만들기
$mp = Add-SPRoutingMachinePool -RequestManagementSettings $rmset -Name MyRulePool -MachineTargets ($rmset | Get-SPRoutingMachineInfo -Name WFE1)
#규칙 추가
$rmset | Add-SPRoutingRule -Name "Word Doc Rule" -Criteria $criteria -MachinePool $mp
이제 라우팅 규칙을 표시해 보겠습니다.
$rr = $rmset | Get-SPRoutingRule -Name "Word Doc Rule"
#기준 표시
$rr.Criteria
#라우팅 규칙의 만료 날짜 및 시간 변경
$rr.Expiration = "12/25/2013 5:00:00 PM"
이제 라우팅 규칙이 작성되었습니다. 제한 규칙을 만드는 방법도 매우 비슷합니다.
#OneNote 요청을 찾는 새 기준 규칙 추가. 이 작업은 요청에서 UserAgent를 검사하여 OneNote에서 사용하는 헤더를 찾는 방법으로 수행할 수 있습니다.
$criteria = New-SPRequestManagementRuleCriteria -Property UserAgent -Value ".*Microsoft Office OneNote 2010*" -MatchType Regex
#서버 상태가 8점이 되면 기준 규칙을 사용하는 제한 규칙 추가.
#제한 규칙은 개별 컴퓨터가 아닌 #전체 웹 응용 프로그램에 적용되므로
#제한 규칙에는 컴퓨터 풀을 사용하지 않습니다.
$rmset | Add-SPThrottlingRule -Name "OneNote Throttle Rule" -Criteria $criteria -Threshold 8
#웹 응용 프로그램에 대한 모든 라우팅 규칙 보기
$rmset.RoutingRules
#모든 제한 규칙 보기
$rmset.ThrottlingRules
이제 컴퓨터 풀을 사용하는 방법을 좀 더 자세히 살펴보겠습니다.
#사용 가능한 모든 라우팅 컴퓨터 가져오기
Get-SPWebApplication | Get-SPRequestManagementSettings | Get-SPRoutingMachineInfo -Availability Available
#특정 풀의 모든 컴퓨터 가져오기
Get-SPWebApplication | Get-SPRequestManagementSettings | Get-SPRoutingMachinePool -Name yourPoolName | % { $_.MachineTargets} | Format-Table
#특정 웹 응용 프로그램의 모든 컴퓨터 풀에 WFE1 컴퓨터 추가. 이 작업에 도움을 준 Tyler에게 감사의 인사를 전합니다. 저는 사실 PowerShell에 그다지 능숙하지 않거든요.
$a = Get-SPWebApplication -Identity https://contoso
$b = $a | Get-SPRequestManagementSettings | Get-SPRoutingMachineInfo -Name WFE1
Get-SPWebApplication | Get-SPRequestManagementSettings | Get-SPRoutingMachinePool | % { $_ | Set-SPRoutingMachinePool -machinetargets ($_.machinetargets + $b) }
#특정 풀에 WFE1 컴퓨터 추가
$a = Get-SPWebApplication -Identity https://contoso
$b = $a | Get-SPRequestManagementSettings | Get-SPRoutingMachineInfo -Name WFE1
$pool = $a | Get-SPRequestManagementSettings | Get-SPRoutingMachinePool -Name yourPoolName
$pool | Set-SPRoutingMachinePool -MachineTargets ($pool.MachineTargets + $b)
#모든 컴퓨터 풀에서 WFE1 제거
Get-SPWebApplication | Get-SPRequestManagementSettings | Get-SPRoutingMachineInfo -Name WFE1 | Remove-SPRoutingMachineInfo
간단하죠? 이 cmdlet만으로도 RM 관련 작업을 시작하는 데는 충분할 것입니다.
이 문서는 번역된 블로그 게시물입니다. 원본 문서는 Working with Request Manager in SharePoint 2013을 참조하십시오.