Japan
サイト内の現在位置を表示しています。
Azureでリージョン間ロード バランサーを利用したHAクラスターの構築を試してみました(Windows)
CLUSTERPRO オフィシャルブログ ~クラブロ~
はじめに
Microsoft Azure(以降、Azure)上で、リージョン間ロード バランサーを利用して、異なるリージョンに配置したAzure Virtual Machines(以降、VM)間でHAクラスターの構築を試してみました。
リージョン間ロード バランサーは、2021年にプレビュー公開された、異なるリージョン間でトラフィックを負荷分散できるロード バランサーです。
CLUSTERPROのガイドでは、Azure ロード バランサーを接続先切り替えに使用した構成を紹介していますが、これまでAzure ロード バランサーはリージョン間での負荷分散に対応していなかったため、異なるリージョンに配置したVM間で接続先の切り替えに利用することはできませんでした。そのため、以前のブログでは、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.2 仮想ネットワークを接続する
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」、レベルは「地域」を選択します。
パブリック ロードバランサーの設定 | ||
---|---|---|
名前 | TestLoadBalancer-JE | TestLoadBalancer-SEA |
地域 | 東日本 | 東南アジア |
種類 | パブリック | パブリック |
SKU | Standard | Standard |
レベル | 地域 | 地域 |
続けて、フロントエンド IP 構成、バックエンド プール、インバウンド規則(正常性プローブ、負荷分散規則)の設定を行います。送信規則は設定しません。
フロントエンド IP 構成
[+フロントエンド IP 構成の追加]をクリックして設定します。
フロントエンド IP 構成の設定 | ||
---|---|---|
地域 | 東日本 | 東南アジア |
名前 | TestLoadBalancerFrontEnd-JE | TestLoadBalancerFrontEnd-SEA |
パブリック IP アドレス名 | TestLoadBalancerPublicIP-JE | TestLoadBalancerPublicIP-SEA |
可用性ゾーン | 1 | 1 |
バックエンド プールの設定
[+バックエンド プールの追加]をクリックして設定します。
バックエンド プールの設定 | ||
---|---|---|
地域 | 東日本 | 東南アジア |
名前 | TestBackendPool-JE | TestBackendPool-SEA |
VM | サーバー1(現用系VM):server01 | サーバー2(待機系VM):server02 |
インバウンド規則の設定
[+負荷分散規則の追加]をクリックして設定します。また、正常性プローブを新規作成をクリックして設定します。
負荷分散規則の設定 | ||
---|---|---|
地域 | 東日本 | 東南アジア |
名前 | TestLoadBalancingRule-JE | TestLoadBalancingRule-SEA |
ポート | 80 | 80 |
バックエンドポート | 8080 | 8080 |
正常性プローブの設定 | ||
---|---|---|
地域 | 東日本 | 東南アジア |
名前 | TestHealthProbe-JE | TestHealthProbe-SEA |
ポート | 26001 | 26001 |
受信セキュリティ規則の設定
パブリック ロード バランサーの作成が終わったら、東日本リージョンと東南アジアリージョンに追加したVMにネットワーク セキュリティ グループの設定をします。
受信セキュリティ規則に、パブリック ロード バランサーの負荷分散規則で設定したバックエンドポートを追加します。
受信セキュリティ規則の設定 | ||
VM | server01 | server02 |
名前 | TestHTTP | TestHTTP |
プロトコル | TCP | TCP |
宛先ポート範囲 | 8080 | 8080 |
パブリック ロード バランサーの作成手順は以下のサイトを参考にしました。
リージョン間ロード バランサーの作成
Azure ポータルを使用して、東アジアリージョンにリージョン間ロード バランサーを作成します。
種類は「パブリック」、SKUは「Standard」、レベルは「グローバル」を選択します。
リージョン間ロード バランサーの設定 | ||
---|---|---|
名前 | TestLoadBalancer-EA | |
地域 | 東アジア | |
種類 | パブリック | |
SKU | Standard | |
レベル | グローバル |
続けて、フロントエンド IP 構成、バックエンド プール、インバウンド規則(負荷分散規則)の設定を行います。送信規則は設定しません。
バックエンド プールには、東日本リージョンと東南アジアリージョンに作成したパブリック ロード バランサーを追加します。
フロントエンド IP 構成
[+フロントエンド IP 構成の追加]をクリックして設定します。
フロントエンド IP 構成の設定 | ||
---|---|---|
名前 | TestLoadBalancerFrontEnd-EA | |
パブリック IP アドレス名 | TestLoadBalancerPublicIP-EA |
バックエンド プールの設定
[+バックエンド プールの追加]をクリックして設定します。
バックエンド プールの設定 | ||
---|---|---|
名前 | TestBackendPool-EA | |
ロード バランサー | パブリック ロード バランサー(東日本):TestLoadBalancer-JE | パブリック ロード バランサー(東南アジア):TestLoadBalancer-SEA |
フロントエンド IP 構成 | パブリック ロード バランサー(東日本):LoadBalancerFrontEnd-JE | パブリック ロード バランサー(東南アジア):LoadBalancerFrontEnd-SEA |
インバウンド規則の設定
[+負荷分散規則の追加]をクリックして設定します。
- ※ポートを入力すると、バックエンド ポートにも同じ値が反映されます。
負荷分散規則の設定 | ||
---|---|---|
名前 | 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にアクセスができることが確認できました。
まとめ
今回は、異なるリージョン間で接続先の切り替えにリージョン間ロード バランサーを利用したミラーディスク型クラスターを構築する手順をご紹介しました。
現在はプレビュー版となっていますが、正式にリリースされた際には、DSRを有効化した状態でHAクラスターの構築手順も公開したいと思います。
本記事の構成をご検討の際は、CLUSTERPROの試用版を用いて検証した後、ご提案・構築ください。
お問い合わせ