エンジニア長期インターン GREE Studio 2010 4日目
インターン生の井上です。インターンのサブプログラムの講義も4回目、早くも前半が終わろうとしています。早いですね。本日の講義はネットワークに関する内容でした。日頃なかなか知ることのできない分野で、僕もこの周辺の知識はほとんどありませんでしたので、大変有意義な講義となりました。
- 本日の講義内容は以下のものとなっています:
- yo_sudouさんによるネットワーク講義
- データセンター見学
ネットワーク講義〜アプリエンジニアでもネットワークへの理解を〜
ネットワーク講義を担当していただいたのは、プラットフォーム開発部のyo_sudouさんです。
講義の始まりは次の質問から始まりました:
- そもそもInternetとは何でしょう?
- それはnetworkとどう違うのでしょうか?
いきなり質問を投げられて、びっくりしましたが、「世界中とパブリックにつながっているネットワーク!」と答えました。60%位正解だそうです…
- Internetとは?
Internetとはインターネットプロトコルを通じて全世界のネットワークを相互に接続した巨大なコンピュータネットワークとのことです。しかし特定の団体が運営しているのでは無い、自立分散型のネットワークです。強いてあげるならICANN(The Internet Corporation for Assinged Names and Numbers)と IETF(The Internet Engineering Task Force)と呼ばれる組織が運営を行なっているそうです。
管理団体が無く、各種の中継サービスを介することなく様々なネットワークが相互に接続している、それがInternetなのです。都心の地下鉄のように、様々な鉄道会社が各駅で相互接続しているのと似ている、という例はわかりやすかったです。しかしInternetという巨大なネットワークが誰にも管理されること無く、仲介されること無く、言うなれば無秩序の中で拡大していっているという事実には大変驚きました。
- 今もなお拡大を続けるネットワーク
現在でも全世界中に地下や海底ケーブルなどの物理的配線によって莫大なネットワーク網が張り巡らされていますが、今もなお、世界各地でネットワークの増設が進んでいるようです。この話の中でおもしろかったのは、そういったネットワーク網を増設している会社が、以前のAT&Tなどのインターネットサービスプロバイダ(ISP)の大手から、Googleなどのコンテンツプロバイダー(CSP)へと変わっていっていることでした。ほとんどのCSPはISPから使用料を払ってネットワークを利用させてもらっているのですが、自社で莫大なトラフィックを抱えるGoogleなどは、自前でネットワークを増設するコストのほうが、その累積使用料より安くなっているとのことです。これはかつて考えられなかった面白い現象です。
ここで1つ質問が出ました。「海底ケーブルなどの物理的なネットワークは断線などの危険があり、増設コストや期間も莫大にかかるので、代わりに衛星を使った方法は無いのか」というものです。解答は、「もちろんそういった研究開発を進めているところもあるが、そもそも無線通信の速度の問題や、遅延の問題、衛星打ち上げやその維持にかかるコストの大きさを考えるとまだまだ現実的では無い」とのことです。
- Internetの歴史
それではInternetはいつから始まったのでしょうか?僕は1980年代に学術機関をつなぐネットワークを起源とし、発展していったようなイメージを持っていましたが、実は起源はそのはるか昔、1960年代の米国防総省の高等研究計画局(ARPA)が始めた分散型コンピュータネットワークの研究プロジェクトであるARPAnetであるといわれています。そして1980年代に、ARPAnetで培った技術を元に学術機関を結ぶネットワークNSFnetが構築され、これが次第に商用利用されるようになり、mailやwwwの流行がその普及を爆発的に加速させて行ったということです。
日本においては、慶應SFCの村井純先生がSFC・東工大・東大をUUCPというプロトコルを用いて接続したJUnetと呼ばれる学術ネットワークが起源になるそうです。村井先生は「日本のインターネットの父」と呼ばれる偉人だそうです。
- Internetでは誰が得をし、誰が損をする世界なのか
さて、そういったInternetとは何かという話から始まったネットワーク講義ですが、ここでは書けない様な話へと発展していきます。具体的な内容は書けませんが、
- インターネットへの接続を提供するISPの構造について
- ISPの現状について、コンテンツプロバイダーとの関係について
- このInternetの世界では誰が得をし、誰が損をしているのか
特に、このInternetの勝ち組、負け組は誰なのか、これからその構図はどうなっていくのかについての話は非常にエキサイティングな内容でした。
- 会員2000万人を支えるGREEのネットワーク
最後はGREEにおけるネットワークの話です。GREEでは現在日本に多くのサーバーを保持し、高価なネットワーク機器が年中ほとんど止まることなく稼働しています。データセンター間は相互接続され、そのうち1つのデータセンターに障害があった時でも、すぐに他のデータセンターに接続に切り替わるような仕組みが備わっています。かつ、データセンター内でもマスターとスレーブを用意してあるので、障害時やメンテナンス時でもスレーブ側に切り替えることによってサービスを止めること無く対応することができます。
驚いたことにGREEのサービスはメンテナンスはほとんど無停止に近いようです。GREEの内製ゲーム、グリノッペや釣りスタ、ドリランドが多数のユーザーを獲得した理由の1つに、サービス停止の機会損失が皆無であったこともあるのではないかと思いました。
- アプリエンジニアといえどネットワークの事をしっかり理解して欲しい
最後にyo_sudouさんからアプリエンジニアに対する思いを語っていただけました。
「アプリエンジニアといえどネットワークの事をしっかり理解して欲しい。例え広く浅くであっても良いので、バックエンドでどのような処理が行われているかを知っていることで、サービスのボトルネックを素早く発見できるようになる。できていないと僕に怒られます(笑)」
確かに、バックエンドを意識したアプリでないと負荷に耐えきれずにダウンしてしまいますし、僕もその例をたくさんみてきました。そのことによる機会損失・信頼低下は大変致命的です。心に残るお言葉でした。
その後インターン生からたくさんの質問が出て、どれも丁寧に答えていただきました。
- そのネットワーク機器にはいくらかかってるの?
- GREEは自前のデータセンターを持たないの?
- GREEのデータセンターの規模はどれくらい?
など、数々のきわどい質問が飛び出し、かなり盛り上がりました。日頃の大学の講義やベンチャーでのアルバイトでは知ることのできない、大規模サービスを運営するGREEのネットワーク講義、とても貴重な機会でした。yo_sudouさん、どうもありがとうございました。
データセンター見学
ネットワーク講義のあとは都内某所のデータセンターを見学させていただきました。まず入って驚いたのは、セキュリティが想像以上にしっかりしていること、そしてとても寒かったこと(笑)です。さらに奥へ進んで行くと、多数のラックの中に収まったサーバー群には圧倒されました。それらと外部ネットワーク接続を統括管理するとても高価なネットワーク機器も見ることができました。
また、使用する電源が特殊で非常に高圧なことにも驚きました。ネットワーク機器はほぼ100%ハードウェア処理を行っていますので高性能CPUや多数の基板が埋め込まれており、相当の電力を消費するそうです。ネットワーク機器が恐ろしく高価なのにも納得しました。サーバーは安いものをスケールさせるように組んでも良いですが、ネットワークにはお金を節約するあまり、性能の悪い物をいれると悲惨なことになる事があるそうなので気を遣っているそうです。
まとめ
本日の講義はこれで以上です。今までなかなか触れることのできなかったネットワークについて、しかも一般の講義では聞けない濃い話を聞くことができました。さらにはデータセンター見学まで。とても貴重な4日目のインターンシップになりました。