네트워크 부하 분산 클러스터에서 보고서 서버 구성

NLB(네트워크 부하 분산) 클러스터에서 실행되도록 보고서 서버 스케일 아웃을 구성하는 경우 다음 작업을 수행해야 합니다.

  • 가상 서버 IP 주소에 매핑되는 가상 서버 이름을 통해 NLB 클러스터에 액세스할 수 있는지 확인합니다. 가상 서버 이름은 NLB 클러스터에 대한 단일 진입점을 구성하기 위해 필요합니다. 각 보고서 서버 인스턴스에 대한 URL을 구성할 때 가상 서버 이름을 호스트로 지정합니다.

  • 대화형 보고서 보기를 지원하도록 뷰 상태 유효성 검사를 구성합니다. 대화형 보고서는 일반적으로 단일 사용자 세션 동안 사용자 동작에 대한 응답으로 새 데이터나 다른 데이터를 시각화하기 위해 여러 번 렌더링됩니다. 뷰 상태 유효성 검사를 구성하면 실제 요청을 제공하는 보고서 서버에 관계없이 사용자 세션 내에서 근접성이 유지됩니다.

Reporting Services는 스케일 아웃 배포 부하를 분산하거나 공유 URL을 통해 단일 액세스 지점을 정의하는 기능을 제공하지 않습니다. 따라서 Reporting Services 스케일 아웃 배포를 지원하기 위한 별도의 소프트웨어 또는 하드웨어 NLB 클러스터 솔루션을 구현해야 합니다.

Reporting Services를 이미 NLB 클러스터에 속하는 노드에 설치하거나 먼저 스케일 아웃 배포를 구성한 후 클러스터 소프트웨어를 설치할 수 있습니다.

NLB 클러스터에서 보고서 서버 배포 단계

배포를 설치하고 구성하려면 다음 지침을 따르십시오.

단계 설명 추가 정보
1 NLB 클러스터의 서버 노드에서 Reporting Services를 설치하기 전에 스케일 아웃 배포를 위한 요구 사항을 확인합니다. 기본 모드 보고서 서버 스케일 아웃 배포 구성
2 NLB 클러스터를 구성하고 제대로 작동하는지 확인합니다.

NLB 클러스터의 가상 서버 IP에 호스트 헤더 이름을 매핑합니다. 호스트 헤더 이름은 보고서 서버 URL에서 사용되며 IP 주소보다 기억하기 쉽고 입력하기도 편리합니다.
자세한 내용은 실행 중인 Windows 운영 체제 버전에 대한 Windows Server 제품 설명서를 참조하십시오.
3 호스트 헤더의 NetBIOS 및 FQDN(정규화된 Do기본 이름)을 Windows 레지스트리에 저장된 목록에 BackConnectionHostNames 추가합니다.

예를 들어 호스트 헤더 이름 <MyServer> 가 Windows 컴퓨터 이름 "contoso"의 가상 이름인 경우 FQDN 양식을 참조 contoso.domain.com할 수 있습니다. 호스트 헤더 이름(MyServer)과 FQDN 이름(contoso.do기본.com)을 모두 목록에 BackConnectionHostNames추가해야 합니다.

그런 다음, 컴퓨터를 다시 시작하여 변경 내용이 적용되도록 합니다.
이 단계는 서버 환경의 로컬 컴퓨터에 NTLM 인증이 사용되어 루프백 연결이 생성되는 경우에 필요합니다.

이 경우 보고서 관리자와 보고서 서버 간의 요청이 401(권한 없음)으로 실패합니다.
4 NLB 클러스터에 이미 속해 있는 노드에 Reporting Services를 파일만 모드로 설치하고 스케일 아웃 배포를 위한 보고서 서버 인스턴스를 구성합니다.

구성한 확장은 가상 서버 IP에 전송되는 요청에 응답하지 않을 수 있습니다. 가상 서버 IP를 사용하도록 확장을 구성하는 작업은 뷰 상태 유효성 검사를 구성한 후 그 다음 단계에서 수행됩니다.
기본 모드 보고서 서버 스케일 아웃 배포 구성(보고서 서버 구성 관리자)
5 뷰 상태 유효성 검사를 구성합니다.

최상의 결과를 얻으려면 스케일 아웃 배포를 구성한 후에 가상 서버 IP를 사용하도록 보고서 서버 인스턴스를 구성하기 전에 이 단계를 수행하세요. 뷰 상태 유효성 검사를 먼저 구성하면 사용자가 대화형 보고서에 액세스할 때 상태 유효성 검사 실패에 대한 예외가 발생하는 것을 방지할 수 있습니다.
이 문서에서 뷰 상태 유효성 검사를 구성하는 방법입니다.
6 NLB 클러스터의 가상 서버 IP를 구성 Hostname 하고 UrlRoot 사용합니다. 이 문서에서 호스트 이름 및 UrlRoot 를 구성하는 방법입니다.
7 지정한 호스트 이름을 통해 서버에 액세스할 수 있는지 확인합니다. 이 문서에서 보고서 서버 액세스를 확인합니다.

