DMM.comのネットワーク


こんにちは。あきみちと申します。ゲストブロガーとしてツチノコブログで連載することになりました。連載の内容は、DMM.comの裏側で使われている技術などを解説するものですが、視点としては多少ネットワーク寄りになる予定です。

第一回は、DMM.comが運営されている環境の概観を紹介しつつ、今後掘り下げて行く予定にしている項目をいくつか示します。

DMM.comの規模

bps(bits per second)は、ネットワークを語るときに非常に良く利用される指標です。その名の通り、1秒間に何ビットが転送されるかを示しています。一般的なOSでは、8ビットを1バイトとして扱っているので、たとえば、800Mbpsでの通信であれば、100MBのファイルを1秒で転送できるぐらいだと言えます。

DMM.comが扱っているネットワークトラフィックは、ピーク時で100Gbpsを超えます。100Gbpsというのは、10GBのファイルを1.25秒間で送信するぐらいの規模ですが、それが毎秒送信されているのです。凄い量のパケットがDMM.comからインターネットに向けて毎秒配信されています。

このトラフィックは、「艦隊これくしょん」などのゲーム(2014年7月現在246タイトル)、コンテンツ配信、通信販売、オンラインレンタル、などを提供するためのものです。以下の図のように、DMM.comの会員数は増え続けていることもあり、インターネットに向けて配信しているトラフィックも年々上昇しています。2014年1月時点で、会員数は900万を超え、月間PVは16億にもなります。

100Gbpsものトラフィックをどのように捌くの?

現在、市場で購入可能な商用ネットワークインターフェースで最も広帯域なものは100Gbpsの通信が可能な100ギガイーサネットです。100ギガイーサネットは、数年前に標準化され、最近になってやっと商品が揃いつつありますが、それを使ったとしてもDMM.comの全てのトラフィックを捌くことはできません。さらに、一ヶ所で全てを配信するようなネットワーク設計にしてしまうと、何か問題が発生したときに全てがストップしてしまうので、複数の回線を使ってトラフィックが流れるようにしてあります。

AS間接続
図:AS間接続

DMM.comとインターネットを繋ぐ回線は、合計で180Gbpsの帯域があります。この値は年々増えていますが、まだまだ増えそうです。

この他、CDN(Content Delivery Network)事業者と呼ばれる、インターネットデータ配信代行を行う事業者に依頼してのデータ配信も行っています。

物理的にどこに置くの?

DMM.comが配信する100Gbpsを超えるトラフィックは、物理的に1ヶ所から配信されているわけではありません。

日本国内にある4ヶ所のデータセンターから配信されています。4つのうちの3つは東京にあり、残るひとつが九州にあります。それぞれ目的に応じてデータセンターが使い分けられています。

4つのデータセンター
図:4ヶ所のデータセンター

個人で小規模なWebサイトを運営する場合、ホスティング事業者などからサーバを借りますが、DMM.comの場合はデータセンター事業者から「場所」を借ります。このような場所借りは「コロケーション」と呼ばれています。コロケーションサービスによって提供されている場所に大量のサーバを持ち込み稼働させるという手法は、大規模なWebサービスを運用するうえで良く行われる手法です。

拠点間の通信ってどうやってるの?

DMM.comは、物理的に異なる4ヶ所のデータセンターで運用されていますが、それぞれのデータセンターを何らかの形で結ぶ必要があります。提供しているサービスが大きくなってくると、一ヶ所では運用し切れなくなり、一ヶ所で運用し切れなくなると拠点間の通信をどのように行うのかを考える必要がでてくるのです。

DMM.comは、東京都内にあるデータセンター間を結ぶために、「キャリア」と呼ばれる大規模通信事業者から光ファイバを借りています。こういった長距離光ファイバは、光が通っていない状態であることから「ダークファイバ」と呼ばれています。

拠点間を結ぶ方法としては、ダークファイバ、L2伝送、VPNなど、いくつかの方法がありますが、各事業者がおかれている状況に応じて必要なサービスが選択されたうえで運用されています。

「裏側」のトラフィック?

ネットワークトラフィックには「表側」と「裏側」があります。表側は、インターネットに対してサービスを提供する部分ですが、これが先ほど書いた100Gbps超のトラフィックです。

Webサービスの規模が大きくなってくると、1台のサーバだけで全てを完結するのが難しくなってきます。たとえば、DMM.comでは、データベース、ログイン認証、課金のための仕組み、データストレージなどが、それぞれ独立した別々のサーバで稼働しています。これらがDMM.com内部ネットワークでの「裏側」トラフィックを発生させます。

Webサービスの規模が大きくなって行くと、裏側のトラフィックをどのように制御するのかに関しても様々な工夫が必要になります。新しい機器が登場しがちなジャンルでもあるので、数年おきに運用トレンドが変わっていく部分でもあります。そういった「楽しさ」があるのも「裏側」の特徴かも知れません。

膨大な台数をどうやって管理するの?

DMM.comは、2014年8月現在、あわせて約4500台の物理サーバと仮想サーバをデータセンター内で運用しています。さらにそれに加えて外部のパブリッククラウドサーバでの運用も行なっています。

このような台数のサーバを全て手動でひとつひとつ制御するのは、もはや困難です。「複数のサーバを同時に制御するための仕組み」を考えることは、いままさに大きなトレンドであり、様々なものが提案されていますが、DMM.comでは構成管理ツールのansibleを一部で利用したり、Webサーバの操作やデプロイにcapistranoを利用しています。大量のWebサーバの管理は、capistrano等の自動化ツールがないと不可能です。

これらの他に、どのラックにどのような機器がマウントされているのかなどをRackTablesで管理しています(参考 racktablesを使っています)。

膨大なデータをどうやって記憶しておくの?

Webサービスが巨大になっていくにつれ、膨大な量のデータを扱う必要も出てきます。

個人的に運用している小規模なWebサイトであれば、1台のサーバにデータを記憶させておくことも可能でしょうが、規模が大きくなってくるとデータストレージ部分を独立したサーバ群として管理する必要がでてきます。

データストレージも時代とともにトレンドが変化している部分であると言えます。DMM.comでのデータストレージ方法も、そのうち解説する予定です。

続く

今後、こういった話などをひとつひとつ掘り下げて連載していきたいと考えています。お楽しみに!

カテゴリー: iDC, インフラ全般, コラム パーマリンク

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>