【VMware@SoftLayer】論理ロードバランサー概要編

#NSX 論理ロードバランサー (Logical Load Balancer) って？
NSX には様々な機能があります。
たとえば、ネットワーク仮想化の基本機能に加えて、NAT、ルーティング、ロードバランサー、分散ファイアウォール、VPNといった機能があります。

NSX は、導入時に各ハイパーバイザー（vSphere ESXi）に「VIB」ファイルをインストールします。

>「VIB」とは？
VMWareのVIBとは「VMware Infrastructure Bundle」の略です。
VMware ESXiは起動に必要なモジュール(VIB)を選択して起動(インストール)することが出来きます。
ちょうど、Linuxで言うカーネルモジュールの選択・カスタマイズのようなものでしょうか。
<a href="http://vmware-vcp5.blogspot.jp/2014/09/vibvmwarevmwarecertifiedvmwareacceptedp.html" >「VIB」とは？VMwareの許容レベル(VMwareCertified,VMwareAccepted,PartnerSupported,CommunitySupported) - VMware資格VCP5-DCV勉強</a>

インストール後にはもちろん管理系の仮想マシンとして「NSX Manager」「NSX Controller」が必要になりますが、ネットワーク仮想化の基本的な部分は、このハイパーバイザーの拡張機能によって、実現されます。
それ以外にも「Distributed (分散)」と名のつく機能は、ハイパーバイザー（vSphere ESXi）によって提供されています。
「分散」ファイアウォール、「分散」論理ルーター、「分散」ロードバランサーなどが当てはまりますね。

上記以外の機能は、NSXのライセンスがあると導入可能な仮想アプライアンスの機能の一部として提供されます。その多機能さゆえに「スイスのアーミーナイフ」とも呼ばれる「NSX Edge」という仮想アプライアンスです。ネットワークの境界（Edge）に配置し、「Edge Firewall」「Edge load balancing」「VPN」といった機能を提供します。本記事で紹介する「NSX Edge Load balancing」は、「NSX Edge」により、提供されています。
言うなれば、「NSX Edge」を論理ロードバランサーとして使う、ことができます。

>実際の画面
<img width="112" alt="edge_screen.png" src="https://qiita-image-store.s3.amazonaws.com/0/101361/550ec56a-f738-cf5f-3d75-9d90f3c1d3ea.png">
<img width="561" alt="edge_function_list.png" src="https://qiita-image-store.s3.amazonaws.com/0/101361/1d39d6b6-8220-03c3-05a3-3f092714643a.png">


#ライセンスのエディションは？
本記事で紹介する「NSX Edge Load balancing」は、Advanced 以上のエディションで利用可能な機能になっています。
**Bluemix Infrastructure （旧 SoftLayer） で提供されている月額ライセンスは「NSX for vSphere」の「Enterprise」エディションなので、NSXの論理ロードバランサーを利用できます。**

><img width="778" alt="nsx_function_matrix.png" src="https://qiita-image-store.s3.amazonaws.com/0/101361/232c4237-a2be-bdf6-d348-b445cd6a6f7e.png">
><a href="http://www.vmware.com/content/dam/digitalmarketing/vmware/en/pdf/products/nsx/vmware-nsx-datasheet.pdf" >vmware-nsx-datasheet.pdf</a>


#Bluemix Infrastructure （旧 SoftLayer）のロードバランサーとの違いは？
ロードバランサーであれば、もちろん Bluemix Infrastructure （旧 SoftLayer） から調達することも可能です。
たとえば、以下のような場合は Bluemix Infrastructure （旧 SoftLayer） のロードバランサーを使うことをおすすめします。

- クラウドならではのオートスケールと組み合わせて使いたい
- 複数データセンターをまたいだロードバランシングを行いたい
- WAF などを追加機能として使いたい
- ...などなど

NSX の論理ロードバランサーのほうも、エコシステムが充実していくことが予想されるので、サードパーティ製の NFV（Network Functions Virtualization）が出てくると思われます。上記のような場合でも NFV で今後、実現できる可能性があります。

NSXの論理ロードバランサーのほうが、ネットワーク構成変更/スケールが容易という部分はあるかもしれませんが、ほぼ同等と考えてよいでしょう。

また、ロードバランサーのことだけを考えて費用面をみても、実際はロードバランサーのためだけにNSXを買うというよりか、NSXを買って使っているのだから、NSX Edge を論理ロードバランサーとして使おう、という場合がほとんどだと思います。

