WSFC on AzureVM

#はじめに
前回の記事で、ワークグループ環境でのWSFCの構築方法を紹介しましたが、今回はAzureのロードバランサーとWSFCを併用し、高可用性IISが動作するところまでの手順を紹介します。


#事前準備
・OSはWindows Server 2016 Datacenter
・WSFC用サーバーｘ2台、ADサーバーｘ１台
・WSFC用サーバーが同じ可用性セットにあること
・WSFC用サーバーがドメインに参加していること
・WSFC用サーバーにFailover Clustering　機能が追加されていること
・WSFC用サーバーサーバーにIIS 役割が追加されていること

構築の概要は以下の通りで、お伝えしたいポイントはWSFC構築よりもその後の手順にあります。

#概要：
⑴	ドメイン環境でWSFCを構築します
⑵	WSFCにクライアントアクセスポイント役割を追加します
⑶	Azureポータルにて、Azure ロードバランサーを作成し、ノードサーバーをバックプールに追加します
⑷	WSFCの各ノードにて、PowerShellコマンドでAzureロードバランサーに関連付けます

#構築
ここから詳細な構築手順も紹介していきましょう。

###⑴	ドメイン環境でWSFCを構築します。
この部分は、前回紹介したワークグループでのWSFC構築手順とあまり変わらないので割愛します。1つ補足すると、ドメイン環境だとDNSサフィックスの付与やゾーン作成、レコードの追加が自動化されるので、今回はDNS系の作業をスキップすることができます。

###⑵	WSFCにクライアントアクセスポイント役割を追加します。
①	「フェールオーバークラスターマネージャー」を起動し、「役割」を右クリックし、「空きの役割の作成」をクリックします。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/189294/84428d52-912b-3b57-eae4-fbd1ca1cfb3c.png)

②	作成された「新しい役割」を右クリックし、「リソースの追加」→「クライアントアクセスポイント」をクリックします。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/189294/bdb14a8c-e7bb-defb-4625-266004b83158.png)

③	クライアントアクセスポイントウィザードにて、「名前」にクライアントアクセスポイント名を入れて、「次へ」をクリックします。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/189294/89392362-76af-e7cc-3129-ac8117b0a4d3.png)

④	確認画面にて、「次へ」をクリックします。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/189294/2223ab27-fdd1-fe68-bc5e-31576ccf6c1f.png)

⑤	概要画面にて、「完了」をクリックします。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/189294/f9b10e0e-4612-85ba-9972-13678e0ae0fe.png)

⑥	作成された役割を開き、「IPアドレスxxxx」を右クリックし、プロパティをクリックします。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/189294/2502c61b-3315-c0dc-e32b-4a7bf4f34f52.png)

⑦	プロパティの「全般」タブにて、「静的IPアドレス」を選択し、アドレスを入力して、「OK」をクリックします。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/189294/512eff5d-91f0-e19b-b83d-19bcc6825943.png)

⑧	「名前：<役割名>」を右クリックし、「オンラインにする」をクリックします。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/189294/8a6b1400-8d94-2c34-7c9d-9ff9c2b69107.png)

⑨	オンライン状態になれば、クライアントアクセスポイントの設定が完了となります。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/189294/249e5ac1-d746-c839-2384-70b4a4f44dae.png)
※「新しい役割」を右クリックし、プロパティで名前の変更ができますので、名前の変更は特に環境に影響がないので、わかりやすい名前に変更すればいいかと。

ここまでの作業で、クライアントアクセスポイントが作成できました。
しかし、現状はサーバー（ADサーバー）から「http://accesspoint」にアクセスしても、クラスターのIISにアクセスできないはずです。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/189294/9e6d914b-4f51-2b11-503c-370807191356.png)


これを回避するため、WSFC環境にAzureロードバランサーを追加します。

