サイト内の現在位置を表示しています。

Azureでリージョン間ロード バランサーを利用したHAクラスターの構築を試してみました(Windows)

CLUSTERPRO オフィシャルブログ ~クラブロ~

はじめに

Microsoft Azure(以降、Azure)上で、リージョン間ロード バランサーを利用して、異なるリージョンに配置したAzure Virtual Machines(以降、VM)間でHAクラスターの構築を試してみました。

リージョン間ロード バランサーは、2021年にプレビュー公開された、異なるリージョン間でトラフィックを負荷分散できるロード バランサーです。
CLUSTERPROのガイドでは、Azure ロード バランサーを接続先切り替えに使用した構成を紹介していますが、これまでAzure ロード バランサーはリージョン間での負荷分散に対応していなかったため、異なるリージョンに配置したVM間で接続先の切り替えに利用することはできませんでした。そのため、popup以前のブログでは、Azureで異なるリージョンに配置したVM間でHAクラスターの構築を行う場合に、Azure DNSを使用して接続先の切り替えを行いました。

今回は、リージョン間ロード バランサーを接続先の切り替えに利用して、異なるリージョンに配置したVM間でHAクラスターの構築を試してみましたのでご紹介します。

  • リージョン間ロード バランサーは、2022/1/11 時点ではプレビュー段階であり、制限事項があります。本記事では、プレビュー バージョンとして提供されている機能、制限の下で使用しています。

この記事の内容

1. リージョン間ロード バランサーとは

リージョン間ロード バランサーは、異なるリージョン間でトラフックを負荷分散できるロード バランサーです。これまでAzure ロード バランサーによる負荷分散は、同じリージョン内に限定されていましたが、今回Azure ロード バランサーにて選択できるSKUのうち、Standard Load Balancerにおいて、リージョン間の負荷分散がサポートされました。これにより受信トラフィックを異なるリージョンに配置したパブリック ロード バランサーに対して負荷分散することが可能となります。また、パブリック ロード バランサーは、リージョン間ロード バランサーから受信したトラフィックを自身が存在するリージョンの仮想ネットワーク内のVMに対して負荷分散することが出来るため、ユーザーはリージョン間ロード バランサーに付与したパブリック IP アドレスを通じて、異なるリージョンに配置したVMにアクセスすることが可能となります。

2. 構築するHAクラスター構成の概要

2.1 今回構築するHAクラスター構成の概要

今回は、リージョン間ロード バランサーを利用して東日本リージョンと東南アジアリージョンを跨がるミラーディスク型クラスターを構築し、VM間で接続先の切り替えが行えることを確認します。
リージョン間ロード バランサーを利用する場合、配置できるリージョン、バックエンド プールに追加できるロード バランサーのタイプには制限があります。制限の詳細は、後述の「リージョン間ロード バランサー (プレビュー)」のリンクを参照してください。

今回構築するHAクラスター構成は以下の通りです。

  • HAクラスターを構築するVMは、「東日本」リージョンと「東南アジア」リージョンにそれぞれ作成。
  • 「東日本」リージョンと「東南アジア」リージョンにパブリック ロード バランサーを配置し、バックエンド プールに作成したVMを追加。
  • リージョン間ロード バランサーを使用して接続先を切り替え。
  • リージョン間ロード バランサーは、「東アジア」リージョンに配置。
  • リージョン間ロード バランサーのバックエンドプールに、「東日本」リージョンと「東南アジア」リージョンに作成したパブリック ロード バランサーを追加。
  • 「東日本」リージョンと「東南アジア」リージョンの仮想ネットワーク間を、グローバル仮想ネットワーク ピアリングを利用して接続。
  • HAクラスター対象のアプリケーションにIISを使用。
  • クライアントはAzureの仮想ネットワーク外に配置。インターネットを経由してリージョン間ロード バランサーのフロントエンド IPから現用系VMのIISにアクセス。

