RD 接続ブローカー高可用性環境の標準的な構築手順について

皆さん、こんにちは。

本記事では RD 接続ブローカー高可用性環境 (High Availability) の標準的な構築手順についてご紹介いたします。
RD 接続ブローカーの高可用性について検討中の場合は、本記事が参考となれば幸いです。
なおご案内する手順については Windows Server 2012 以降のリモート デスクトップ サービス環境を対象としています。

1. RDCB HA構築前の準備 2. RDCB HA環境を構築する 3. FAQ

 

1. RDCB HA構築前の準備

RD 接続ブローカーの高可用性環境 (以降 RDCB HA) を構築するには、Active Directory や SQL サーバーが
必要となります。
RDCB HA 環境の構築を行う前に構築対象のサーバーは予めドメインに参加し、データベースとして構築済みの SQL サーバーを
用意して頂くようお願いします。
本手順では以下の構成を例として作業を進めて行きます。

a. 事前準備が必要なサーバー

  • TEST-DC (ドメイン コントローラ)
  • TEST-DC (DNS サーバー)
  • TEST-SQL (SQL サーバー) ※データベースは既定のインタンスで構築

b. 本手順で構築するサーバー

  • RDCB01 (RD 接続ブローカー)
  • RDCB02 (RD 接続ブローカー)
  • RDSH (RD セッションホスト)
  • RDWEB (RD Web アクセス)

c. 構築に必要なその他設定

  • SQL サーバーが TCP 1433 で通信可能な状態であること
  • データベースにアクセス可能なドライバー (※)が 2 台の RD 接続ブローカー用サーバーにインストール済みであること
    ※ODBC Driver, SQL Server Native Client などDownload ODBC Driver for SQL Server

2. RDCB HA 環境を構築する

- 手順
1) 基本的な RDS 環境を構築する (RDCB01)
2) RD 接続ブローカーをセキュリティ グループに追加する (TEST-DC)
3) RD 接続ブローカーのラウンドロビン用レコードを作成する (TEST-DC)
4) データベースへの認証権限を追加する (TEST-SQL)
5) RD 接続ブローカーの高可用性設定を行う (RDCB01)
6) データベースにメンバーシップを追加する(TEST-SQL)
7) 2 台目の RD 接続ブローカーを追加する (RDCB01)

*( ) 内は操作対象サーバー

1) 基本的な RDS 環境を構築する (RDCB01)
------------------------------------------------------------------
※以下の手順は標準的な RDS 環境構築手順となるため既に実行済みであれば先へ進んでください

1.1 RDCB01 にドメインの管理者ユーザーでログオンします。
1.2 サーバー マネージャーを起動します。
1.3 左ペインの [すべてのサーバー] を右クリックして [サーバーの追加] をクリックします。
1.4 "RDCB02",”RDSH” そして ”RDWEB” を検索し、選択済みに移動して [OK] をクリックします。
1.5 サーバー マネージャーの [管理] - [役割と機能の追加] をクリックします。
1.6 ウィザードを進め [リモート デスクトップ サービスのインストール] にチェックし [次へ] をクリックします。
1.7 展開の種類にて [標準の展開] にチェックし [次へ] をクリックします。
1.8 展開シナリオにて [セッション ベースのデスクトップ展開] をチェックし [次へ] をクリックします。
1.9 役割サービスにて [次へ] をクリックします。
1.10 RD 接続ブローカーにて RDCB01 を指定し [次へ] をクリックします。
 ※この時点で RDCB02 は選択済み欄には追加しません
1.11 RD Web アクセスにて RDWEB を指定し [次へ] をクリックします。
1.12 RD セッション ホストにて RDSH を指定し [次へ] をクリックします。
1.13 確認にて ”必要に応じてターゲット サーバーを自動的に再起動する” にチェックして [展開] をクリックします。
1.14 各役割のインストールが実行され、RDSH は再起動が実施されます。

