Microsoft Azure 仮想マシンに SQL Server を導入、設定する際のポイント 7
Microsoft Japan Data Platform Tech Sales Team
清水
みなさん、こんにちは。 6回目は、 AlwaysOn 可用性グループの有効化と、構成時のポイントをお伝えしましたが、いかがだったでしょうか?最終回は、 可用性グループ リスナー構成時のポイントをお伝えします。5回目で、 3 つの仮想マシン ( 2 つの DB サーバーと 1 つのファイルサーバー ) を用いクラスターを構成したので、これを前提として説明を行います。
可用性グループ リスナーとは
可用性グループ リスナーは、Always On 可用性グループのプライマリ レプリカまたはセカンダリ レプリカのデータベースにアクセスするためにクライアントが接続できる仮想ネットワーク名 (VNN) です。可用性グループ リスナーによって、クライアントは、接続先 SQL Server の物理インスタンス名を意識せずに、可用性レプリカに接続できます。また、現在のプライマリ レプリカに接続するために、接続文字列を変更する必要もありません。可用性グループ リスナーの詳細については、以下をご参照下さい。
可用性グループ リスナー、クライアント接続、およびアプリケーションのフェールオーバー (SQL Server)
https://msdn.microsoft.com/ja-jp/library/hh213417.aspx
Azure 仮想マシンの可用性グループ リスナー
Azure 仮想マシンのAlwaysOn 可用性グループに、可用性グループ リスナーを構成するためには、 Azure 側に ロード バランサー、バックエンド プール、正常性プローブ及び負荷分散規則が必要になります。また、可用性グループ リスナー自体の構成手順もオンプレミス環境とは少し異なっています。
本記事では、可用性グループ リスナー構成時の手順とポイントをお伝えするため、ロード バランサー、バックエンド プール、正常性プローブ及び負荷分散規則が必要な理由等の詳細につきましては、以下の記事をご参照下さい。
Azure 上に AlwaysOn AG 構成を構築する際のリスナーについて
ロード バランサーの作成
まず、ロード バランサーを作成するため、Azure ポータルにアクセスします。画面左上の「+」をクリック、「新規」が表示されるので、「ネットワーキング」→「 Load Balancer 」を選択すると、以下の成画面が表示されます。
各項目を以下のように設定し、ロード バランサーを作成します。
項目名 |
設定値 |
名前 | 作成するロード バランサーの名前 |
種類 | 「内部」 |
仮想ネットワーク | Azure 仮想マシンと同じ仮想ネットワーク |
サブネット | Azure 仮想マシンと同じサブネット |
IP アドレスの割り当て | 「静的」 |
プライベート IP アドレス | Azure 仮想マシンと同じ仮想ネットワークで使用されていない IP アドレス |
サブスクリプション | Azure 仮想マシンと同じサブスクリプション |
リソースグループ | Azure 仮想マシンと同じリソースグループ |
場所 | Azure 仮想マシンと同じ場所 ( リージョン ) |
作成したロード バランサーにバックエンド プール、正常性 プローブ及び負荷分散規則を追加します。
バックエンドプール
Azure ポータルで作成したロード バランサーをクリック、以下の画面を表示し、「バックエンド プール」→「追加」をクリックします。
バックエンド プールの追加画面が表示されるので、「仮想マシンの追加」をクリックします。
各項目を以下のように設定し、仮想マシンを追加します。
項目名 |
設定値 |
名前 | 追加するバックエンド プールの名前 |
可用性セット | 各 Azure 仮想マシンが含まれる可用性セット |
仮想マシン | AlwaysOn 可用性グループを構成する Azure 仮想マシン※各 Azure 仮想マシンは、同じ可用性セットに含まれる必要あり |
正常性プローブ
作成したロード バランサーをクリック、以下の画面を表示し、「正常性プローブ」→「追加」をクリックします。
正常性プローブの追加画面が表示されます。
各項目を以下のように設定し、正常性プローブを作成します。
項目名 |
設定値 |
名前 | 追加する正常性プローブの名前 |
プロトコル | 「 TCP 」 |
ポート | 任意の空きポート※このポートは各仮想マシンのファイアウォールで解放されている必要あり |
間隔 | ここでは規定値 (5) |
異常しきい値 | ここでは規定値 (2) |
負荷分散規則
作成したロード バランサーをクリック、以下の画面を表示し、「負荷分散規則」→「追加」をクリックします。
負荷分散規則の追加画面が表示されます。
各項目を以下のように設定し、負荷分散規則を追加します。
項目名 |
設定値 |
名前 | 追加する負荷分散規則の名前 |
フロントエンド IP アドレス | ロード バランサーの作成時に指定した IP アドレスが選択されていることを確認 |
プロトコル | 「 TCP 」 |
ポート | “1433”※クライアントがSQL Serverに接続する際使用するポートを指定 |
バックエンドポート | 無効※後述のフローティング IP(Direct Server Return) を有効にするため |
セッションの永続化 | ここでは規定値 ( 「なし」 ) |
アイドル タイムアウト | ここでは規定値 (4) |
フローティング IP(Direct Server Return) | 「有効」 |
可用性グループ リスナーの作成
プライマリ レプリカの SQL Server が稼働している DB サーバーに管理者ユーザーでログオンします。「フェールオーバー クラスター マネージャー」を起動、AlwaysOn 可用性グループで使用している WSFC クラスターを展開、ネットワークを選択します。表示されたクラスター ネットワーク名 ( 以下の例では “ クラスター ネットワーク 1“ ) をメモします ( この名前は、後述する PowerShell スクリプトの “$ClusterNetworkName” 変数に使用します)。
同様に「役割」をクリックします。 AlwaysOn 可用性グループ ( 以下では “AG1”) が表示されたら、これを右クリック、メニューから「リソースの追加」→ 「クライアント アクセス ポイント」の順に選択します。
クライアントアクセスポイントの追加画面が表示されるので、「名前」に可用性グループ リスナーの名前を入力します ( ここで指定する可用性 リスナーの名前は、クライアントアプリケーションが SQL Server 可用性グループ内のデータベースに接続するためのネットワーク名になります)。その後、「次へ」をクリックすると、「確認」画面が表示されますが、ここでも「次へ」クリックします。
最後に「概要」画面が表示されるので、「完了」をクリックします。クライアント アクセス ポイントの作成完了後、クライアント アクセス ポイントはオフラインになりますが、この時点では、オンラインにしないでください。クライアント アクセス ポイントの作成が完了したら、画面下の「リソース」タブをクリックして、作成したクライアント アクセス ポイントを展開します。 IP アドレス リソースを右クリックし、メニューから「プロパティ」 を選択します。
IP アドレス リソースのプロパティが表示されたら、「名前」をメモします ( この名前は、後述する PowerShell スクリプトの “$IPResourceName” 変数で使用します ) 。その後、「 IP アドレス」で「静的 IP アドレス」をクリックし、IP アドレスを設定します ( 設定する IP アドレスは、ロード バランサーの IP アドレス同じものを指定 ) 。その後、「このアドレスの NetBIOS を有効にする」がチェックされていることを確認し、「 OK 」をクリックします。
IP アドレスの設定後、管理者権限で以下の Power Shell スクリプトを実行します。
$ClusterNetworkName = " < クラスター名 > " #フェールオーバー クラスターの名前
$IPResourceName = "<IP アドレス名 >" #IP アドレス リソースの名前
$ILBIP = "xxx.xxx.xxx.xxx" #ロード バランサー作成時に指定した IP アドレス
[int]$ProbePort = < 正常性プローブで指定したポート>
Import-Module FailoverClusters
Get-ClusterResource $IPResourceName | Set-ClusterParameter -Multiple @{"Address"="$ILBIP";"ProbePort"=$ProbePort;"SubnetMask"="xxx.xxx.xxx.xxx";"Network"="$ClusterNetworkName";"EnableDhcp"=0}
スクリプトの実行完了後、フェールオーバー クラスター マネージャで作成したクライアント アクセス ポイント ( ここでは “AG1-LSNR1”) のプロパティを表示、 IP アドレスリソースに依存関係があることを確認し、クライアント アクセス ポイントをオンラインにします。クライアント アクセス ポイントがオンラインになったら、可用性グループ (ここでは “AG1”) のプロパティを表示、クライアント アクセス ポイント ( ここでは “AG1-LSNR1”) に依存関係を設定します。
SQL Server Management Studio( 以降 SSMS) を起動し、管理者権限のあるログインで SQL Server データベースエンジン ( 以降 SQL Server) へ接続します。「 AlwaysOn 高可用性」→「可用性グループ」→「 < 作成した可用性グループ名 > 」→「可用性グループ リスナー」を展開します。作成した可用性グループ リスナーを右クリック、メニューから「プロパティ」を選択します。 可用性グループ リスナーの「プロパティ」が表示されたら、「ポート」に「負荷分散規則」で指定したポートを入力し、「 OK 」をクリックします。
可用性グループ リスナーを用いた SQL Server への接続
SSMS を起動し、接続先に可用性グループ リスナーの名前を指定し、管理者権限のあるログインで接続します。
接続後、クエリ画面を表示、以下のクエリを実行し、実際に接続している SQL Server が、その時点のプライマリ レプリカになっていることを確認します。
SELECT @@SERVERNAME;
AlwaysOn 可用性グループの手動フェールオーバーを行い、再度上記のクエリを実行します。その後、実際に接続している SQL Server が、新しいプライマリ レプリカになっていることを確認します。
本連載では、Microsoft Azure 仮想マシンに SQL Server を導入、設定する際のポイントをお伝えしましたが、いかがだったでしょうか ? 次回以降は別のテーマでお伝えする予定です。
関連記事
Microsoft Azure 仮想マシンに SQL Server を導入、設定する際のポイント 1
Microsoft Azure 仮想マシンに SQL Server を導入、設定する際のポイント 2
Microsoft Azure 仮想マシンに SQL Server を導入、設定する際のポイント 3
Microsoft Azure 仮想マシンに SQL Server を導入、設定する際のポイント 4
Microsoft Azure 仮想マシンに SQL Server を導入、設定する際のポイント 5
Microsoft Azure 仮想マシンに SQL Server を導入、設定する際のポイント 6
Azure 上に AlwaysOn AG 構成を構築する際のリスナーについて
連載 : Microsoft Azure 仮想マシンに SQL Server を導入、設定する際のポイント