【参考】
  • ホーム リージョン
  • 参加リージョン
  • 制限事項

  • リージョン間ロード バランサーの配置場所はホーム リージョンから選択する必要があります。今回は、「東アジア」リージョンに配置します。
  • リージョン間ロード バランサーのバックエンド プールには、参加リージョンに存在するパブリック ロード バランサーから選択する必要があります。今回は「東日本」リージョンと「東南アジア」リージョンのパブリック ロード バランサーを選択します。
    なお、2022/1/11時点で、参加リージョンに西日本リージョンは含まれないため、選択できません。
  • リージョン間ロード バランサーのバックエンド プールには、内部ロード バランサーを追加することはできないため、HA ポートの負荷分散規則は利用できません。
  • クライアントを「東日本」リージョンや「東南アジア」リージョンに配置する場合でも、リージョン間ロード バランサーのフロントエンド IPを指定してIISにアクセスすることが可能です。

2.2 (参考)フローティングIPを有効化した応用構成

今回は、Azure ロード バランサーのフローティングIP(Direct Server Return(以降、DSR))機能を無効化した状態でHAクラスターを構築していますが、フローティングIP(DSR)機能を有効化した状態でHAクラスターを構築することも可能です。また、ミラーディスク型クラスターを構築していますが、以下のようなハイブリッドディスク型クラスターの構築も可能です。

3. HAクラスター構築手順

3.1 Microsoft Azureの設定

HAクラスターの構築手順は「Azure向け HAクラスタ 構築ガイド」の「第 5 章 構築手順 (パブリックロードバランサーを使用した HA クラスタの場合)」をベースとして構築を行います。以降では、リージョン間ロード バランサーを利用したミラーディスク型クラスターの構築を行う上で、ガイドと異なる点を中心に説明します。

【参考】
  • クラウド > Microsoft Azure > CLUSTERPRO X 4.3 向け HAクラスタ 構築ガイド
    → 第 5 章 構築手順 (パブリックロードバランサーを使用した HA クラスタの場合)

「Azure向け HAクラスタ 構築ガイド」の「5.2 Microsoft Azure の設定」の各項において、以下のように読み替えます。」

  • 「仮想ネットワークの作成」の項では、仮想ネットワーク「Vnet1」に加え、「Vnet2」を作成します。また、「Vnet1」と「Vnet2」の間を接続するため、仮想ネットワーク ピアリングの設定を追加で行います。
  • 「仮想マシンの作成」の項では、東日本リージョンと東南アジアリージョンにVMを1台ずつ作成します。
  • 「ロードバランサーの作成」の項では、東日本リージョンと東南アジアリージョンにパブリック ロード バランサーを作成し、バックエンド プールに各リージョンに作成したVMをそれぞれ追加します。
  • パブリック ロード バランサーの作成後に、東アジアリージョンにリージョン間ロード バランサーを作成し、バックエンド プールに東日本リージョンと東南アジアリージョンに作成したパブリック ロード バランサーを追加します。

3.1.1 リソースグループの作成

Azure ポータルを使用して、リソースを管理するリソースグループを作成します。

リソース グループの設定
名前 TestGroup1
リソース グループの場所 東日本

3.1.2 仮想ネットワークの作成

Azure ポータルを使用して、東日本リージョンに作成する仮想ネットワーク「Vnet1」に加えて、東南アジアリージョンに仮想ネットワーク「Vnet2」を作成します。

仮想ネットワークの設定
名前 Vnet1 Vnet2
地域 東日本 東南アジア
アドレス空間 10.5.0.0/24 10.6.0.0/24
サブネット名 Vnet1-1 Vnet2-1
サブネットアドレス範囲 10.5.0.0/24 10.6.0.0/24
仮想ネットワーク ピアリングの設定

「Vnet1」と「Vnet2」の作成後は、仮想ネットワーク間を接続するために仮想ネットワーク ピアリングの設定を行います。設定手順は以前ご紹介した「仮想ネットワーク ピアリングを利用したリージョン間のHAクラスター構築」の記事をご参照ください。

3.1.3 VMの作成

Azure ポータルを使用して、東日本リージョンと東南アジアリージョンにVMを1台ずつ作成します。

