仮想と物理の橋渡しで、クラウドはもっと楽しくなる
2022年12月02日 金曜日
CONTENTS
【IIJ 2022 TECHアドベントカレンダー 12/3(土)の記事です】
はじめに
こんにちは。IIJでクラウドサービスの運用を担当しております。原口です。
今回は2021年10月にリリースした次世代のクラウドサービス、「IIJ GIOインフラストラクチャーP2 Gen.2」のネットワーク基盤、特にネットワークの仮想化や物理ネットワーク-仮想化ネットワークの接続、そしてその魅力について、少々お話したいと思います。
IIJ GIOインフラストラクチャP2 Gen.2とは
https://www.iij.ad.jp/biz/p2-gen2/fsr.html
IIJ GIOインフラストラクチャP2 Gen.2は、エンタープライズのお客様向けのクラウド基盤サービスです。高い信頼性・広い拡張性・強力な各種コンポーネント連携を持ったVMware社の仮想化ソリューション、vSphere基盤を用いて構成されており、お客様に必要なクラウドリソースをすばやくご提供するサービスです。
「サーバの管理だけで手一杯なのに、クラウドも管理しなければならないのか……?」というお声も頂戴しますが、弊社のこの新しいクラウドは、ハードウェアとハイパーバイザ(vSphere基盤)の管理を弊社が行うため、お客様の運用にかかわる負担を減らすことが可能です。
クラウドと仮想化……?
オンプレミスやクラウドをIaaS基盤として利用し、運用していく上で「仮想化」の仕組みはすでに当たり前のものとなっています。最終的にサービスを利用するエンドユーザからは、あるサービスの基盤が仮想化されているかどうかを知る術はありませんが、IaaSの運用に携わるメンバーは仮想化の知識をフルに使い、安定したサービスをエンドユーザへ提供できるよう、日々奮闘しています。
さて、仮想化の機能を用いることは、運用効率の向上や、コストメリットが生まれます。企業や事業が成長するにしたがい、要求される機能や社内サービスは増加しますが、それらをホストする基盤が仮想化されていると、それらのメリットはどんどん大きくなっていきます。
「仮想化」という機能は現在さまざまなところで用いられていますが、一般的に「仮想化」と呼ぶとサービスをホストする「サーバ」(PC)を仮想化する、「仮想マシン(VM)」が一般的かと思います。しかし、仮想化できるのはサーバだけではありません。ネットワークも仮想化することができます。
ネットワークの仮想化の利点として下記が挙げられます。
- ネットワークの拡張性向上
- ネットワーク構築のアジリティ(俊敏性)向上
弊社のような大規模なクラウド事業者として考えると、既存の技術であるVLANだけでネットワークを組むのでは、上記のメリットを享受することはできません。すばやく、かつ大規模にネットワークを展開できる、ネットワーク仮想化、SDN(Software Defined Network)の考え方は今のクラウド事業者にとって、重要な技術となっています。
IIJ GIOインフラストラクチャP2 Gen.2 フレキシブルサーバリソース(FSR)では、サーバだけではなく、ネットワークも仮想化されており、その実装はVMware社のVMware NSX-Tを用いています。
ネットワーク仮想化で得られるメリットとは?
仮想化されたネットワークはどこにつながるか?
仮想化されたネットワークといえども、仮想化されていないネットワークと同様に、最終的な接続先は多岐にわたります。
たとえば外部公開をするアプリケーションとして動作するVMなら「インターネット」、社内サービスであれば「VPN」、バックアップ・DRのためならば「閉域網(IIJ プライベートバックボーン)」、その他のネットワーク等です。
これらの接続にあたり、仮想化されていない世界を考えると、物理接続や機器の設定変更に対しそれなりの時間がかかり、アジリティ(俊敏性)を欠く結果となります。これはオンプレミス(自社設備)でも同様のことです。
一方で仮想化されている(かつFSRのように上手に設計されている)と、これらの接続は瞬時に可能となります。
それらをどのように実装するか?
弊社のFSRはVMware NSX-T(以降 NSX-Tと省略します)の機能を隅から隅まで用いて、ネットワーク仮想化の利便性を最大限に利用しています。
NSX-Tとは?
NSX-TはVMware社のSDN(ソフトウェアによるネットワークの構成・実装・操作を行うこと)を実現するソリューションです。FSRで利用しているNSX-Tの機能やアーキテクチャを軽く説明します。
- NSX Manager
- NSX-Tによる仮想ネットワークを統合管理するコンポーネントです。FSRでは後述する自社開発のコントロールパネル経由でNSX Managerに指示を出し、お客様の要望するネットワークを構成しています。(REST APIを用いています。)
- Edge サーバ
- 仮想のネットワークを構築するための主要なコンポーネントです。物理のネットワークから仮想化されたネットワークへの接続を行うことと、その逆ができるものです。
- 仮想のネットワークのルーティング(論理ルータ)、ファイアウォール、ロードバランサなどのネットワークに必要なサービスを提供しています。
- 通常は仮想マシンとして動作しているものですが、要件を満たす物理サーバをEdgeサーバとして動作させることも可能です。(後述するDCコネクタ:L2は物理サーバを用いています)
お客様が操作するのは自社開発のコントロールパネルであり、裏ではNSX-Tが仮想化されたネットワークを設定しています。
ネットワーク事業者視点での制限 vs お客様のご要望
ネットワークが仮想化できることはわかりましたが、物理ネットワークにおいて、制限となるものは何があるでしょうか。クラウド事業者の視点から考えてみましょう。
- 各種ネットワークの設定ファイルの管理
- ネットワークの機器はたいていテキストベースのコンフィグレーションファイルになっています。テキストベースのファイルは小さなネットワークであれば十分ですが、大規模なネットワークになるとパラメータの肥大化、設定の肥大化に陥り、手動設定では間に合わなくなります。
- 設定の煩雑さ
- 設定をネットワーク機器に投入するにあたり、自動化されていない機器がある場合があります。これらに対して設定を投入するには手動で行うか、AnsibleのRoleを手動で書くか、といずれにしても大きな負担となります。
- 設定にかかる時間
- お客様の要求はいつ来るかわかりません。アジリティの観点から考慮すると、ご依頼後「すぐに」設定が投入され、利用できるようになっていればなりませんが、物理機器の設定をすることを考えると時間がかかってしまいます。
- VLAN数の制限
- VLANは技術的に4094本までしか作成することができません。大規模なクラウド事業を考慮するとこの制限は非常に厳しく、4094本では不足してしまいます。(全ての顧客で4094本なので非常に厳しい制限となります)
一方でお客様視点で考えると、
- 設定ファイルの管理をしたくない
- 設定は簡単にできてほしい
- 設定後、すぐに利用できてほしい
- ネットワークは複数・多数作成できてほしい
と、相反する事態となります。
仮想化で解消
NSX-Tの世界においては、ネットワークを仮想化するために様々な実装が用いられています。
例えば前に例で挙げたネットワークのVLAN本数制限は、仮想化の仕組みを用いて制限を突破しています。(実態はネットワークの仮想化にGENEVEと呼ばれるプロトコルを利用しています。GENEVEはL3レイヤをカプセリング化することでネットワークに柔軟性を持たせています。)
また、ネットワークのアジリティ向上については、NSX-Tが持つAPIをフルに用いて「即時に」仮想化ネットワークの設定変更を行っています。
一般的にNSX-Tでネットワークを操作する場合、NSX-Tの管理画面(NSX-T Manager)を扱うことでネットワークを構築していきますが、弊社のFSRは弊社開発のコントロールパネルを備えています。このコントロールパネルを利用することで、お客様は煩雑なネットワーク設定を考えることなく、ネットワークをほぼ無制限に、かつ即時作成することができます。(ここでのネットワークとは、1つのブロードキャストドメインを指します)
これが実現できるのは、仮想化ソリューションであるNSX-Tのほぼ無限とも言える拡張性と、そのAPIを叩くバックエンドの組み合わせによるものです。
コントロールパネルの実装
FSRの裏側ではNSX-Tが提供するAPIを利用し柔軟なネットワークを構成しています。FSRのネットワーク設定はすべて自社開発のコントロールパネルから実施することができます。
FSRのネットワークの設定画面を見てみましょう。
この画面は仮想マシンが接続するネットワーク(プライベートセグメント)を作成、確認する画面です。
ネットワークにはファイアウォールやロードバランサも必要になることがあります。これらもFSRにおいてはSDNとして構成されており、設定はすべてコントロールパネルから実施することができます。反映は即座に行われるため、設定の確認や、設定を誤った場合の差し戻しも即座に行うことができます。
移行のお供、L2延伸
お客様から「L2延伸を行いたい」というご要望をよくいただきます。
L2延伸とは、お客様のオンプレミスのネットワークと、クラウドのネットワークをあたかも同一のL2ネットワークに接続したように見せることで、以下のメリットを享受できます。
- クラウドへの移行にあたりIPアドレスの変更を必要としない
- ネットワークの大規模な修正をする必要が無くなる
- 移行中でもL2での疎通性を保つことができる
「クラウドへ移行したいけれども、ネットワークを考えねばならない……」とお困りのお客様にマッチするソリューションです。特に、vSphere環境を以前からオンプレミスで利用されていたお客様にとって、弊社のクラウドへ移行するにあたり縁の下の力持ち的なソリューションです。
以前より自社開発のルータ、SEIL/X1、SEIL/x86を用いたソリューションを提供しておりましたが、IIJ GIOインフラストラクチャP2 Gen.2のサービスインと同時に、新たにサービスとして提供をはじめました。
それが、「DCコネクタ:L2」です。
FSRと「DCコネクタ:L2」と私
DCコネクタ:L2の技術的な部分は私が担当しました。非常に苦しみましたが、非常によい出来と自負しています。
前述のとおり、FSRはNSX-Tを用いて仮想化ネットワーク(セグメント)を提供しておりますが、仮想化されたネットワークを用いたFSRのセグメントはVLANと直接接続することができません。ここで出てくるコンポーネントが、「DCコネクタ:L2」です。お客様のVLAN(物理)とFSRの仮想化されたネットワーク(仮想)をつなぐブリッジを提供しています。お客様のVLANの環境を、弊社の仮想化されたクラウドに持ち込むにはピッタリのサービスです。(図の緑の網掛け部分が相当します)
実態はNSX-Tの機能の一つである、Edge ブリッジという機能を用いて実装しています。また、VLANの収容にはこれもまたNSX-Tの機能の一つである、ベアメタル Edgeと呼ばれる専有サーバを用いています。このおかげでお客様の大規模なネットワークをFSRに移行することも可能になります。
ベアメタル Edge。これは物理のネットワークの世界から仮想のネットワークに接続する入り口となる重要なコンポーネントです。オンプレミスによる物理のネットワークはまだまだ残っていますが、大規模なネットワークを作ることは非常に大変です。マルチテナントを考慮するとなおさらです。その課題をクラウドの仮想化されたネットワークで解決したい、が、一部どうしても物理で残したい部分はあろうかと思います。物理のネットワークと、仮想のネットワークをあたかも同じネットワークとして行き来することができる、まさに夢のようなコンポーネントがDCコネクタ:L2なのです。
技術的な面もお話しましょう。実態はNSX-TのL2ブリッジという機能を利用しています。ブリッジというとあまり一般的に利用されていないイメージがあるかもしれませんが、仮想ネットワーク(プライベートネットワーク)と物理ネットワーク(VLAN)を橋渡すということができる機能です。これもAPIが提供されており、APIの組み合わせで自由に物理ネットワークと仮想ネットワークをつなぐことができます。ソフトウェアで違う世界に接続することができる、大変興味深い機能です。
L2ブリッジを利用するためには、仮想化ネットワークの機能や仕組み、物理のネットワークの仕組みの両方を知らないことには、実現することができない世界です。物理の世界におけるL2と仮想の世界におけるL2を同時に考えることは混乱する面もありますが、考えれば考えるほど楽しい世界です。
ソフトウェアを使って物理と仮想の世界をつなぐ。こういった夢があるからこそ、ネットワークはやめられません。
DCコネクタ:L2が私に与えた仕事観
このコンポーネントの設計・構築にはたくさんの方々とのやりとりがありました。コンセプトは「物理と仮想のネットワークの橋渡し。」
以前からL2延伸のサービスを提供していたため知見はありましたが、NSX-Tとしての実装、かつサービスとして実装することに正直なところ不安を感じていました。
もともと私はサービスを利用してシステムを構築する立場であり、サービスを造るという立場は初心者。利用する機能はNSX-TのEdge ブリッジ機能だけと思い実装をしていたのですが、サービスとして出すからには、
- 簡単に利用できること
- 安定したサービスであること
- 問題が発生した場合に適切な対応が行えるようにすること
等を考える必要があります。これらを考えたり、実装を進めていたなかで「他人と協力して物事を進めること」を学びました。
- NSX-Tを完全完璧に知っているわけではないため、より知識のあるメンバーに協力を求めること
- サービスを提供する構成として適切であるかどうか、メンバーで意見を募ること
- 何かしらの問題がDCコネクタ:L2に発生した場合、どのような体制を組むかをあらかじめ決めること
- 考えることが手一杯になったとき、どう周りを頼るべきか?
など、特にサービスとして実装することにかぎらないことではあるのですが、あらためて「仕事は一人で行うものではない」ことを実感しました。
また、「ネットワークはソフトウェアでこうやって構築するのか!」という新しい視点を見ることができました。サービスを使う立場だったころは「繋がって当たり前だろ」という感覚を持っていたのですが、サービスを構築する立場になると、ネットワーク設定の変更の難しさ、「サービス」としての設計の難しさを痛感しました。
今後に向けて
ネットワーク仮想化は、仮想マシンの一般化と同様に、当然の世界になっています。そのソリューションの一つであるVMware NSX-Tもそれに伴い機能が拡張するでしょう。
そして我々のIIJ GIOインフラストラクチャP2 Gen.2も、ネットワークにかぎらず、お客様のご要望に応じて様々な拡張を進めていく予定です。
現在は超強力なメンバーが互いに協力しあい機能拡張・運用・保守を行っておりますが、課題も当然にあります。
さまざまな分野に精通しているチームメンバーがスクラムを組んで課題に取り組んでおりますが、そういった貴重な味方を探しています。
仮想化に興味がある方、我々と一緒にスクラムを組んで一緒に働きませんか。
Twitterフォロー&条件付きツイートで、「IoT米」と「バリーくんストラップ」と「バリーくんシール」のセットを抽選でプレゼント!
応募期間は2022/12/01~2022/12/31まで。詳細はこちらをご覧ください。
今すぐツイートするならこちら→ フォローもお忘れなく!