Load balancer と可用性グループ リスナーの構成 (Azure VM 上の SQL Server)

適用対象:Azure VM 上の SQL Server

ヒント

可用性グループをデプロイする方法は多数あります。 デプロイを簡略化し、Always On 可用性グループに対して Azure Load Balancer または分散ネットワーク名 (DNN) を不要にするには、同じ Azure 仮想ネットワーク内の複数のサブネットに SQL Server 仮想マシン (VM) を作成します。 可用性グループを 1 つのサブネットに既に作成している場合は、マルチサブネット環境に移行できます。

この記事では、Azure Resource Manager で動作する 1 つのサブネット内の Azure Virtual Machines に、SQL Server Always On 可用性グループのロード バランサーを作成する方法について説明します。 SQL Server インスタンスが Azure Virtual Machines 上で実行されている場合、可用性グループにロード バランサーが必要となります。 ロード バランサーには、可用性グループ リスナーの IP アドレスが格納されます。 可用性グループが複数のリージョンにまたがっている場合は、各リージョンにロード バランサーが必要です。

この作業を行うには、Resource Manager で動作する Azure VM に SQL Server Always On 可用性グループがデプロイされている必要があります。 両方の SQL Server 仮想マシンが同じ可用性セットに属している必要があります。 Microsoft のテンプレートを使用すると、Resource Manager で自動的に可用性グループを作成することができます。 内部ロード バランサーは、このテンプレートによって自動的に作成されます。

必要に応じて 可用性グループを手動で構成することもできます。

この記事は、可用性グループの構成が既に済んでいることを前提としています。

関連記事を参照:

この記事では、Azure Portal でロード バランサーを作成し、必要な構成を行います。 その作業が済んだら、可用性グループ リスナーのロード バランサーの IP アドレスを使用するようにクラスターを構成します。

ロード バランサーを作成および構成する

この作業の一環として、次の手順を実行します。

  1. Azure Portal でロード バランサーを作成して IP アドレスを構成します。
  2. バックエンド プールを構成します。
  3. プローブを作成します。
  4. 負荷分散規則を設定します。

Note

SQL Server インスタンスが複数のリソース グループや複数のリージョンに存在する場合、各手順を 2 回 (リソース グループごとに 1 回) 行ってください。

重要

2025 年 9 月 30 日に、Azure Load Balancer の Basic SKU が廃止されます。 詳細については、公式告知を参照してください。 現在、Basic Load Balancer をお使いの場合は、廃止日前に Standard Load Balancer にアップグレードしてください。 ガイダンスについては、ロード バランサーのアップグレードに関するページを参照してください。

手順 1:ロード バランサーを作成して IP アドレスを構成する

まず、ロード バランサーを作成します。

  1. Azure ポータルで、SQL Server の仮想マシンを含んだリソース グループを開きます。

  2. リソース グループで、[作成] を選択します。

  3. " ロード バランサー" を検索します。 検索結果でロード バランサー (Microsoftによって公開) を選択します。

  4. [Load Balancer] ペインで、[作成] を選択します。

  5. ロード バランサーに関して次のパラメーターを構成します。

    設定 フィールド
    サブスクリプション 仮想マシンと同じサブスクリプションを使います。
    リソース グループ 仮想マシンと同じリソース グループを使用します。
    名前 ロード バランサーのテキスト名を使います (例: sqlLB)。
    リージョン 仮想マシンと同じリージョンを使用します。
    SKU Standard
    Type 内部

    Azure Portal のペインは次のようになります。

    Screenshot of the Azure portal, Create Load Balancer page.

  6. [次へ: フロントエンド IP 構成] を選択します

  7. [フロントエンド IP 構成の追加] を選択します

    Screenshot of Azure portal, Create load balancer page, showing frontend IP configuration tab

  8. 次の値を使用してフロントエンド IP を設定します。

    • 名前: フロントエンド IP 構成を識別する名前
    • 仮想ネットワーク:仮想マシンと同じネットワーク。
    • サブネット: 仮想マシンと同じサブネット。
    • [IP アドレスの割り当て] :静的。
    • IP アドレス: サブネットで利用できるアドレスを使います。 可用性グループ リスナーにはこのアドレスを使用します。 これはクラスター IP アドレスと異なることに注意してください。
    • 可用性ゾーン: 必要に応じて、IP をデプロイする可用性ゾーンを選びます。

    次の図は、[フロントエンド IP 構成の追加] UI を示しています。

    Screenshot of Azure portal, add frontend IP configuration page.

  9. [追加] を選択してフロントエンド IP を作成します。

  10. [確認および作成] を選択して構成を検証してから、[作成] を選択してロード バランサーとフロントエンド IP を作成します。

