ネイティブ モード レポート サーバーのスケールアウト配置の構成

適用対象: SQL Server Reporting Services Enterprise Edition (2017 以降) Power BI Report Server

Reporting Services ネイティブ モードでは、1 つのレポート サーバー データベースを共有する複数のレポート サーバー インスタンスを実行できる、スケールアウト配置モデルがサポートされています。 スケールアウト配置は、レポート サーバーのスケーラビリティを高めて、処理できる同時ユーザー数を増やしたり、より負荷の高いレポート実行に対応できるようにするために使用されます。 また、特定のサーバーを、対話型レポートまたはスケジュールされたレポートの処理専用にする場合にも使用できます。

重要

Power BI Report Server の場合、任意のスケール アウト環境向けのロード バランサー上でクライアント アフィニティ (スティッキー セッションや永続化と呼ばれることもある) を構成することで、適切なパフォーマンスと一貫性のある Power BI (PBIX) レポート機能を確保する必要があります。

SQL Server 2016 Reporting Services 以前の場合、SharePoint モードのレポート サーバーは、SharePoint 製品のインフラストラクチャを利用してスケールアウトを行います。SharePoint モードのスケールアウトは、SharePoint モードのレポート サーバーを SharePoint ファームに追加することによって実行されます。 SharePoint モードでのスケールアウトについては、「ファームへのレポート サーバーの追加 (SSRS スケールアウト)」を参照してください。

Note

SharePoint と Reporting Services の統合は、SQL Server 2016 以降では使用できません。

スケールアウト配置 は次のシナリオで使用します。

  • サーバー クラスターで複数のレポート サーバーの負荷分散を行うための前提条件として使用されます。 複数のレポート サーバーの負荷分散を行う前に、まず同じレポート サーバー データベースを共有するようにレポート サーバーを構成する必要があります。

  • レポート サーバー アプリケーションを異なるコンピューターに分割するために使用されます。1 つ目のサーバーを対話型のレポート処理に使用し、2 つ目のサーバーをスケジュールされたレポート処理に使用します。 このシナリオでは、各サーバー インスタンスによって、共有レポート サーバー データベースに格納されている同じレポート サーバー コンテンツに対する異なる種類の要求が処理されます。

スケールアウト配置は次の要素で構成されます。

  • 1 つのレポート サーバー データベースを共有する複数のレポート サーバー インスタンス。

  • 対話型ユーザー ロードを複数のレポート サーバー インスタンス間で分散するネットワーク負荷分散 (NLB) クラスター (オプション)。

NLB クラスターに Reporting Services を配置する場合は、レポート サーバー URL の構成で NLB 仮想サーバー名を使用し、各サーバーで同じビュー ステートが共有されるように構成する必要があります。

Reporting Services は Microsoft Cluster Services クラスターには参加しません。 ただし、フェールオーバー クラスターの一部であるデータベース エンジン インスタンス上にレポート サーバー データベースを作成することは可能です。

スケールアウト配置を計画、インストール、および構成するには、次の手順を実行します。

  • レポート サーバー インスタンスをインストールする手順については、「SQL Server をインストール ウィザードからインストールする (セットアップ)」をご覧ください。

  • ネットワーク負荷分散 (NLB) クラスター上でスケールアウト配置をホストする場合は、NLB クラスターを構成してからスケールアウト配置を構成する必要があります。 詳細については、「ネットワーク負荷分散クラスターにおけるレポート サーバーの構成」を参照してください。

  • レポート サーバー データベースを共有してレポート サーバーをスケールアウトに加える方法については、この記事の手順を確認してください。

    この手順では、2 つのノードから成るレポート サーバーのスケールアウト配置を構成する方法について説明します。 他のレポート サーバー ノードを配置に追加するには、この記事の手順を繰り返します。

    • セットアップを使用して、スケールアウト配置に追加する各レポート サーバー インスタンスをインストールします。

      サーバー インスタンスを共有データベースに接続するときにデータベースの互換性エラーが発生しないようにするには、すべてのインスタンスが同じバージョンであることを確認します。 たとえば、SQL Server 2016 レポート サーバー インスタンスを使用してレポート サーバー データベースを作成する場合は、同じ配置の他のすべてのインスタンスも SQL Server 2016 である必要があります。

    • レポート サーバー構成マネージャーを使用して、各レポート サーバーを共有データベースに接続します。 一度に接続および構成できるレポート サーバーは、1 つだけです。

    • Reporting Services 構成ツールを使用して、レポート サーバー データベースに既に接続されている最初のレポート サーバー インスタンスに新しいレポート サーバー インスタンスを追加してスケールアウトを完了します。

    • SQL Server Reporting Services Enterprise Edition を使用します。 詳細については、「SQL Server の各エディションでサポートされる SQL Server Reporting Services の機能」を参照してください。