뷰 상태 유효성 검사 구성

NLB 클러스터에서 스케일 아웃 배포를 실행하려면 사용자가 대화형 HTML 보고서를 볼 수 있도록 뷰 상태 유효성 검사를 구성해야 합니다. 보고서 서버 웹 서비스에 대한 뷰 상태 유효성 검사를 구성해야 합니다.

NLB 클러스터에서 스케일 아웃 배포를 실행하려면 사용자가 대화형 HTML 보고서를 볼 수 있도록 뷰 상태 유효성 검사를 구성해야 합니다.

ASP.NET 컨트롤은 상태 유효성 검사를 봅니다. 뷰 상태 유효성 검사는 기본적으로 활성화되며 웹 서비스의 ID를 사용하여 유효성 검사를 수행합니다. 그러나 NLB 클러스터 시나리오에는 각기 다른 컴퓨터에서 실행되는 여러 개의 서비스 인스턴스 및 웹 서비스 ID가 있으며, 서비스 ID는 각 노드에 따라 다르므로 단일 프로세스 ID를 사용하여 유효성 검사를 수행할 수 없습니다.

이 문제를 해결하기 위해 뷰 상태 유효성 검사를 지원하도록 임의의 유효성 검사 키를 생성하고 각 보고서 서버 노드에서 같은 키를 사용하도록 수동으로 구성할 수 있습니다. 임의로 생성되는 모든 16진수 시퀀스를 사용할 수 있습니다. 16진수 시퀀스의 최대 길이는 유효성 검사 알고리즘(예: SHA1)에 따라 다릅니다.

적용 대상: SQL Server Reporting Services(2016)

  1. .NET Framework에서 제공하는 기능을 사용하여 유효성 검사 키 및 암호 해독 키를 자동으로 생성합니다. 결국 스케일 아웃 배포의 각 보고서 서버 인스턴스에 대한 파일에 붙여넣을 Web.config 수 있는 단일 <machineKey> 항목이 있어야 합니다.

    다음 예에서는 확보해야 하는 값을 보여 줍니다. 예제를 구성 파일에 복사하지 마세요. 키 값이 잘못되었습니다.

    <machineKey validationKey="123455555" decryptionKey="678999999" validation="SHA1" decryption="AES"/>  
    
  2. 파일을 Web.configReportserver<system.web> 열고 섹션에서 생성한 <machineKey> 요소를 붙여넣습니다. 기본적으로 파일은 Web.config .에 있습니다 \Program Files\Microsoft SQL Server\MSRS13.MSSQLSERVER\Reporting Services\Reportserver\Web.config.

  3. 파일을 저장합니다.

  4. 스케일 아웃 배포의 각 보고서 서버에 대해 이전 단계를 반복합니다.

  5. 스케일 아웃 배포의 모든 보고서 서버에 대한 모든 Web.Config 파일에 섹션의 <system.web> 동일한 <machineKey> 요소가 포함되어 있는지 확인합니다.

적용 대상: SQL Server Reporting Services(2017 이상) Power BI Report Serve

  1. .NET Framework에서 제공하는 기능을 사용하여 유효성 검사 키 및 암호 해독 키를 자동으로 생성합니다. 결국 스케일 아웃 배포의 각 보고서 서버 인스턴스에 대한 파일에 붙여넣 RSReportServer.config 을 수 있는 단일 <machineKey> 항목이 있어야 합니다.

    다음 예에서는 확보해야 하는 값을 보여 줍니다. 예제를 구성 파일에 복사하지 마세요. 키 값이 잘못되었습니다. 보고서 서버에는 올바른 대/소문자 구분이 필요합니다.

    <MachineKey ValidationKey="123455555" DecryptionKey="678999999" Validation="SHA1" Decryption="AES"/>
    
  2. 파일을 RSReportServer.configReportserver<Configuration> 열고 섹션에서 생성한 <machineKey> 요소를 붙여넣습니다. 기본적으로 파일 RSReportServer.config 은 Reporting Services에 \Program Files\Microsoft SQL Server Reporting Services\SSRS\ReportServer\RSReportServer.config 있습니다. Power BI Report Server의 경우 파일은 .에 있습니다 \Program Files\Microsoft Power BI Report Server\PBIRS\ReportServer\RSReportServer.config.

  3. 파일을 저장합니다.

  4. 스케일 아웃 배포의 각 보고서 서버에 대해 이전 단계를 반복합니다.

  5. 스케일 아웃 배포의 모든 보고서 서버에 대한 모든 RSReportServer.config 파일에 섹션의 <Configuration> 동일한 <MachineKey> 요소가 포함되어 있는지 확인합니다.

구성 Hostname 방법 및 UrlRoot

NLB 클러스터에서 보고서 서버 스케일 아웃 배포를 구성하려면 서버 클러스터에 대한 단일 액세스 지점을 제공하는 단일 가상 서버 이름을 정의해야 합니다. 그런 다음 가상 서버 이름을 사용자 환경의 DNS(Domain Name Server)에 등록합니다.