ロード バランサーが Azure によって作成されます。 このロード バランサーは、特定のネットワーク、サブネット、リソース グループ、場所に従属します。 Azure の処理が完了したら、ロード バランサーの設定を Azure で確認してください。

ロード バランサーを構成するには、バックエンド プールとプローブを作成し、負荷分散規則を設定する必要があります。 これらは Azure Portal で行います。

手順 2: バックエンド プールを構成する

Azure では、バックエンド アドレス プールを "バックエンド プール" と呼んでいます。 この場合、バックエンド プールは、可用性グループに含まれる 2 つの SQL Server インスタンスのアドレスです。

  1. Azure Portal で、可用性グループに移動します。 新しく作成したロード バランサーを表示するため、ビューの更新が必要な場合があります。

    Screenshot of Azure portal, resource group page, searching for the Load Balancer.

  2. ロード バランサーを選択し、 [バックエンド プール] を選択し、 [+ 追加] を選択します。

  3. バックエンド プールの [名前] を指定します。

  4. バックエンド プールの構成で [NIC] を選択します。

  5. [追加] を選択して、VM を含む可用性セットにバックエンド プールを関連付けます。

  6. [仮想マシン] で、可用性グループ レプリカをホストする SQL Server 仮想マシンを選びます。

    Note

    仮想マシンを両方とも指定しないと、プライマリ レプリカにしか接続できません。

  7. [追加] を選択して、仮想マシンをバックエンド プールに追加します。

  8. [保存] を選択して、バックエンド プールを作成します。

バックエンド アドレス プールの設定が Azure で更新されます。 これで 2 つの SQL Server インスタンスから成るプールが可用性セットに作成されました。

手順 3:プローブを作成する

このプローブで定義された方法で、現在どの SQL Server インスタンスが可用性グループ リスナーを所有しているかが Azure によって確認されます。 Azure は、プローブの作成時に定義されたポートで、IP アドレスに基づいてサービスをプローブします。

  1. ロード バランサーを選択し、 [正常性プローブ] を選択し、 [+ Add] を選択します。

  2. リスナーの正常性プローブを次のように設定します。

    設定 説明
    名前 Text SQLAlwaysOnEndPointProbe
    プロトコル TCP を選びます TCP
    [ポート] 未使用の任意のポート 59999
    間隔 プローブの試行の間隔 (秒単位) 5
  3. [追加] を選択して、正常性プローブを設定します。

Note

指定したポートは、両方の SQL Server インスタンスのファイアウォールで必ず開放してください。 使用する TCP ポートに対する入力方向の規則が両方のインスタンスに必要となります。 詳しくは、「ファイアウォール規則を追加または編集する」をご覧ください。

Azure はこのプローブを作成、使用して、どの SQL Server インスタンスが可用性グループのリスナーを所有しているかを判定します。

手順 4:負荷分散規則を設定する