SQL Server インスタンスをインストールしてレポート サーバー データベースをホストする

  1. レポート サーバー データベースをホストするコンピューターに SQL Server インスタンスをインストールします。 少なくとも、SQL Server データベース エンジンと Reporting Services をインストールします。

  2. 必要に応じて、レポート サーバーでリモート接続を有効にします。 SQL Server のバージョンの中には、既定で TCP/IP および名前付きパイプのリモート接続が有効になっていないバージョンもあります。 リモート接続が許可されているかどうかを確認するには、SQL Server 構成マネージャーを使用して、対象インスタンスのネットワーク構成設定を確認します。 リモート インスタンスが名前付きインスタンスの場合は、SQL Server Browser サービスが有効になっていることと、ターゲット サーバーで実行されていることを確認します。 SQL Server Browser によって、名前付きインスタンスへの接続に使用されるポート番号が提供されます。

Note

構成可能な名前付きインスタンスを、SQL Server Reporting Services 2017 以降または Power BI Report Server 内で使用することができません。 SQL Server Reporting Services 2017 以降には、常に、SSRS というインスタンス名が使用されるようになります。 Power BI Report Server のインスタンス名は、常に、「PBIRS」となる予定です。

サービス アカウント

Reporting Services インスタンスで使用するサービス アカウントは、スケール アウト配置を処理するときに重要です。 Reporting Services インスタンスを展開するときに、次のいずれかのオプションを実行する必要があります。

オプション 1: サービス アカウントの同じドメイン ユーザー アカウントですべての Reporting Services インスタンスを構成する必要があります。

オプション 2: 各個別のサービス アカウント、ドメイン アカウントに、ReportServer カタログ データベースをホストする SQL Server データベース インスタンス内で dbadmin アクセス許可を付与する必要があります。

上記のオプションのどのオプションとも異なる構成を選択した場合、SQL エージェントでタスクを変更した場合に断続的にエラーが発生する可能性があります。 この失敗により、レポートのサブスクリプションを編集するときに、Reporting Services ログと Web ポータルの両方で、エラーが表示されます。

An error occurred within the report server database.  This may be due to a connection failure, timeout or low disk condition within the database.

SQL エージェント タスクを作成するサーバーのみが、項目を表示、削除、または編集する権限を持つため、この問題は断続的に発生します。 上記のオプションのいずれかのオプションを行わない場合、ロード バランサーが、そのサブスクリプションのすべての要求を、SQL エージェント タスクを作成するサーバーに送信するときのみ操作が成功します。

最初のレポート サーバー インスタンスをインストールする

  1. 配置の一部になる最初のレポート サーバー インスタンスをインストールします。 Reporting Services をインストールする際に、[レポート サーバー インストール オプション] ページで [サーバーを構成せずにインストールする] オプションを選択します。

  2. Reporting Services 構成ツールを開始します。

  3. レポート サーバー Web サービスの URL、Web ポータルの URL、およびレポート サーバー データベースを構成します。 詳細については、「レポート サーバーの構成 (Reporting Services ネイティブ モード)」を参照してください

  4. レポート サーバーが稼働することを確認します。 詳細については、「Reporting Services のインストールを検証する」をご覧ください。