- Bluemix Infrastructure （旧 SoftLayer） のロードバランサー
    - \$50 〜 \$1999 per month
- NSX 論理ロードバランサー
    - \$134 per processor per month (Dual CPU x 3 hosts --> \$804 〜)


#論理ロードバランサー機能一覧
以下、抜粋です。
ほとんどの機能が揃っていると言っていいと思います。

>- Protocols	
    - TCP (L4 - L7)
    - UDP
    - FTP
    - HTTP
    - HTTPS (パススルー)
    - HTTPS (SSLアクセラレーション)
- ロードバランシング
    - ラウンドロビン	
    - 送信元IPハッシュ
    - リーストコネクション（最小接続）
    - URI, URL, HTTP (L7エンジン)
    - vCenter コンテキストロードバランシング
    - L7 アプリケーションルール
- ヘルスチェック	
    - TCP
    - ICMP
    - UDP
    - HTTP
    - HTTPS
    - コネクションスロッティング
    - High-Availability（高可用性）	
- Monitoring	
    - VIP/プール/サーバーオブジェクトの確認
    - VIP/Pool/サーバーステータス確認
    - グローバルVIPセッション数のステータス確認

><a href="http://infratraining.blogspot.jp/2016/05/vmware-nsx.html" >インフラSE修行日誌: VMware NSXのエディション化が発表されました！(1)</a>

#構成パターンは？
以下の2つのパターンがあります。
##ワンアームモード（プロキシ型）
NSX Edge の1つのインターフェースだけを利用して、VIP設定をします。ロードバランシング対象のサーバーと同一セグメントに接続し、SNATをおこないます。

<img width="808" alt="one_armed_lb.png" src="https://qiita-image-store.s3.amazonaws.com/0/101361/658d09cd-f789-06e9-f85b-627760458488.png">

##インラインモード（透過型）
VIPのインターフェースと、ゲートウェイとしてのインターフェースをそれぞれ持ちます。
SNATをおこなわず、クライアントIPが維持されます。

<img width="799" alt="inline_lb.png" src="https://qiita-image-store.s3.amazonaws.com/0/101361/a4fcf3f1-bac1-5e4a-04a1-c24dbab96302.png">

#分散ロードバランサーとの違いは？
以下の図にある通り、「ヘアピン通信となるかどうか」が大きな違いです。
NSX 論理ロードバランサーの場合、必ず Edge を通る通信になりますが、
分散ロードバランサーの場合、ハイパーバイザーでロードバランシング処理がおこなわれるため、通信が効率的になります。
##NSX 論理ロードバランサーの場合
><img width="922" alt="logical_LB.png" src="https://qiita-image-store.s3.amazonaws.com/0/101361/f518c163-7ecd-d45e-cab2-67a4d98b6a09.png">
##分散ロードバランサーの場合
><img width="915" alt="Distributed_LB.png" src="https://qiita-image-store.s3.amazonaws.com/0/101361/2229932b-6fc1-8309-143c-1afd327d5045.png">

> From <a href="http://www.slideshare.net/VMworld/vmworld-2016-advanced-network-services-with-nsx" >VMworld 2016: Advanced Network Services with NSX</a> P34, 35
 
#パフォーマンスは？
気になる方のためにのせておきます。

><img width="1419" alt="nsx_lb_performance.png" src="https://qiita-image-store.s3.amazonaws.com/0/101361/54d0eaf4-3d72-30d2-bd94-324f877995a3.png">

> From <a href="http://www.slideshare.net/VMworld/vmworld-2016-advanced-network-services-with-nsx" >VMworld 2016: Advanced Network Services with NSX</a> P31

Bluemix Infrastructure （旧 SoftLayer） のロードバランサーはこちら
><img width="1537" alt="bmx_lb_performance.png" src="https://qiita-image-store.s3.amazonaws.com/0/101361/4a865ac4-d057-d384-2833-8a8e1a5c34b0.png">
http://www.softlayer.com/tco/pdf/Compare_LoadBalancers_jp-ja.pdf

#初期の導入・設定は？
概要はこのへんにして、実際に試してみました。

- <a href="http://qiita.com/khayama/items/6dfe6d918a68b5dcbc1f" >【VMware@SoftLayer】論理ロードバランサー構成編（ワンアーム）</a>
- 【VMware@SoftLayer】論理ロードバランサー構成編（インライン）