負荷分散規則を使って、ロード バランサーでトラフィックを SQL Server インスタンスにルーティングする方法を構成します。 2 つの SQL Server インスタンスのうち可用性グループ リスナー リソースを所有できるのは一度に 1 つだけであるため、このロード バランサーでは Direct Server Return を有効にします。

  1. ロード バランサーを選択し、 [負荷分散規則] を選択し、 [+ 追加] を選択します。

  2. 次のようにリスナーの負荷分散規則を設定します。

    設定 説明
    名前 Text SQLAlwaysOnEndPointListener
    フロントエンド IP アドレス アドレスを選びます ロード バランサーの作成時に作成したアドレスを使います。
    バックエンド プール バックエンド プールを選ぶ ロード バランサーを対象とする仮想マシンを含むバックエンド プールを選択します。
    プロトコル TCP を選びます TCP
    [ポート] 可用性グループ リスナーのポートを使用する 1433
    バックエンド ポート Direct Server Return に Floating IP を設定するときは、このフィールドは使われません 1433
    正常性プローブ プローブに指定した名前 SQLAlwaysOnEndPointProbe
    セッション永続化 ドロップダウン リスト なし
    アイドル タイムアウト TCP 接続を開いたままにしておく時間 (分) 4
    フローティング IP (ダイレクト サーバー リターン) フロー トポロジと IP アドレス マッピング スキーム Enabled

    警告

    Direct Server Return は作成の間に設定されます。 この値は変更しないでください。

    Note

    すべての設定を確認するには、ウィンドウで下スクロールしてください。

  3. [保存] を選択して、リスナーの負荷分散規則を設定します。

負荷分散規則が Azure によって構成されます。 以上、可用性グループのリスナーのホストとなっている SQL Server インスタンスにトラフィックをルーティングするようにロード バランサーを構成しました。

この時点で、リソース グループのロード バランサーが両方の SQL Server マシンに接続されています。 またロード バランサーには、可用性グループへの要求にいずれかのマシンが応答できるよう、SQL Server AlwaysOn 可用性グループ リスナーの IP アドレスが格納されます。

Note

SQL Server インスタンスが 2 つの異なるリージョンに存在する場合、もう一方のリージョンについても以上の手順を繰り返す必要があります。 ロード バランサーはリージョンごとに必要です。

Windows Server フェールオーバー クラスター (WSFC) のクラスターコア IP アドレスを追加する

WSFC の IP アドレスもロード バランサー上に存在する必要があります。 Windows Server 2019 を使用している場合は、クラスターでクラスター ネットワーク名ではなく、分散サーバー名が作成されるため、このプロセスをスキップしてください。

  1. Azure portal で、同じ Azure ロード バランサーに移動します。 [フロントエンド IP 構成] を選択し、 [+ 追加] を選択します。 クラスター コア リソース内の WSFC 用に構成した IP アドレスを使用します。 この IP アドレスを静的として設定します。

  2. ロード バランサーで、 [正常性プローブ] を選択し、 [+ 追加] を選択します。

  3. WSFC クラスターのコア IP アドレスの正常性プローブを次のように設定します。

    設定 説明
    名前 Text WSFCEndPointProbe
    プロトコル TCP を選びます TCP
    [ポート] 未使用の任意のポート 58888
    間隔 プローブの試行の間隔 (秒単位) 5
  4. [追加] を選択して、正常性プローブを設定します。

  5. 負荷分散規則を設定します。 [負荷分散規則] を選択し、 [+ 追加] を選択します。

  6. クラスターのコア IP アドレスの負荷分散規則を次のように設定します。

    設定 説明
    名前 Text WSFCEndPoint
    フロントエンド IP アドレス アドレスを選びます WSFC の IP アドレスの構成時に作成したアドレスを使用します。 これはリスナーの IP アドレスとは異なります
    バックエンド プール バックエンド プールを選ぶ ロード バランサーを対象とする仮想マシンを含むバックエンド プールを選択します。
    プロトコル TCP を選びます TCP
    [ポート] クラスター IP アドレスのポートを使用します。 これは、リスナー プローブ ポートには使用されない使用可能なポートです。 58888
    バックエンド ポート Direct Server Return に Floating IP を設定するときは、このフィールドは使われません 58888
    プローブ プローブに指定した名前 WSFCEndPointProbe
    セッション永続化 ドロップダウン リスト なし
    アイドル タイムアウト TCP 接続を開いたままにしておく時間 (分) 4
    フローティング IP (ダイレクト サーバー リターン) フロー トポロジと IP アドレス マッピング スキーム Enabled

    警告

    Direct Server Return は作成の間に設定されます。 この値は変更しないでください。

  7. [OK] を選択して、負荷分散規則を設定します。