VMの設定
ホスト名 サーバー1(現用系VM):server01 サーバー2(待機系VM):server02
地域 東日本 東南アジア
NICの設定
  ホスト名(server01) ホスト名(server02)
NIC - IP構成 ipconfig1(プライマリ):10.5.0.120 ipconfig1(プライマリ):10.6.0.120

3.1.4 ロード バランサーの作成

パブリック ロード バランサーの作成

Azure ポータルを使用して、東日本リージョンと東南アジアリージョンにパブリック ロード バランサーを作成します。また、パブリック ロード バランサーのバックエンド プールには、各リージョンに作成したクラスター構築用のVMを追加します。

以下は、東日本リージョンにパブリック ロード バランサーを作成する場合の設定例です。
種類は「パブリック」、SKUは「Standard」、レベルは「地域」を選択します。

publiclb-je1
パブリック ロードバランサーの設定
名前 TestLoadBalancer-JE TestLoadBalancer-SEA
地域 東日本 東南アジア
種類 パブリック パブリック
SKU Standard Standard
レベル 地域 地域

続けて、フロントエンド IP 構成、バックエンド プール、インバウンド規則(正常性プローブ、負荷分散規則)の設定を行います。送信規則は設定しません。

フロントエンド IP 構成

[+フロントエンド IP 構成の追加]をクリックして設定します。

publiclb-je6
フロントエンド IP 構成の設定
地域 東日本 東南アジア
名前 TestLoadBalancerFrontEnd-JE TestLoadBalancerFrontEnd-SEA
パブリック IP アドレス名 TestLoadBalancerPublicIP-JE TestLoadBalancerPublicIP-SEA
可用性ゾーン 1 1
バックエンド プールの設定

[+バックエンド プールの追加]をクリックして設定します。

publiclb-je2
バックエンド プールの設定
地域 東日本 東南アジア
名前 TestBackendPool-JE TestBackendPool-SEA
VM サーバー1(現用系VM):server01 サーバー2(待機系VM):server02
インバウンド規則の設定

[+負荷分散規則の追加]をクリックして設定します。また、正常性プローブを新規作成をクリックして設定します。

publiclb-je4
負荷分散規則の設定
地域 東日本 東南アジア
名前 TestLoadBalancingRule-JE TestLoadBalancingRule-SEA
ポート 80 80
バックエンドポート 8080 8080
publiclb-je3
正常性プローブの設定
地域 東日本 東南アジア
名前 TestHealthProbe-JE TestHealthProbe-SEA
ポート 26001 26001
受信セキュリティ規則の設定

パブリック ロード バランサーの作成が終わったら、東日本リージョンと東南アジアリージョンに追加したVMにネットワーク セキュリティ グループの設定をします。
受信セキュリティ規則に、パブリック ロード バランサーの負荷分散規則で設定したバックエンドポートを追加します。

publiclb-je5
  受信セキュリティ規則の設定
VM server01 server02
名前 TestHTTP TestHTTP
プロトコル TCP TCP
宛先ポート範囲 8080 8080

パブリック ロード バランサーの作成手順は以下のサイトを参考にしました。

リージョン間ロード バランサーの作成

Azure ポータルを使用して、東アジアリージョンにリージョン間ロード バランサーを作成します。
種類は「パブリック」、SKUは「Standard」、レベルは「グローバル」を選択します。

publiclb-ea1
リージョン間ロード バランサーの設定
名前 TestLoadBalancer-EA
地域 東アジア
種類 パブリック
SKU Standard
レベル グローバル

続けて、フロントエンド IP 構成、バックエンド プール、インバウンド規則(負荷分散規則)の設定を行います。送信規則は設定しません。
バックエンド プールには、東日本リージョンと東南アジアリージョンに作成したパブリック ロード バランサーを追加します。

フロントエンド IP 構成

[+フロントエンド IP 構成の追加]をクリックして設定します。