###⑶	Azureポータルにて、Azure ロードバランサーを作成し、ノードサーバーをバックプールに追加します。
①	まずAzureポータルにログインし、ロードバランサー画面を開きます。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/189294/000f03fc-840d-4cbb-fa50-0f651fa2c090.png)

②	「追加」ボタンをクリックします。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/189294/1f18a25f-d3c8-113d-9a13-765ca6254b70.png)

③	ロードバランサーの作成画面にて、環境の情報に合わせて設定値を入れて、「作成」をクリックします。
種類：内部
IPアドレスの割り当て：静的
IPアドレス：<クライアントアクセスポイントと同じIP>
![image.png](https://qiita-image-store.s3.amazonaws.com/0/189294/6e0af7fb-1cad-3445-63a9-b7eb29ec9074.png)

④	ロードバランサーが作成されたら、「ロードバランサー名」→「バックエンドプール」→「追加」順でクリックします。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/189294/9821cb92-d4c6-2589-b3c9-9c1b07231645.png)

⑤	「バックエンドプールの追加」画面にて、ノードの可用性セットを選択し、「＋ターゲットネットワークIP構成の追加」でノードを追加してから、「OK」をクリックします。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/189294/269d8f38-9e2d-6132-4859-620f701a35f4.png)

⑥	次に「正常性プローブ」→「追加」をクリックします。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/189294/c17c0f43-4ffb-cb3c-42fd-1cd09c8aef5d.png)

⑦	正常性プローブの追加画面では、「名前」に適切な文字列を入れて、「プロトコル」にTCPを選択し、「ポート」に59999を入れて、「OK」をクリックします。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/189294/c8f4668d-0e43-79d4-a270-fcc58dd8cf8b.png)

⑧	次に、「負荷分散規則」→「追加」をクリックする

⑨	負荷分散規則の追加画面にて、先ほど作成したリソースを選択し、分散する通信の適切な値を入れて、「OK」をクリックします。
※今回はWebサーバーなので、TCPの80番ポートを使用
![image.png](https://qiita-image-store.s3.amazonaws.com/0/189294/115164e4-62d5-179a-8527-b656a6339110.png)

これで、ロードバランサーの作成は完了です。ただ、ここでもまだアクセスできない状態のため、最後の手順に進みましょう。

###⑷	WSFCとロードバランサーを紐づけます。
①	WSFCの各ノードにて、以下のPowerShellコマンドを管理者権限で実行し、ロードバランサーとの紐づけを実施する

`$ProbePort="59999"`
`$fileserverresource = get-clusterresource | Where-Object { ($_.name -like "IP*10.10.1.0*" ) }`
`$fileserverresource | set-clusterparameter -Multiple @{"Address"="10.10.1.33";"ProbePort"=$ProbePort;"Subnetmask"="255.255.255.255";"Network"=" Cluster Network 1";"OverrideAddressMatch"=1;"EnableDhcp"=0}`

注釈：
"IP*10.0.0.100*" はアクセスポイントのIPアドレス名（役割のIPアドレスのプロパティで確認できる）
"Address"="10.0.0.99"はILBのIPアドレス
"Network"="Cluster Network 1"はクラスターのネットワーク名

コマンド実行結果は以下のようになります。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/189294/bac57505-10ae-5deb-310a-9b4aeba7ead9.png)

②	フェールオーバ―クラスターマネージャーにて、役割を右クリックし、「オフライン」にし、同じ手順で「オンライン」にします。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/189294/0a975c7d-5721-329b-342e-b2bd793ccf9b.png)

③	ネットワーク内のWSFCノード以外のサーバー（ADサーバーとか）から、「http://accesspoint」をアクセスしてみましょう。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/189294/cab7aa62-618d-8112-1c3e-17d669cf7ab5.png)

これでIISの画面が表示されました！！！

以上がAzure VMをWSFCに構築及び設定の内容となります。
AzureのVM上でWSFCを構成するケースは少なくないと思いますので、読んでいただいた方のお役にたてたら幸いです。