ロード バランサーの IP アドレスを使用するようにクラスターを構成する

次に、クラスター上のリスナーを構成し、リスナーをオンラインに切り替えます。 手順は次のとおりです。

  1. 可用性グループ リスナーをフェールオーバー クラスターで作成します。

  2. リスナーをオンラインにします。

手順 5:可用性グループ リスナーをフェールオーバー クラスターで作成する

この手順では、フェールオーバー クラスター マネージャーおよび SQL Server Management Studio で可用性グループ リスナーを手動で作成します。

可用性グループ リスナーとは、SQL Server 可用性グループがリッスンする IP アドレスとネットワーク名のことです。 可用性グループ リスナーを作成するには、次の手順を実行します。

  1. クラスター ネットワーク リソースの名前を取得します。

    a. プライマリ レプリカのホストとなっている Azure 仮想マシンに RDP で接続します。

    b. フェールオーバー クラスター マネージャーを開きます。

    c. Networks ノードを選択し、クラスター ネットワーク名をメモします。 この名前は、PowerShell スクリプトの $ClusterNetworkName 変数に使用します。 次の図で、クラスター ネットワーク名は Cluster Network 1 です。

    Screenshot that shows a cluster network name in Failover Cluster Manager.

  2. クライアント アクセス ポイントを追加します。 クライアント アクセス ポイントは、アプリケーションが可用性グループ内のデータベースに接続するために使用するネットワーク名です。

    a. [フェールオーバー クラスター マネージャー] で、クラスター名を展開し、[ロール] を選択します。

    b. [ロール] ペインで、可用性グループ名を右クリックし、[リソースの追加]>[クライアント アクセス ポイント] の順に選択します。

    Screenshot of Failover Cluster Manager that shows selecting the Client Access Point command on the shortcut menu for the availability group.

    c. [名前] ボックスで、この新しいリスナーの名前を指定します。 新しいリスナーの名前は、アプリケーションが SQL Server 可用性グループ内のデータベースへの接続に使用するネットワーク名です。

    d. リスナーの作成を完了するには、[次へ] を 2 回選択し、[完了] を選択します。 この時点では、リスナーまたはリソースをオンラインにしないでください。

  3. 可用性グループのクラスター ロールをオフラインにします。 [フェールオーバー クラスター マネージャー][ロール] で、ロールを右クリックし、[ロールの停止] を選択します。

  4. 可用性グループの IP リソースを構成します。

    a. [リソース] タブを選択し、作成したクライアント アクセス ポイントを展開します。 クライアント アクセス ポイントはオフラインになっています。

    Screenshot of Failover Cluster Manager that shows an offline status for a client access point.

    b. IP リソースを右クリックし、[プロパティ] を選択します。 この IP アドレス名はメモしておき、PowerShell スクリプトの $IPResourceName 変数に使用します。

    c. [IP アドレス][静的 IP アドレス] を選択します。 静的 IP アドレスを、Azure Portal でロード バランサーのアドレス設定時に使用したものと同じアドレスに設定します。

    Screenshot of Failover Cluster Manager that shows the selection of an IP address.

  5. SQL Server 可用性グループ リソースがクライアント アクセス ポイントに依存するように設定します。

    a. [フェールオーバー クラスター マネージャー] で、[ロール]、可用性グループの順に選択します。

    b. [リソース] タブの [その他のリソース] で、可用性グループのリソースを右クリックし、[プロパティ] をクリックします。

    c. [依存関係] タブで、クライアント アクセス ポイント (リスナー) の名前を追加します。

    Screenshot of Failover Cluster Manager that shows adding a name on the Dependencies tab.

    d. [OK] を選択します。

  6. クライアント アクセス ポイントが IP アドレスに依存するように設定します。

    a. [フェールオーバー クラスター マネージャー] で、[ロール]、可用性グループの順に選択します。

    b. [リソース] タブの [サーバー名] で、クライアント アクセスポイント リソースを右クリックし、[プロパティ] を選択します。

    Screenshot of Failover Cluster Manager that shows the Properties menu option for the listener's name.

    c. [依存関係] タブを選択します。IP アドレスが依存関係の要素であることを確認します。 そうでない場合は、IP アドレスへの依存関係を設定します。 複数のリソースが一覧表示される場合は、IP アドレスに (AND ではなく) OR 依存関係があることを確認します。 [OK] をクリックします。

    Screenshot of the Dependencies tab that shows an IP resource for an availability group.

    ヒント

    依存関係が正しく構成されていることを確認できます。 [フェールオーバー クラスター マネージャー][ロール] に移動し、可用性グループを右クリックし、[その他の操作][依存関係レポートの表示] の順に選択します。 依存関係が正しく構成されると、可用性グループはネットワーク名に依存し、ネットワーク名は IP アドレスに依存します。

  7. PowerShell でクラスターのパラメーターを設定します。

    a. いずれかの SQL Server インスタンスに次の PowerShell スクリプトをコピーします。 環境に合わせて変数を更新してください。

    • $ClusterNetworkName は、フェールオーバー クラスター マネージャー[ネットワーク] を選択し、ネットワークを右クリックして [プロパティ] を選択することで、名前を見つけることができます。 $ClusterNetworkName は [全般] タブの [名前] にあります。

    • $IPResourceName は、フェールオーバー クラスター マネージャーの IP アドレス リソースに指定された名前です。 これはフェールオーバー クラスター マネージャー[ロール] を選択し、SQL Server AG または FCI 名を選択し、[サーバー名][リソース] タブを選択し、IP アドレス リソースを右クリックして [プロパティ] を選択することで見つけることができます。 正しい値は [全般] タブの [名前] にあります。

    • $ListenerILBIP は、Azure Load Balancer に対して作成した、可用性グループ リスナーの IP アドレスです。 フェールオーバー クラスター マネージャーの SQL Server AG または FCI リスナー リソース名と同じプロパティ ページで、$ListenerILBIP を見つけることができます。

    • $ListenerProbePort は、Azure Load Balancer に対して構成した、可用性グループ リスナーのポート (59999 など) です。 未使用の TCP ポートが有効です。

    $ClusterNetworkName = "<MyClusterNetworkName>" # The cluster network name. Use Get-ClusterNetwork on Windows Server 2012 or later to find the name.
    $IPResourceName = "<IPResourceName>" # The IP address resource name.
    $ListenerILBIP = "<n.n.n.n>" # The IP address of the internal load balancer. This is the static IP address for the load balancer that you configured in the Azure portal.
    [int]$ListenerProbePort = <nnnnn>
    
    Import-Module FailoverClusters
    
    Get-ClusterResource $IPResourceName | Set-ClusterParameter -Multiple @{"Address"="$ListenerILBIP";"ProbePort"=$ListenerProbePort;"SubnetMask"="255.255.255.255";"Network"="$ClusterNetworkName";"EnableDhcp"=0}
    

    b. いずれかのクラスター ノード上で PowerShell スクリプトを実行して、クラスター パラメーターを設定します。

    Note

    SQL Server インスタンスが別個のリージョンに存在する場合は、PowerShell スクリプトを 2 回実行する必要があります。 1 回目の実行では、1 番目のリージョンの $ListenerILBIP$ListenerProbePort を使用します。 2 回目の実行では、2 番目のリージョンの $ListenerILBIP$ListenerProbePort を使用します。 クラスター ネットワーク名とクラスター IP リソース名も、リージョンごとに異なります。

  8. 可用性グループのクラスター ロールをオンラインにします。 [フェールオーバー クラスター マネージャー][ロール] で該当するロールを右クリックし、[ロールの起動] を選択します。

