【VMware@SoftLayer】論理ロードバランサー構成編（ワンアーム）

#全体像
<a href="http://qiita.com/khayama/items/875e51ebb7be660875f3" >【VMware@SoftLayer】論理ロードバランサー概要編</a>の続きです。
NSX 論理ロードバランサーを以下のようなワンアーム構成で組み、ロードバランシングされることを確認することが目的です。

![nsx_llb_configure_01.png](https://qiita-image-store.s3.amazonaws.com/0/101361/e34fdeba-65e1-955f-d399-5deea249e0ee.png)

#事前準備
1. VXLAN を２つ準備します。
    1. 1つを Web Server 用とし、他方を Web Client 用とします。
2. Web Server 用 VXLAN に Web Server を 3 台立てます。（CentOS と Apache で作りました）
3. Web Server のデフォルトゲートウェイは VIP に向けます
4. 分散論理ルータを立て、Web Server 用 VXLAN と Web Client 用 VXLAN を接続

#NSX Edge のデプロイ

NSX Edge を「+」から追加します。
![nsx_llb_configure_02.png](https://qiita-image-store.s3.amazonaws.com/0/101361/551798e3-987b-f311-3409-d3df2a2f009d.png)

「Edge Services Gateway」を選択し、名前を入力します。HAの設定もここで可能です。
![nsx_llb_configure_03.png](https://qiita-image-store.s3.amazonaws.com/0/101361/831a4af3-05e9-d349-c67a-1c7a06385c64.png)

ユーザー名、パスワードを入力し、SSHアクセスを有効化しておきます。
![nsx_llb_configure_04.png](https://qiita-image-store.s3.amazonaws.com/0/101361/47004816-86dd-1fa1-6d02-827fe9df236f.png)


データセンターとアプライアンスサイズを選び、「+」から追加します。

| vAppサイズ | リソース |
|:-:|:-:|
| コンパクト（Compact） | 1 vCPU, 512 MB |
| 大（Large） | 2 vCPU, 1024 MB |
| 特大（Quad Large） | 4 vCPU, 1024 MB |
| 超特大（X-Large） | 6 vCPU, 8192 MB |

![nsx_llb_configure_05.png](https://qiita-image-store.s3.amazonaws.com/0/101361/81c86328-3de6-408e-9d12-c844638468bd.png)

アプライアンスをデプロイする配置パラメータを指定します。
![nsx_llb_configure_06.png](https://qiita-image-store.s3.amazonaws.com/0/101361/7abad00a-b4b5-5bd2-218f-057ab85dda8e.png)

行が追加されたことを確認し、「次へ」進みます。
![nsx_llb_configure_07.png](https://qiita-image-store.s3.amazonaws.com/0/101361/7a1597d9-16e2-2955-fe1a-7654fbae8b38.png)

続いて、インターフェースを追加します。（ワンアームなので１つです。）
![nsx_llb_configure_08.png](https://qiita-image-store.s3.amazonaws.com/0/101361/f935de30-4083-051d-9f43-a295900252bd.png)

画面のように設定します。「192.168.200.10」は「VIP」となるアドレスです。
Web Server がある VXLAN と同一の VXLAN に接続します。
![nsx_llb_configure_09.png](https://qiita-image-store.s3.amazonaws.com/0/101361/63d18c77-4f78-e2f0-8862-89f3052da907.png)

行が追加されたことを確認し、「次へ」進みます。
![nsx_llb_configure_10.png](https://qiita-image-store.s3.amazonaws.com/0/101361/e19a59b9-8586-5489-d237-668d02ed68bc.png)

NSX Edge のデフォルトゲートウェイは分散論理ルータに向けます。
![nsx_llb_configure_11.png](https://qiita-image-store.s3.amazonaws.com/0/101361/7ab7ecdc-23c1-15bb-ed5e-475d6f7e9ffa.png)

必要に応じて、設定します。
![nsx_llb_configure_12.png](https://qiita-image-store.s3.amazonaws.com/0/101361/11583285-3436-0c40-b086-de16cc69b942.png)

以上の設定を確認し、「終了」します。
![nsx_llb_configure_13.png](https://qiita-image-store.s3.amazonaws.com/0/101361/d8f3d664-ab6e-e9de-a8fe-8effc5c88868.png)

デプロイ作業の進行中は「ビジー」となります。
![nsx_llb_configure_14.png](https://qiita-image-store.s3.amazonaws.com/0/101361/4abf20a1-8aee-e0d8-aa56-57b6ddd1ef81.png)
「デプロイ済み」となり、デプロイが完了したことを確認します。
![nsx_llb_configure_15.png](https://qiita-image-store.s3.amazonaws.com/0/101361/3b8efb3c-9cec-cd49-82fa-0f4558bbe6dd.png)

#論理ロードバランサーの設定
デプロイされた NSX Edge のロードバランサーのグローバル構成を編集します。
![nsx_llb_configure_16.png](https://qiita-image-store.s3.amazonaws.com/0/101361/5d558e91-3eed-c8d8-a380-fbd943184d47.png)

「ロードバランサーの有効化」にチェックを入れ、「OK」を押します。
![nsx_llb_configure_17.png](https://qiita-image-store.s3.amazonaws.com/0/101361/1cf947bd-de8c-2401-eaf5-2a5e4fd6cec4.png)

続いて、「アプリケーションプロファイル」を追加します。
![nsx_llb_configure_18.png](https://qiita-image-store.s3.amazonaws.com/0/101361/182b11bb-b9a7-b548-8878-b7c43901ebdf.png)

今回は「HTTP」を選択します。
![nsx_llb_configure_19.png](https://qiita-image-store.s3.amazonaws.com/0/101361/209650e9-654f-6816-4922-a15560431aab.png)

続いて、「プール」を追加します。
![nsx_llb_configure_20.png](https://qiita-image-store.s3.amazonaws.com/0/101361/198458e2-1ff6-a355-604c-80b4741574dc.png)

「＋」からロードバランシング対象サーバーのメンバーを追加します。
![nsx_llb_configure_21.png](https://qiita-image-store.s3.amazonaws.com/0/101361/aca75cf4-a870-6f60-5519-6d5b47d4cb14.png)

IPアドレスは直接入力し、ポートは80とします。
![nsx_llb_configure_22.png](https://qiita-image-store.s3.amazonaws.com/0/101361/a27b304f-bc57-fee1-79f4-9bba09fe168d.png)

今回は「ROUND-ROBIN」としますが、以下のようなロードバランシングアルゴリズムが選択可能です。
![nsx_llb_configure_23.png](https://qiita-image-store.s3.amazonaws.com/0/101361/3fbeeba7-0648-676e-3a97-f518a8438b71.png)

設定を確認し、「OK」を押します。
![nsx_llb_configure_24.png](https://qiita-image-store.s3.amazonaws.com/0/101361/af959734-1822-5599-8f3c-a97a473b6771.png)

続いて、仮想サーバを追加します。
![nsx_llb_configure_25.png](https://qiita-image-store.s3.amazonaws.com/0/101361/c8d6f3fa-e01e-a306-f4b4-a92c654b9ff1.png)

NSX Edge で設定したVIPアドレスを選択します。
![nsx_llb_configure_26.png](https://qiita-image-store.s3.amazonaws.com/0/101361/c41f4ab0-8af8-26e2-0202-8c84c3c6a67c.png)

設定を確認し、「OK」を押します。
![nsx_llb_configure_27.png](https://qiita-image-store.s3.amazonaws.com/0/101361/7c334f86-ee1a-8c7c-7a82-6324eeaac0fd.png)

以上で設定は完了です。
![nsx_llb_configure_28.png](https://qiita-image-store.s3.amazonaws.com/0/101361/7a4649f3-0639-f29e-f13b-5cdd90e403de.png)

#動作確認
ロードバランサーから、対象サーバーのステータスが「UP」となっていることが確認できます。
<img width="622" alt="nsx_llb_configure_29.png" src="https://qiita-image-store.s3.amazonaws.com/0/101361/36fee41f-55e2-d4b9-817c-2d08e802991d.png">

#クライアントからのアクセス
クライアントから、VIP アドレスにアクセスすると、以下のように1, 2, 3 という形でラウンドロビンでロードバランシングされていることが確認できましたね！
<img width="800" alt="nsx_llb_configure_31.png" src="https://qiita-image-store.s3.amazonaws.com/0/101361/6474ab01-4575-c22f-f530-50e62a992200.png">
<img width="798" alt="nsx_llb_configure_32.png" src="https://qiita-image-store.s3.amazonaws.com/0/101361/2a7a7e13-c3a3-1e6e-50ef-e4facacf6703.png">
<img width="798" alt="nsx_llb_configure_33.png" src="https://qiita-image-store.s3.amazonaws.com/0/101361/8f05644e-8949-73d6-e493-f4a75371b7ac.png">

#まとめ
以上が、ワンアームでの論理ロードバランサーの構成でした。
こんなに簡単にロードバランサーを作ったり、構成変更や HA 構成も組めるので、柔軟性があると思いました。
また、VIP ごとに個別のサーバープールと構成設定も可能です。
高度な組み合わせとしては、このような論理ロードバランサーを vRealize Automation を使うと、設計に組み込み、LB/WEB/APP/DB のパターンとしてワンクリックで自動デプロイできる、というのも大きな魅力かと思います。

#参考
- <a href="https://pubs.vmware.com/NSX-62/index.jsp?topic=%2Fcom.vmware.nsx.admin.doc%2FGUID-D2602649-D673-4C3A-A35B-BF29DCE136FB.html" >VMware NSX for vSphere 6.2 ドキュメント センター</a>
- [Troubleshooting NSX for vSphere Edge Load Balancer (2122708) | VMware KB](https://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=2122708)
- [Configure and Manage Logical Load Balancing in NSX](http://www.virtually-limitless.com/vcix-nv-study-guide/configure-and-manage-logical-load-balancing/)