いま明かされる、グーグル・データセンターの秘密

http://japan.cnet.com/news/media/story/0,2000056023,20081099,00.htm

2005/03/04 18:55 [Martin LaMonica (CNET News.com)]の記事。

<以下、私個人が勝手に解説している内容です。間違っているなら気軽にツッコミしてね。>

ザックリ書くと、Googleのエンジニアリング/運用担当バイスプレジデント、Urs Hoelzleが、Googleのデータセンターがどのように運営されているかについてちょっとだけ話た内容。

まぁ、Googleの考えが、実にシンプルでいい。と言うのも以下の思想から来ている。

「PCはクラッシュする」

です。
これ、間違いないなぁ~と思います。
で、ここからが当然と言えば当然なのですが、Googleの技術者が、そこから導き出して来たのが以下の結果。

「ハードウェアのコストを検討していた同社のエンジニアが、強力なプロセッサを8基以上搭載するようなハイエンドサーバを数台購入するのに比べ、もっと簡単なつくりの「コモディティ」サーバを何十台も購入するほうが、はるかに安上がりなことに気付いた

何か当然と言えば、当然ですが、これってメーカー泣かせの話です。
で、以下の結果になっているから凄い。

「Googleは、比較的低価格のマシンを大量に購入することで、通常なら数千万ドルもかかるようなコンピュータインフラを、わずか数百万ドルで構築してしまった。」

もう、これこそ「経済の規模」の象徴かもしれません。
高価なマシンを数台買って、インフラ組むより、安価なマシンを大量に買ってインフラを組み、且つ、並列稼動させることで、同等かそれ以上の効果を得ることが出来る。
この事を実践してしまうのが、さすが米国と言いますか……日本企業、特に、大手ではありえないことです。
尚且つ、Googleは、この安価なマシンを購入する訳でもなく、現在は、内製しているとも言います。
ここまで来るとGoogleの「経済の規模」の恐ろしさをジワジワと感じるのですが、Googleの評価が高いのは、以下の事からだと記事にはあります。

「同社設立のきっかけになった実際の検索アルゴリズムよりも、同社が持つシステム運営上の知識のほうを高く評価する人は多い。」

上記、内容を読んでいるとそのチャレンジ精神といいますか、その優れた洞察から生まれたインフラ構築がいかに大胆であったのか、解る気がします。
ただ、その安価なサーバ群を運用するとなると当然、その仕組みづくりは、只ならぬ知恵を必要としており、Googleの採用に関しては相当な物を要求されるようです。

「コンピュータサイエンス分野で最も優秀な人材を集めるために、非常に厳しい採用条件を課すことで知られる…」

とあるように、運用上のシステム、例えば「社内で利用するコンピュータのインストール用に数多くのソフトウェアツールを開発」などで、それに見合う人材を採用するようだ。
安くインフラを作ってはいるが、運用では相当な工夫を凝らしていると見られる。

その一端が、記事にもあり、

「大量のデータを処理し、クエリに対して素早く応答するシステムも考案している。このシステムでは、ロボットがウェブをまわって集めたデータを数百万個の小片--Google用語でいえば「破片」--に分割して保存しており、また各々のデータは障害時に備えて複製が用意されている。」

「当然ながら、同社はウェブ上に現れた言葉のインデックスをつくり、それを多数の巨大ファイルとして保存している。しかし、Googleはドキュメントサーバも用意しており、ここには同社のロボットがネットを歩きまわって集めたウェブページの複製が保存されている。」



「MapReduceと呼ばれるGoogleのプログラミングツールは、障害発生時のプログラムの復旧を自動化し、同社のコスト削減に重要な役割を果たしている。」

また、

「Googleは数百万の処理を管理する「バッチ処理」のスケジューリング用ソフトも開発した。Global Work Queueと呼ばれるこのソフトウェアは、工事監督のような役割を担っており、計算処理を多数の小さなタスクに分割した上で、それを複数のマシンに割り当てるというものだ。」

など、読んでいて気持ちが悪くなるくらい、創意工夫がされている。
要するに、単純にバッチ処理を起動させることで、自動化設定をするだけではなく、様々な細かな仕組みを組み込んで、数万台のサーバを巧みに操り、制御しつつ、常に、複製を作っておき、その管理もどこかでする。。

もう、どのくらいバッチ処理が蠢いているんだとい思ってしまう訳です。
それも、整合性を常に考え、埋め合わせしながらジョブ管理されているとなると、Googleの中の人は、天才か何かなのかと本気で思ってしまう。

とは言え、

「Hoelzleは、障害に備えてこれだけの冗長機能が用意されていても、同社のシステムでは対応できない問題があると打ち明けた。」

と言うことで、Hoelzle氏は、「6台の消防車がGoogleのデータセンターに駆けつけたときの写真を披露した。」との事で、それなりにリスクはあるようです。

その時の話では、動かなくなったマシンは、1台とかではないと言うので、どのくらいのマシンが「あぼーん」したかはわからない。
多分、相当数の数に上ったのだろう(笑)
(笑い事では、なかったのかもしれないが、それだけ「規模の経済」の被害も大きいと言うことだろう)

私は、このGoogleの「規模の経済」が、必ずしも日本企業に受け入れられるとは思ってはいないが、特に危惧するのは、Googleがもしそのチャレンジ精神で日本に同じ手法でDC建設に来られた時に、対する大手ITベンダーもそうだが、開発会社も太刀打ちが出来るのだろうかと思う。
地代が高いから数百万台ものマシンを置く場所などないと言い切れるだろうか?
なんでもGoogleのDCもMSの提案しているコンテナ式のDCであるともある記事には、記載があった。

と言うことは、Googleは、別に建物を必要としないかもしれない。もしかしたら、土地も必要ではないかもしれないのだ(ここら辺は、私の妄想だが…)。例えば、海上でもやろうと思えば可能なわけだ。

実際、今、噂ではGoogleは、既にDCを日本に置いているとも言う。
まだ、本格的ではないとしても、十分にその可能性はある。
もし、Googleが本格的にDCを日本に配置することを発表したときのインパクトは、かなり大きい可能性が高い。

なぜなら、日本クラウド業者=日本のDCの日本企業に対して有していた地理的優位性が、根底から覆されてしまうからだ。
その前に、日本ベンダーのなしうる事は何なのか?サービス提供とは何なのか?を今一度、真剣に考える時だと思う。
それは、開発者である私達、SE全てがしっかりと見据えて考え、Googleをも巻き込む知恵を考え出す必要がある。