必要に応じて前の手順を繰り返し、Windows Server フェールオーバー クラスターの IP アドレスのクラスター パラメーターを設定します。

  1. Windows Server フェールオーバー クラスターの IP アドレス名を取得します。 [フェールオーバー クラスター マネージャー][クラスター コア リソース] で、[サーバー名] を見つけます。

  2. [IP アドレス] を右クリックし、[プロパティ] を選択します。

  3. [名前] から IP アドレスの名前をコピーします。 これはクラスター IP アドレスである可能性があります。

  4. PowerShell でクラスターのパラメーターを設定します。

    a. いずれかの SQL Server インスタンスに次の PowerShell スクリプトをコピーします。 環境に合わせて変数を更新してください。

    • $ClusterCoreIP は、Azure Load Balancer に対して作成した、Windows Server フェールオーバー クラスターのコア クラスター リソースの IP アドレスです。 これは、可用性グループ リスナーの IP アドレスとは異なります。

    • $ClusterProbePort は、Azure Load Balancer に対して作成した、Windows Server フェールオーバー クラスターの正常性プローブのポートです。 これは、可用性グループ リスナーのプローブとは異なります。

    $ClusterNetworkName = "<MyClusterNetworkName>" # The cluster network name. Use Get-ClusterNetwork on Windows Server 2012 or later to find the name.
    $IPResourceName = "<ClusterIPResourceName>" # The IP address resource name.
    $ClusterCoreIP = "<n.n.n.n>" # The IP address of the cluster IP resource. This is the static IP address for the load balancer that you configured in the Azure portal.
    [int]$ClusterProbePort = <nnnnn> # The probe port from WSFCEndPointprobe in the Azure portal. This port must be different from the probe port for the availability group listener.
    
    Import-Module FailoverClusters
    
    Get-ClusterResource $IPResourceName | Set-ClusterParameter -Multiple @{"Address"="$ClusterCoreIP";"ProbePort"=$ClusterProbePort;"SubnetMask"="255.255.255.255";"Network"="$ClusterNetworkName";"EnableDhcp"=0}
    

    b. いずれかのクラスター ノード上で PowerShell スクリプトを実行して、クラスター パラメーターを設定します。