publiclb-ea4
フロントエンド IP 構成の設定
名前 TestLoadBalancerFrontEnd-EA
パブリック IP アドレス名 TestLoadBalancerPublicIP-EA
バックエンド プールの設定

[+バックエンド プールの追加]をクリックして設定します。

publiclb-ea2
バックエンド プールの設定
名前 TestBackendPool-EA
ロード バランサー パブリック ロード バランサー(東日本):TestLoadBalancer-JE パブリック ロード バランサー(東南アジア):TestLoadBalancer-SEA
フロントエンド IP 構成 パブリック ロード バランサー(東日本):LoadBalancerFrontEnd-JE パブリック ロード バランサー(東南アジア):LoadBalancerFrontEnd-SEA
インバウンド規則の設定

[+負荷分散規則の追加]をクリックして設定します。

リージョン間ロード バランサーの負荷分散規則のバックエンド ポートは、東日本リージョンと東南アジアリージョンに作成したパブリック ロード バランサーの負荷分散規則のポート(フロントエンド ポート)と一致している必要があります。
  • ポートを入力すると、バックエンド ポートにも同じ値が反映されます。

publiclb-ea3
負荷分散規則の設定
名前 TestLoadBalancingRule-EA
ポート 80

リージョン間ロード バランサーの作成手順は以下のサイトを参考にしました。

3.2 CLUSTERPROの設定

Azureにリージョン間ロード バランサーを利用したミラーディスク型クラスターを構築します。
今回の検証ではCLUSTERPRO X 4.3 for Windows (内部Ver. 12.30)を利用しています。

CLUSTERPROのフェールオーバーグループには「Azure プローブポートリソース」、「ミラーディスクリソース」、「サービスリソース」の3つを登録します。

今回は、HAクラスター対象のアプリケーションとしてIISを使用します。IISの起動/停止はCLUSTERPROのサービスリソースによって制御するため、事前にインストールして手動起動となるように設定を行っておきます。また、IISへアクセスする際のポート番号を8080に変更して、ミラーディスク(データパーディション)配下にtest.htmlを配置するように仮想ディレクトリの追加を行います。

IISの設定が終わったら、Cluster WebUIを使用して、サービスリソースの設定を行います。サービス名には「World Wide Web 発行サービス」を設定します。

CLUSTERPROの設定
サーバー名 server01 server02
フェールオーバーグループ (failover)
Azure プローブポートリソース プローブポート:26001
ミラーディスクリソース データパーティション:G:\
クラスタパーティション:F:\
サービスリソース サービス名:World Wide Web 発行サービス(IIS)

4. 動作確認

クライアントをAzureの仮想ネットワーク外に配置し、インターネットを経由してリージョン間ロード バランサーのフロントエンド IP(パブリック IP)から、現用系VM、待機系VMにアクセスできることを確認します。

  • 1.現用系VMでフェールオーバーグループ(failover)を起動します。
  • 2.クライアントからリージョン間ロード バランサーのフロントエンド IP(パブリック IP)に接続し、現用系VMのIISにアクセス(test.htmlの参照)ができることを確認します。
  • 3.フェールオーバーグループを待機系VMに移動します。待機系VMでtest.htmlファイルを編集して保存します。
  • 4.クライアントからリージョン間ロード バランサーのフロントエンド IP(パブリック IP)に接続し、待機系VMのIISにアクセス(test.htmlの参照)ができることを確認します。

フェールオーバーグループを移動させることで、リージョン間ロード バランサーのフロントエンド IP(パブリック IP)から、各VMにアクセスができることが確認できました。

testpage

まとめ

今回は、異なるリージョン間で接続先の切り替えにリージョン間ロード バランサーを利用したミラーディスク型クラスターを構築する手順をご紹介しました。
現在はプレビュー版となっていますが、正式にリリースされた際には、DSRを有効化した状態でHAクラスターの構築手順も公開したいと思います。

本記事の構成をご検討の際は、CLUSTERPROのpopup試用版を用いて検証した後、ご提案・構築ください。

お問い合わせ

本記事に関するお問い合わせは、popupお問い合わせ窓口までお問い合わせください。