こんにちは。クラウドアーキテクチャグループの小川と申します。前回は、OSI参照モデルについて話をしました。
今回は、ぐるなびのネットワークの裏側、これからの展望についてお伝えしたいと思います。インフラに携わるエンジニアの皆さんへ参考になれば幸いです。
ぐるなびにおけるこれまでの遍歴
ぐるなびでは、時代とともにインフラが変化していきました。ぐるなびのインフラがどのような課題を抱え、改善や進化を遂げたかを説明していきます。
~2010 カオスの時代
2000年代前半のぐるなびが急成長した頃から利用していた、データセンターに設置されていたインフラです。少ない人数で会社の成長に対応してきたこともあり、ラックがフロアを跨いで点々と設置され、ネットワークも分散して構築されているような状況でした。
また、ネットワークを作った当初は
- VLANが使えるL2スイッチ、L3スイッチやファイアウォールなどが非常に高価
- ラックやサーバの急な増設を繰り返していた
上記2点が要因で、カオスなネットワークインフラとなっていました。データセンター近くの家電量販店で購入したノンインテリジェントのスイッチを各ラックに設置し、同じ店で買った様々な色のケーブルがラック間を縦横無尽に張り巡らされていたためです。場当たり的に配線していたため保守性は皆無。さらに、シングルポイントが多くあり、耐障害性の問題も抱えていました。
サーバが増加したことにより、それまで利用していたデータセンターの限界を迎えたため、2010年のお正月に新しいデータセンターへ移転することに。それに合わせてネットワークインフラを1から作り直して移行することになりました。
2010~2012 物理サーバの時代
このときのネットワークインフラは、以下のコンセプトを持ち、長く使えるネットワークを目標に設計して構築をおこないました。
末端のサーバ、ストレージまで冗長構成にしてシングルポイントをなくす
Core Network部分を10Gbps化して帯域に余裕を持たせる
Internetの境界と内部のAPIやDBなどInternetに直接接続させない機器を設置するサブネットの境界にファイアウォールを置いて通信制御できるようにする
ファイアウォール、ロードバランサーを含む全てのネットワーク機器をタグVLAN(※1)で接続して、ネットワークインフラの変更に柔軟に対応できるようにする
ケーブルの色やタグの付け方、ホスト名の命名規則など最低限のルールを定義しドキュメント化しておく。たとえばサーバの主系ポートは青、待機系ポートは黄色、マネージメントポートは赤のケーブルをそれぞれ使用するなど
これらのコンセプトは2017年現在でも生かされています。
(※1)タグVLAN……イーサネットフレームにVLANの情報(VLANタグ)を付与するスイッチの機能。メーカーによってはトランクポートとも呼ばれる
2010年当時、10Gbpsに対応できる機器のポート数は少なかったので、外部用ファイアウォール、外部用コアスイッチ、ロードバランサー、Webサーバ用コアスイッチ、内部用ファイアウォール、内部用コアスイッチを直列に設置。それぞれのコアスイッチからToR(Top of Rack)スイッチへ接続し、たくさんの物理サーバを接続していました。また、それぞれの機器は物理的なサイズが非常に大きく、ネットワーク機器専用のラックをたくさん必要としていました。
物理サーバで順調にサーバ台数が増えている間はラックがきれいに埋まっていましたが、2012年頃からはじまったサーバの仮想化により状況が変化します。
2013~2015 仮想化の時代
サーバ仮想化が進むと、それまで埋まっていたラックに徐々に空きが出はじめ、1本のラックに数台のサーバしか入っていない歯抜けのラックができてしまいました。外部用、Web用、内部用それぞれのコアスイッチからToRスイッチに接続する構成で、用途毎に専用のラックがあったためです。
この状況を受けて専用のコアスイッチを集約して、全てのラックに対して、全てのVLANを届けられる構成に変更。同時期に、複数のシャーシ型のコアスイッチにまたがっていたL3スイッチの機能をVRF(Virtual Routing and Forwarding)を利用して1U(ユニット)のボックス型スイッチに集約する構成にしました。これにより、外部内部問わず共通の仮想化基盤を利用できるようになり、サーバの仮想化が一気に進みました。
仮想化によりサーバがソフトウェア上で稼働するため、物理サーバの移動が容易に。これにより、歯抜けのラックを解消し、空いたラックを本番環境とは切り離された検証環境用に転用したり、データセンターへ返却できるようにするなど、ラックを有効に活用できるようになりました。
データセンターを利用したインフラでは、ラックの月額費用とサーバやネットワーク機器の保守費用はコスト面で大きなウェイトを占めているため、これらを削減すると大幅なコスト削減に繋がります。
2015~現在 集約化NWの時代
2010年におこなったデータセンター移転から5年が経過した2014年の年末。主なネットワーク機器のリース期間が満了し、機器によってはメーカーの保守対応期限を迎えるものがあったため、コアネットワークのリニューアルを計画しました。 新しいネットワークは以下のコンセプトで設計構築しました。
機器を集約してオペレーションを減らす
機器の数と高さ(厚さ)を減らしてネットワーク機器のラックを減らす
仮想化基盤まで10Gbpsネットワークを伸ばす
このころには、ファイアウォール機能を包含したロードバランサーが市場に出はじめていました。検証したところ問題なく使えそうなことが分かったので、思い切って集約することに。これにより、ファイアウォールとロードバランサーの操作を一括でおこなえるようになり、運用のオペレーションを減らすことができました。 また、ファイアウォールの集約と合わせ、10U以上あるシャーシ型スイッチを1Uのボックス型スイッチに変更しました。仮想基盤のToRスイッチも10GBASE-T対応スイッチに替えて、2〜3ラックで共有し、ToRスイッチを削減。見た目にもシンプルなネットワーク構成になりました。 ネットワーク機器のダウンサイジングで空いたラックを使い、本番環境から物理的にも切り離された開発環境の提供が可能に。インフラ担当だけではなく、開発部門全体でメリットを享受できるネットワークインフラができました。
これからの展望
弊社のようにコンテンツを配信する事業会社では、ITインフラ自体が直接お金を稼ぐわけではありません。しかしITインフラが事業の足かせになってしまってはいけないと考えています。
現在では仮想化やクラウド普及に伴い、インフラの抽象化が急激に進んでいます。インフラの抽象化による理想的な姿とは、インフラを利用するすべての関係者が電気や水道のように、ITインフラの存在を意識せずに本来の業務に集中できるようにすることだと考えています。
その観点から、以下を検討しています。
プライベートクラウドとしてIaaSやPaaSの提供
ネットワークインフラを抽象化するオーバーレイネットワークの導入
また、主要なパブリッククラウドではAIやIoTなどのSaaSが提供され、物凄い勢いで発展しています。それらをデータセンターのネットワークと高速かつ安全に接続して、ぐるなびのサービスと連携できるようなネットワークインフラを検討しています。
これまではネットワークインフラの運用に関わるコストやオペレーションの削減を中心とした施策が多かったのですが、これからは会社の事業に直接貢献できるネットワークインフラに成長させていきたいと考えています。