ネットワーク NSX NSX Advanced Load Balancer NSX Data Center

Virtual Cloud Network への途:アプリケーションデリバリーコントローラーとしての NSX Advanced Load Balancer 前編

2025年までには楽になろう…

アプリケーションデリバリーコントローラーとしての
NSX Advanced Load Balancer 前編

貧しい生まれのせいかどうも格式張った表現が苦手です言葉遣いが綺麗で立ち居振る舞いに品のある方にお会いすると、憧れもあって似たような所作・表現をトライしてはみるのですが、どうもとってつけた浮ついた感じになってしまいます…。似たような理由でネットワーク上がりなキャリアの私からするとロードバランサーはロードバランサーであって、ほんとはアプリケーションデリバリーコントローラー(ADCとはあんまり言いたくない気持ちなんですが、たまたま先週1週間で 別々の2つのお客さまからとある同じ Use Case の紹介を求められ、恥ずかしながらがっつりアプリケーションデリバリーコントローラーを連呼しながら NSX Advanced Load Balancer の使い方についてご紹介をする機会があったので、今回はそんなお話を。

 

心労を伴うアプリケーションの更改

デジタルトランスフォーメーションだ、アプリケーションのモダナイズだ、コンテナだ、と最近の VMware さんはいろんなところで言いますが、なかなかすべてのアプリケーションをいきなり近代化するのは難しく、多くのお客様が将来像を見据えつつもいまはまだ旧来型のアプリケーション更改に追われているのが昨今の事情ではないでしょうか。サービスダウンを伴うメンテナンスウィンドウの短縮、障害発生時に対するロールバック、複数間チームの多岐に渡る意識合わせや調整事など、とかくアプリケーションの更改には心労が伴います。

 

ADCによるアプリケーションのデリバリー

そんな苦労を少しでも軽減しようとロードバランサー、もといアプリケーションデリバリーコントローラーを利用したアプリケーション更改方法がいまやマジョリティになっています。その手法も徐々に一般名称化されつつあり、新旧バージョンを二面用意し、継続的な開発環境につなげていこう、というBlue/Green デプロイメントや、

プロダクション環境においてある特定の、もしくはある一定比率のユーザーだけを新しいバージョンのアプリケーションに振ってみて新バージョンの確認、調査をプロダクション環境で行うカナリアリリースデプロイメント、などいろいろな考え方や手法があります。

こういった様々なアプリケーションのデリバリーを担うネットワーク機器がアプリケーションデリバリーコントローラーです。サーバーやアプリケーションの負荷を分散する、もしくは冗長化を提供する、という需要から生まれてきたロードバランサーが、徐々にL7の情報まで認識した制御を行うL7ロードバランサーに進化し、さらにセキュリティや可視化など負荷分散機能に加えてアプリケーション更改や提供に特化した様々な便利ツールが搭載されたもの、がアプリケーションデリバリーコントローラーという製品分野の位置づけになります。(一言で平たく言うとどれもロードバランサーですが…)

ただしこのアプリケーションデリバリーコントローラー、ロードバランサー時代からの歴史的な経緯もあり一般的にはネットワークチームにより管理されることが多いと思うのですが、なにか有事の際にはネットワークチームとアプリケーション開発チームとの間における諍い・紛争の中心に置かれることになり、最後はこのデバイスにおける機能性不足や仕様がお互いの振り上げた拳のおろしどころになることも…

よってアプリケーションデリバリーコントローラーと名乗るからには、単純なロードバランス機能や性能だけでなく、なにか有事の際における問題の切り分けを迅速化する可視性やそこで詳らかになった問題解決を速やかに行えるような管理・運用性、といったものが非常に重要になってきます。そのあたりにこだわり抜いて開発、販売されているのがNSX Advanced Load Balancer です。

VMware が提供するデータセンター向けのSDN ソリューションである NSX-T Data Center にも仮想ロードバランサーの機能は提供されていますが、こちらはソリッドなロードバランサー機能の提供にその目的が定められているのに対して、NSX Advanced Load Balancer ではアプリケーションデリバリーコントローラーとしての柔軟な制御をシングルポイントから提供することを目的としたわかりやすい操作性、流麗な可視化を備えた管理UIが提供されます。(NSXという名称がついてはいますが、NSX−T Data Center とは別製品となる、スタンドアロンの兄弟ソリューションとなります。)

ソリューションについての基本的なご紹介はこちらのポストを参照していただければと思いますが、

https://blogs.vmware.com/vmware-japan/2020/09/nsx_alb_for_hybridcloud.html

旧来型のロードバランサーでは実現できなかった、アプリケーションの拡張/縮退に寄り添って、スケーラビリティをスケールアウト/インすることができるElastic な機構や、ユーザーからのトランザクションを流麗なUIで可視化して問題や傾向をナローダウンできる管理性が特徴です。

 

 

NSX Advanced Load Balancer のオブジェクトモデルとPool Memberという考え方

アプリケーションデリバリーコントローラーとしてのNSX Advanced Load Balancer の特徴をご紹介する前に、まずはそのオブジェクトモデルについてご紹介します。Elastic な ロードバランス(以下LB)機能に特化したSDN製品として構成されているNSX Advanced Load Balancer (以下NSX ALB)は、統合管理型のコントローラーとしてのNSX ALB Controller と、LBの実態部分を担うNSX ALB Service Engine、から構成されます。

設定管理や可視化(コントロールプレーン)を担うControllerと実際のクライアントからのトラフィックの転送(データプレーン)をポリシーに応じて行うService Engineという役割分担です。Service Engineにより提供されるLB機能ですが、その構成オブジェクトはクライアントからの通信ターゲットとなるVirtual Service(≒VIP)、Virtual Service(以降VS)が分散する宛先サーバーの集合体を表現するPool、そして実Server、という主に3つのコンポーネントによって構成されます。NSX Advanced Load Balancer の場合、このVSが指定する際のPool指定を単純なサーバーの集合体であるPoolか“Pool Group”という形で選択して表現できるところがミソとなります。

このPool Group を利用することでPriority Ratio という2段階のPool 選択アルゴリズムを利用してより柔軟にVSが指定するPoolの指定、しいてはアプリケーションのデリバリー方法を選択することが可能となります。さらにこれに加えて、特定の通信にだけこの選択アルゴリズムを上書きすることによりバイパスさせることのできるRequest Policy、という考え方を組み合わせて構成することも可能です。

これらの使い所について、実際のユースケースを元に構成・設定概念などと併せて後編のポストにてご紹介したいと思います。

後編につづく)