前回までは、SDNがもたらす価値について改めて考察するとともに、そのためにL4-7のネットワークサービスが果たす役割について説明してきた。簡単におさらいすると、ユーザーが求めていることは、ビジネスの要件に合わせてアプリケーションがいつ、どこでも、安全かつ迅速に使えるようになることであり、サーバやストレージ、ネットワークのリソース自体を使うことではない。裏を返せば、理想は管理者がインフラリソースやその配置場所(プライベート、パブリック、ハイブリッドクラウドなど)を一切意識せずに済み、アプリケーションの要件さえ指定すれば自動的に最適なリソースが最適な場所で用意され、ユーザーにアプリケーションを提供できるような世界だ。
このような世界の実現を目指していくと、ネットワーキング分野で必要なアプローチがSDNであり、現在はL2-3の技術を中心に標準化や製品化が活発に行われている。しかし本連載ですでに説明したように、アプリケーションの要件を叶えるためには、ネットワークをつないでデータフレームやパケットを宛先に届ける役割を果たすL2-3だけでなく、アプリケーションの可用性、安全性、高速性を実現するL4-7のネットワークサービスが不可欠である(詳しくは本連載第2回を参照)。
このような説明を聞いただけでは、あまり明確なイメージがわかない方も多いかもしれない。そこで今回は、実際のシステム構築の例を挙げながら、SDNとそこで使われるL4-7の技術がどのような位置を占めるのか、より具体的に説明してみたい。
オーケストレータとADCの間を取り持つコントローラが存在
例えば、VDI(仮想デスクトップ)のシステムを構築するとしよう。以前であれば、まずはユーザー数から必要な仮想デスクトップ数を算出し、それに見合ったサーバやストレージ、ネットワークのスペックを見積もり、機器をそれぞれ個別に購入し、セットアップする必要があった。しかし本連載の第1回で紹介したように、クラウド時代におけるITの調達・利用スタイルでは、管理者は管理ポータルGUIを通じオーケストレータに対してVDIというアプリケーションの種別とその規模など最低限のパラメータさえ与えてやれば、あとはクラウド基盤がサーバやストレージ、ネットワークのリソースを自動的に調達して、最適な形にセットアップしてくれる世界へと向かっている。
このあたりの仕組みについて、もう少し詳しく見てみよう。オーケストレータは管理者がポリシーで指定したVDIシステムを構築するのにふさわしいサーバ、ストレージ、ネットワークのリソースを、リソースプールから自動的に取得する。ネットワークに関して言えば、L2-3をどう設定してネットワークをつなぐのかについて「SDNコントローラ」へ指示を行う。一方、L4-7に関しては、いわば「L4-7版のSDNコントローラ」のようなソフトウェア製品が存在することが一般的で、オーケストレータはアプリケーションの要件を満たすために必要なL4-7のサービスの取得・設定指示をこのソフトウェアに対して行う。ちなみに、F5の製品ラインアップで言えば、「BIG-IQ」という製品がこれにあたる。
アプリケーションがVDIであれば、ユーザーのデスクトップ環境を一手に担う重要なシステムだけに、可用性や性能が極めて重要視される。そのため、ロードバランサ機能を使って構築されるのが一般的だ。またユーザーからの通信を常に自身のデスクトップ環境と接続できるように、毎回決まったサーバにトラフィックを割り振るパーシステンスと呼ばれる機能が必要とされる。
さらに、ユーザーのアクセス状況ごとに異なるセキュリティポリシーを適用する必要が出てくるかもしれない。例えばユーザーが社外からアクセスしてくる時は、デバイスの特定などより強固な認証方法を採用する必要が出てくるだろう。
管理者はこうしたVDIアプリケーションに固有の要件をポリシーとしてまとめておき、VDIの環境が必要になったら、それをオーケストレータに投げ込む。オーケストレータはそれを受け取り、要件の塊となったポリシーの内容を具体的なL4-7ネットワークサービスの要件にブレークダウンした上で、BIG-IQに対してリクエストを発行する。
このリクエストを受け取ったBIG-IQは、オーケストレータから指定されたL4-7の要件を満たすべく、ADCデバイス(F5の場合「BIG-IP」)に対する設定を行う。例えば「このVDIアプリケーションに対するトラフィックをラウンドロビンでロードバランシングせよ」「このVDIアプリケーションに対する死活監視をこのように行え」「このユーザーからのリクエストはこのVDIサーバに割り振れ」といった具合だ。
SDNコントローラおよび外部クラウドサービスとのインタフェース役も
BIG-IQ(およびそれに相当するソフトウェア)は、上位のオーケストレータや下位のネットワーク機器だけでなく、SDNコントローラともやり取りを行う。L4-7のネットワークサービスを制御するためには、その前提条件として下位レイヤのL2-3との連携が不可欠だ。そのために、BIG-IQはSDNコントローラと通信を行う。具体的には「サービスチェイニング(トラフィックに対してADCから提供される可用性のことで、セキュリティサービスをつなぎ合わせること)」をし、L2-3レイヤのスイッチとL4-7レイヤのADCの間をつなぐのだが、これに関しては本連載の次回以降で解説しよう。
さらに、場合によっては外部のクラウドサービスとも連携する必要が出てくるかもしれない。VDIの例で言えば、AWS上やOpenStackを使って構築されたクラウド基盤上にVDI環境を分散させるような場合だ。例えば日本国内のユーザー向けには国内のデータセンターに構築したVDIサービスを提供し、一方で海外拠点のユーザーに対しては現地のデータセンターやクラウドサービスの基盤上に、別途、VDI環境を構築するようなケースが考えられる。このケースでは、BIG-IQはAWSやOpenStackと互換性のあるAPIが実装されており、外部のクラウドサービス上で稼働するADC(BIG-IP)に対して、前述と同様の可用性やパフォーマンスを向上させるL4-7サービスを設定できる。
ユーザーが国内にいる場合は、国内のVDI環境で稼働する自身のデスクトップ環境を、そして海外に出張した際には現地のクラウド環境上で稼働するデスクトップ環境を利用する、といったようなユースケースも考えられる。このようにユーザーがVDI環境のロケーションを一切意識せずに、いつ、どこにいても自身のデスクトップ環境を快適に利用できるようにするには、ユーザーのロケーションや属性などに応じて、異なるデータセンターやクラウドサービスの間をまたがって、ネットワークサービスを提供できる仕組みが不可欠だ。これを実現するために、例えばBIG-IQには外部のクラウドサービスと連携しながらADC(BIG-IP)が持つL4-7ネットワークサービスを提供する機能が備わっている。
こうして見てみると、SDNにおけるL4-7ネットワークサービスとは、それ自身で独立して何かを実現するものではなく、むしろオーケストレータやSDNコントローラ、ADC、外部クラウドサービスなど、さまざまなコンポーネントと密接に連携して動作することで、本連載の第1回で紹介したような次世代クラウドサービスの一角を構成しているのである。
ちなみに、オーケストレータとのインタフェースを「ノースバウンド」、ADCとのインタフェースを「サウスバウンド」、L2-3レイヤのSDNコントローラとのインタフェースを「ウエストバウンド」、そして外部クラウドとのインタフェースを「イーストバウンド」と、東西南北の方角になぞらえて表現している。次回からは、これらそれぞれのインタフェースを個別に取り上げながら、SDNにおいてL4-7のネットワークサービスが果たす役割について、さらに詳しく紹介していきたい。