49152 から 65536 までのポート (TCP/IP の既定の動的ポート範囲) を使用するように SQL リソースが構成されている場合は、各ポートの除外を追加します。 このようなリソースとしては、次のものがあります。

  • SQL Server データベース エンジン
  • AlwaysOn 可用性グループ リスナー
  • フェールオーバー クラスター インスタンスの正常性プローブ
  • データベース ミラーリング エンドポイント
  • クラスター コア IP リソース

除外を追加することにより、他のシステム プロセスが同じポートに動的に割り当てられるのを防ぐことができます。 このシナリオでは、すべてのクラスター ノードで次の除外を構成します。

  • netsh int ipv4 add excludedportrange tcp startport=58888 numberofports=1 store=persistent
  • netsh int ipv4 add excludedportrange tcp startport=59999 numberofports=1 store=persistent

ポートが使用されていないときにポート除外を構成することが重要です。 それ以外の場合、コマンドは失敗し、"ファイルは別のプロセスで使用されているため、このプロセスでアクセスすることはできません" のようなメッセージが返されます。除外が正しく構成されていることを確認するには、コマンド netsh int ipv4 show excludedportrange tcp を使用します。

警告

可用性グループ リスナーの正常性プローブのポートは、クラスター コア IP アドレスの正常性プローブのポートとは異なっている必要があります。 これらの例で、リスナー ポートは 59999 で、クラスター コア IP アドレスの正常性プローブ ポートは 58888 です。 どちらのポートにも、"受信許可" ファイアウォール規則が必要です。