2 番目のレポート サーバー インスタンスをインストールして構成する

  1. セットアップを実行し、2 番目の Reporting Services インスタンスを別のコンピューターにインストールするか、同じコンピューターに名前付きインスタンスとしてインストールします。 Reporting Services をインストールする際に、[レポート サーバー インストール オプション] ページで [サーバーを構成せずにインストールする] オプションを選択します。

  2. Reporting Services 構成ツールを起動し、インストールした新しいインスタンスに接続します。

  3. 最初のレポート サーバー インスタンスのときに使用したデータベースにレポート サーバーを接続します。

    1. [データベース] をクリックして、[データベース] ページを開きます。

    2. [データベースの変更]をクリックします。

    3. [既存のレポート サーバー データベースを選択する]をクリックします。

    4. 使用するレポート サーバー データベースをホストする SQL Server データベース エンジン インスタンスのサーバー名を入力します。 前の作業で接続したサーバーの名前を入力する必要があります。

    5. [接続テスト]を選択し、[次へ]を選択します。

    6. [レポート サーバー データベース]で、最初のレポート サーバー用に作成したデータベースを選択し、[次へ]を選択します。 既定の名前は ReportServer です。 ReportServerTempDB を選択しないでください。 レポートの処理時に一時データを格納するためにのみ使用されます。 データベースの一覧が空の場合は、前の 4 つの手順を繰り返してサーバーへの接続を確立します。

    7. [資格情報] ページで、レポート サーバーがレポート サーバー データベースに接続する際に使用するアカウントと資格情報タイプを選択します。 最初のレポート サーバー インスタンスと同一の資格情報、または別の資格情報を使用できます。 [次へ] を選択します。

    8. [概要] を選択し、[完了]を選択します。

  4. レポート サーバー Web サービスの URLを構成します。 URL のテストはまだ行わないでください。 レポート サーバーがスケールアウト配置に参加するまでは解決できません。

  5. Web ポータルの URLを構成します。 URL のテストやデプロイの確認はまだ行わないでください。 レポート サーバーは、スケールアウト配置に参加するまで使用できません。

2 番目のレポート サーバー インスタンスをスケールアウト配置に追加する

  1. Reporting Services 構成ツールを開いて、1 番目のレポート サーバー インスタンスに接続します。 最初のレポート サーバーは、暗号化と暗号化解除の操作に対する初期化が既に行われています。そのため、このレポート サーバーを使用して、他のレポート サーバー インスタンスをスケールアウト配置に追加できます。

  2. [スケールアウト配置] を選択して、[スケールアウト配置] ページを開きます。 レポート サーバー データベースに接続されている各レポート サーバーに対応する 2 つのエントリが表示されます。 最初のレポート サーバー インスタンスは既に参加済みで、 2 つ目のレポート サーバーは「参加待ち」となっています。デプロイでこのようなエントリが表示されない場合は、レポート サーバー データベースを使用するように構成および初期化されている最初のレポート サーバーに接続していることを確認してください。

    [スケールアウト配置] ページの一部を示すスクリーンショット。

  3. [スケールアウト配置] ページで、配置への参加を待機しているレポート サーバー インスタンスを選択し、[サーバーの追加]を選択します。

    Note

    問題: Reporting Services レポート サーバー インスタンスをスケールアウト配置に追加しようとすると、"アクセス拒否" のようなエラー メッセージが表示される場合があります。

    回避策: 最初の Reporting Services インスタンスからの Reporting Services 暗号化キーをバックアップして、このキーを 2 番目の Reporting Services レポート サーバーに復元します。 その後、Reporting Services のスケールアウト配置に 2 番目のサーバーの追加を試行します。

  4. これで、両方のレポート サーバー インスタンスが動作していることを確認できるようになります。 2 番目のインスタンスを確認するには、Reporting Services 構成ツールを使用してレポート サーバーに接続し、Web サービスの URL または Web ポータルの URLを選択します。

負荷分散されたサーバー クラスター内でレポート サーバーを実行する場合、追加の構成が必要です。 詳細については、「ネットワーク負荷分散クラスターにおけるレポート サーバーの構成」を参照してください。

その他の質問 Reporting Services のフォーラムに質問してみてください