가상 서버 이름을 정의한 후에는 보고서 서버 URL에 RSReportServer.config 가상 서버 이름을 포함하도록 파일의 속성과 UrlRoot 가상 서버를 구성할 Hostname 수 있습니다.

Hostname 보고 환경에서 wild카드 URL 예약을 사용하는 경우 속성을 구성합니다. NLB 서버의 Hostname 가상 서버 이름으로 속성을 지정하면 보고 환경의 네트워크 트래픽이 NLB 서버로 전달됩니다. 그러면 NLB가 보고서 서버 노드에 요청을 배포합니다.

또한 보고서 링크가 Excel 또는 PDF 형식과 같은 정적 보고서 또는 구독이 생성하는 보고서(예: 전자 메일 구독)로 내보내는 보고서에서 작동하도록 속성을 구성 UrlRoot 합니다.

Reporting Services를 Windows SharePoint Services 3.0 또는 Office SharePoint Server 2007과 통합하거나 사용자 지정 웹 애플리케이션에서 보고서를 호스트하는 경우 속성만 UrlRoot 구성해야 할 수 있습니다. 이 경우 UrlRoot 속성을 SharePoint 사이트 또는 웹 애플리케이션의 URL로 구성합니다. 이 구성은 보고 환경의 네트워크 트래픽을 보고서 서버 또는 NLB 클러스터가 아닌 보고서를 처리하는 애플리케이션으로 전달합니다.

수정 ReportServerUrl하지 마세요. 이 URL을 수정하는 경우 내부 요청이 처리될 때마다 가상 서버를 통해 추가 왕복을 도입합니다. 자세한 내용은 구성 파일의 URL(보고서 서버 구성 관리자)을 참조하세요. 구성 파일을 편집하는 방법에 대한 자세한 내용은 Reporting Services 구성 파일 수정(RSreportserver.config)을 참조하세요.

  1. 텍스트 편집기에서 엽니다 RSReportServer.config .

  2. 섹션을 <Service> 찾아서 구성 파일에 다음 정보를 추가하여 값을 NLB 서버의 Hostname 가상 서버 이름으로 바꿉 있습니다.

    <Hostname>virtual_server</Hostname>  
    
  3. UrlRoot 찾기. 구성 파일에서 요소가 지정되지 않았지만 사용되는 기본값은 이 형식 https:// 의 URL입니다. 또는 https://<computername>/<reportserver>보고서 서버 웹 서비스의 가상 디렉터리 이름은 다음과 <reportserver> 같습니다.

  4. 클러스터의 가상 이름을 포함하는 값을 UrlRoot 다음 형식 https:// 으로 입력합니다. 또는 https://<virtual_server>/<reportserver>.

  5. 파일을 저장합니다.

  6. 스케일 아웃 배포의 각 보고서 서버에 대해 각 RSReportServer.config 파일에서 이러한 단계를 반복합니다.

보고서 서버 액세스 확인

가상 서버 이름을 통해 스케일 아웃 배포에 액세스할 수 있는지 확인합니다(예: https://MyVirtualServerName/reportserverhttps://MyVirtualServerName/reports).

보고서 서버 로그 파일 또는 RS 실행 로그를 검토하여 실제로 보고서를 처리하는 노드를 확인할 수 있습니다. 실행 로그 테이블에는 특정 요청을 처리한 인스턴스를 나타내는 InstanceName 열이 포함되어 있습니다. 자세한 내용은 Reporting Services 로그 파일 및 소스을 참조하세요.

보고서 서버에 연결할 수 없는 경우 NLB를 검사. 요청이 보고서 서버로 전송되었는지 확인하고 보고서 서버 HTTP 로그를 확인하여 서버가 요청을 수신하는지 확인합니다.

실패한 요청 문제 해결

요청이 보고서 서버 인스턴스에 도달하지 않는 경우 RSReportServer.config 파일을 검사 가상 서버 이름이 보고서 서버 URL의 호스트 이름으로 지정되었는지 확인합니다.

  1. 텍스트 편집기에서 RSReportServer.config 파일을 엽니다.

  2. <ReportServerUrl><UrlRoot>각 설정의 호스트 이름을 찾아<Hostname>서 검사. 값이 예상하는 호스트 이름이 아닌 경우 올바른 호스트 이름으로 바꿉습니다.

이러한 변경 후 Reporting Services 구성 도구를 시작하면 도구에서 <ReportServerUrl> 설정을 기본값으로 변경할 수 있습니다. 구성 파일을 필요한 설정이 포함된 버전으로 바꾸어야 하는 경우에는 항상 해당 백업 복사본을 보관해 두십시오.

URL 구성(보고서 서버 구성 관리자)
기본 모드 보고서 서버 스케일 아웃 배포 구성(보고서 서버 구성 관리자)
보고서 서버 구성 관리자(기본 모드)
Reporting Services 기본 모드 보고서 서버 관리