2) RD 接続ブローカーをセキュリティ グループに追加する (TEST-DC)
----------------------------------------------------------------------
2.1 TEST-DC に管理者ユーザーでログオンします。
2.2 [スタート] - [管理ツール] - [Active Directory ユーザーとコンピュータ] と展開します。
2.3 セキュリティ グループを追加する OU を選択し右クリックから [新規作成] - [グループ] をクリックします。
2.4 任意のグループ名を指定しスコープを [グローバル] グループの種類を [セキュリティ] として [OK] をクリックします。
 ※RDCBGroup を例としてセキュリティ グループを作成して作業を進めて行きます。
2.5 作成したセキュリティ グループを右クリックし [プロパティ] をクリックします。
2.6 [メンバー] タブを開き [追加] ボタンをクリックします。
2.7 [オブジェクトの種類」 ボタンをクリックし、[コンピュータ] にチェックをいれ [OK] をクリックします。
2.8 選択するオブジェクト名の入力欄に、RDCB01 を指定し [OK] をクリックします。
2.9 同様に RDCB02 もメンバーに追加し、プロパティを終了します。
2.10 セキュリティ グループに反映させるために、RCCB01 と RDCB02 を再起動します。

3) RD 接続ブローカーのラウンドロビン用レコードを作成する (TEST-DC)
----------------------------------------------------------------------
3.1 TEST-DC に管理者ユーザーでログオンします。
3.2 [スタート] - [管理ツール]- [DNS] を起動します。
3.3 [DNS マネージャー] の左ペインから [前方参照ゾーン] - [ドメイン名] を展開します。
3.4 [ドメイン名] を選択している状態から右クリック、[新しいホスト (A または AAAA)] を選択します。
3.5 [名前] にRD 接続ブローカー高可用性用の任意の名前を指定します。
 ※ 例として RDCB を指定して作業を進めていきます。
3.6 RDCB01 の IP アドレスを入力し [ホストの追加] をクリックします。
3.7 同じく手順 3.4 から進め、名前に RDCB を指定し RDCB02 の IP アドレスを指定します。

4) データベースへの認証権限を追加する (TEST-SQL)
----------------------------------------------------------------------
4.1 TEST-SQL に管理者ユーザーでログオンします。
4.2 スタート メニューから [SQL Management Studio] を起動します。
4.3 接続画面で、データベース エンジンに接続します。
4.4 左ペインのオブジェクト エクスプローラで [セキュリティ] - [ログイン] を選択し右クリック、[新しいログイン] をクリックします。
4.5 左ペインの [全般] をクリックします。
4.6 [ログイン名] で [検索] ボタンをクリックします。
4.7 [オブジェクトの種類] ボタンをクリックし [グループ] にチェックをいれ、[OK] ボタンをクリックします。
4.8 [場所] ボタンをクリックし [ディレクトリ全体] からドメイン名を選択します。
4.9 選択するオブジェクト入力欄に、手順 2 のセキュリティ グループ名 (例:RDCBGroup) を入力し [OK] をクリックします。
4.10 左ペインの [サーバー ロール] を選択します。
4.11 [dbcreator] にチェックを入れ [OK] ボタンをクリックします。

5) RD 接続ブローカーの高可用性設定を行う (RDCB01)
----------------------------------------------------------------------
5.1 ドメインの管理者ユーザーで RDCB01 にログオンします。
5.2 [サーバー マネージャー] を起動し、[リモート デスクトップ サービス] - [概要] を展開します。
5.3 [展開の概要] の RD 接続ブローカーアイコンを右クリックし、[高可用性の構成] をクリックします。
 ※Windows Server 2016 の場合はデータベースのオプションを指定します。
以下の作業手順は [専用データベース サーバー] を選択して進めます。
5.4 高可用性の構成にて必要な情報を入力し[次へ] をクリックします。
5.5 [構成] をクリックします。
5.6 構成の成功後 [閉じる] をクリックします。

データベース接続文字列: (※)
DRIVER=ODBC Driver 13 for SQL Server;SERVER=<SQLサーバー名>;Trusted_Connection=Yes;APP=Remote Desktop Services Connection Broker;DATABASE=<任意のデータベース名>