リスナーの構成を確認します。

クラスター リソースと依存関係が正しく構成されていれば、SQL Server Management Studio にリスナーが表示されます。 リスナーのポートを設定するには、次の手順を実行します。

  1. SQL Server Management Studio を起動し、プライマリ レプリカに接続します。

  2. [Always On 高可用性]>[可用性グループ]>[可用性グループ リスナー] の順に移動します。

    フェールオーバー クラスター マネージャーで作成したリスナー名が表示されます。

  3. リスナー名を右クリックし、 [プロパティ] を選択します。

  4. [ポート] ボックスで、以前に使用した $EndpointPort (既定値は 1433) を使用し、可用性グループ リスナーのポート番号を指定して、 [OK] を選択します。

これで、可用性グループが Resource Manager モードで実行されている Azure 仮想マシンにデプロイされました。

リスナーへの接続をテストする

次の手順を実行して接続をテストします。

  1. リモート デスクトップ プロトコル (RDP) を使用して、同じ仮想ネットワークに存在する、レプリカを所有していない SQL Server インスタンスに接続します。 このサーバーは、クラスター内の別の SQL Server インスタンスでもかまいません。

  2. sqlcmd ユーティリティを使用して接続をテストします。 たとえば次のスクリプトは、Windows 認証を使用し、リスナー経由でプライマリ レプリカとの sqlcmd 接続を確立しています。

    sqlcmd -S <listenerName> -E
    

SQLCMD 接続では、プライマリ レプリカのホストとなる SQL Server インスタンスに対して自動的に接続されます。

追加の可用性グループの IP アドレスを作成する

各可用性グループは、個別のリスナーを使用します。 各リスナーには独自の IP アドレスがあります。 追加のリスナーの IP アドレスを保持するために、同じロード バランサーを使用します。 セカンダリ VM の IP アドレスはフローティング IP をサポートしていないため、VM のプライマリ IP アドレスのみをロード バランサーのバックエンド プールに追加します。

Azure Portal で IP アドレスをロード バランサーに追加するには、次の手順に従います。

  1. Azure Portal で、ロード バランサーを含むリソース グループを開き、ロード バランサーを選択します。

  2. [設定] で、[フロントエンド IP 構成] を選択し、[+ 追加] を選択します。

  3. [フロントエンド IP アドレスの追加] で、フロントエンドの名前を割り当てます。

  4. [仮想ネットワーク][サブネット] が SQL Server インスタンスと同じであることを確認します。

  5. リスナーの IP アドレスを設定します。

    ヒント

    IP アドレスを静的に設定し、現在サブネットで使用されていないアドレスを入力することができます。 また、IP アドレスを動的に設定して、新しいフロントエンド IP プールを保存することもできます。 その場合、使用可能な IP アドレスが、Azure Portal によって自動的にプールに割り当てられます。 その後、フロントエンド IP プールを再び開いて、割り当てを静的に変更することができます。

  6. [追加] を選択して、リスナーの IP アドレスを保存します。

  7. [設定][正常性プローブ] を選択して正常性プローブを追加し、次の設定を使用します。

    設定
    名前 プローブを識別する名前。
    プロトコル TCP
    [ポート] 未使用の TCP ポート。すべての仮想マシンで使用できる必要があります。 他の目的には使用できません。 2 つのリスナーが同じプローブ ポートを使用することはできません。
    間隔 プローブの試行の間隔。 既定値 (5) を使用します。
  8. [追加] を選択してプローブを保存します。

  9. 負荷分散規則を作成します。 [設定] で、[負荷分散規則][+ 追加] の順に選択します。

  10. 新しい負荷分散規則を次の設定で構成します。

    設定
    名前 負荷分散規則を識別する名前。
    フロントエンド IP アドレス 作成した IP アドレスを選択します。
    バックエンド プール SQL Server インスタンスがある仮想マシンを含むプールです。
    プロトコル TCP
    [ポート] SQL Server インスタンスで使用されているポートを使用します。 変更していない限り、既定のインスタンスはポート 1433 を使用します。
    バックエンド ポート [ポート] と同じ値を使用します。
    正常性プローブ 作成したプローブを選択します。
    セッション永続化 なし
    アイドル タイムアウト (分) 既定値 (4)
    フローティング IP (ダイレクト サーバー リターン) Enabled