DRIVER=SQL Server Native Client 11.0;SERVER=<SQLサーバー名>;Trusted_Connection=Yes;APP=Remote Desktop Services Connection Broker;DATABASE=<任意のデータベース名>

※"DRIVER=" 以降はインストール済みのドライバーにより変更してください。

データベース ファイルの保存先フォルダー :
<データベース ファイルの保存先パス>

DNS ラウンド ロビン名:
<DNS ラウンドロビン名>

例)
データベース接続文字列 :
DRIVER=ODBC Driver 13 for SQL Server;SERVER=TEST-SQL;Trusted_Connection=Yes;APP=Remote Desktop Services Connection Broker;DATABASE=RDCBDatabase

データベース ファイルの保存先フォルダー :
C:\RDCBDatabase

DNS ラウンド ロビン名:
RDCB.contoso.com

6) データベースにメンバーシップを追加する(TEST-SQL)
----------------------------------------------------------------------
6.1 TEST-SQL に管理者ユーザーでログオンします。
6.2 スタート メニューから [SQL Management Studio] を起動します。
6.3 サーバーへの接続画面で、データベース エンジンに接続します。
6.4 左ペイン [セキュリティ] - [ログイン] - 手順 4) で追加したセキュリティ グループ (例 RDCBGroup) を選択します。
6.5 右クリックし、表示されるメニューから [プロパティ] をクリックします。
6.6 左ペインの [ユーザー マッピング] をクリックします。
6.7 作成した RDCB HA 用のデータベース名にチェックをします (例 RDCBDatabase)
6.8 画面下のデータベース ロール メンバーシップから "db_owner" にチェックをいれます。
6.9 [OK] をクリックします。

7) 2 台目の RD 接続ブローカーを追加する (RDCB01)
----------------------------------------------------------------------
7.1 ドメインの管理者ユーザーで RDCB01 にログオンします。
7.2 [サーバー マネージャー] を起動し、左ペイン [リモート デスクトップ サービス] - [概要] を展開します。
7.3 [展開の概要] の RD 接続ブローカーを右クリックし、[RD 接続ブローカー サーバーの追加] をクリックします。
7.4 ウィザードを進め [サーバーの選択] にて RDCB02 を指定し [次へ] をクリックします。
7.5 確認にて [追加] をクリックします。
7.6 RDCB02 に RD 接続ブローカーの役割がインストール後 [閉じる] をクリックします。

 

3. FAQ

Q. RD 接続ブローカーから指定する SQL のデータベースが名前付きインスタンスの場合に構築に失敗する事がある。

A. SQL のデータベースが名前付きインタンスの場合 SQL サーバーが TCP/UDP 1434 で通信可能である必要があります。
 ポート設定後も構築に失敗する場合は、次の公開情報に合致している可能性があるためご確認をお願いします。

Communication issues occur when Remote Desktop Connection Broker connects to SQL Server in Windows Server 2012 R2
https://support.microsoft.com/en-us/help/3020474/communication-issues-occur-when-remote-desktop-connection-broker-conne

 
Q. SQL サーバーを高可用性としている場合に構築に失敗する事がある。

A. SQL サーバーが高可用性環境の場合、接続文字列に SQL Cluster Name を指定する必要があります。
 こちらの公開情報を参考に接続文字列を指定して下さい。

Configure Remote Desktop Connection Broker in Windows Server 2012 with SQL Server 2012 High Availability
https://cloudblogs.microsoft.com/enterprisemobility/2012/10/16/configure-remote-desktop-connection-broker-in-windows-server-2012-with-sql-server-2012-high-availability/
 
----------------------

(参考)
Windows Server 2012: Deploying RD Connection Broker High Availability
https://social.technet.microsoft.com/wiki/contents/articles/10390.windows-server-2012-deploying-rd-connection-broker-high-availability.aspx

Add the RD Connection Broker server to the deployment and configure high availability
/en-us/windows-server/remote/remote-desktop-services/rds-connection-broker-cluster