新しい IP アドレスを使用して可用性グループを構成する

クラスターの構成を完了するには、最初の可用性グループを作成したときの手順を繰り返します。 つまり、新しい IP アドレスを使用するクラスターを構成します。

リスナーの IP アドレスを追加した後、追加の可用性グループを次の手順で構成します。

  1. 新しい IP アドレスのプローブ ポートが両方の SQL Server 仮想マシンで開かれていることを確認する。

  2. クラスター マネージャーでクライアント アクセス ポイントを追加する

  3. 可用性グループの IP リソースを構成する

    重要

    IP アドレスを作成する場合は、ロード バランサーに追加した IP アドレスを使用します。

  4. SQL Server 可用性グループ リソースがクライアント アクセス ポイントに依存するように設定する

  5. クライアント アクセス ポイント リソースが IP アドレスに依存するように設定する

  6. PowerShell でクラスターのパラメーターを設定する

セカンダリ レプリカ VM を使用していて、リスナーに接続できない場合は、プローブ ポートが正しく構成されていない可能性があります。

次のスクリプトを使って、プローブ ポートが可用性グループ用に正しく構成されていることを検証できます。

Clear-Host
Get-ClusterResource `
| Where-Object {$_.ResourceType.Name -like "IP Address"} `
| Get-ClusterParameter `
| Where-Object {($_.Name -like "Network") -or ($_.Name -like "Address") -or ($_.Name -like "ProbePort") -or ($_.Name -like "SubnetMask")}

分散可用性グループの負荷分散規則を追加する

可用性グループが分散可用性グループに参加している場合は、ロード バランサーに追加の規則が必要になります。 この規則には、分散可用性グループ リスナーによって使用されるポートが格納されます。

重要

この手順は、可用性グループが分散可用性グループに参加している場合にのみ適用されます。

  1. 分散可用性グループに参加している各サーバーで、分散可用性グループ リスナーの TCP ポートに関する受信規則を作成します。 ドキュメントでは、多くの例で 5022 が使用されます。

  2. Azure portal でロード バランサーを選択し、[負荷分散規則] を選んでから、[+ 追加] を選択します。

  3. 負荷分散規則を次の設定で作成します。

    設定
    名前 分散可用性グループの負荷分散規則を識別するための名前。
    フロントエンド IP アドレス 可用性グループと同じフロント エンド IP アドレスを使用します。
    バックエンド プール SQL Server インスタンスがある仮想マシンを含むプールです。
    プロトコル TCP
    [ポート] 5022 - 分散可用性グループのエンドポイント リスナー用のポート。
    任意のポートを使用できます。
    バックエンド ポート 5022 - [ポート] と同じ値を使用します。
    正常性プローブ 作成したプローブを選択します。
    セッション永続化 なし
    アイドル タイムアウト (分) 既定値 (4)
    フローティング IP (ダイレクト サーバー リターン) Enabled

分散可用性グループに参加している他の可用性グループのロード バランサーについても、これらの手順を繰り返します。

アクセスを制限するための Azure ネットワーク セキュリティ グループがある場合は、許可規則に次のものが含まれていることを確認してください。

  • バックエンド SQL Server VM の IP アドレス
  • AG リスナーのロード バランサーの フローティング IP アドレス
  • クラスター コア IP アドレス (該当する場合)。

次のステップ

詳細については、以下をご覧ください。