ネットの向こう側にある現実

私たちはインターネットを通じて日々様々なサービスを利用していますが、そのサービスの裏側にはサービスを支えるインフラ環境が必ず存在します。どんなインフラを使っているのか、もしかしたらサービスを提供している人たち自身もクラウドコンピューティングのような仕組みを使っており詳細を把握していないかもしれませんが、最終的には物理的なサーバやネットワークから構成されたインフラがネットの先のどこかに存在しているわけです。
そんな状況において、興味深く読ませて頂いたのが日経BP「"雲"の中にサーバは何台あるか」という記事。

Microsoftの中央研究所「Microsoft Research」の統括責任者であるRichard Rashid氏によれば「世界で出荷されるサーバーの20%を、わずか4社が購入している」そうだ。2009年3月6日に英フィナンシャルタイムズがWebで伝えた。米IDCが2月に発表した2008年通期の世界サーバー出荷台数は810万台なので、「わずか4社」が160万台のサーバーを購入した計算になる。
Rashid氏が挙げる4社とは、Microsoft、米Google、米Yahoo!、米Amazon.comだ。Rashid氏が所属する Microsoft自身も2008年、米国シカゴに「コンテナ型データセンター」を本格的に採用した大型データセンターを建造した。

http://itpro.nikkeibp.co.jp/article/OPINION/20090327/327297/
いずれも世界規模でサービスを提供している会社ですが、そのサービスを支えるインフラもまたすさまじいことが想像されます。そしてこれらのバックエンドインフラの詳細については各社ともその存在を支える屋台骨となるためあまり情報が表に出されることがありません。上述の記事の中でも会計報告などからの推測によってその実体を覗き見ているだけで、実際に数字そのものが公開されているわけではありません。
そんな中、Googleが自社のデータセンターを支えるインフラ環境の一部を公開したCNETの「グーグル、自社設計のサーバを初公開--データセンターに見る効率化へのこだわり」という記事もまたかなり興味深い。

ほとんどの企業は、DellやHewlett-Packard(HP)、IBMSun Microsystemsのような企業からサーバを購入している。しかしGoogleは、何十万台ものサーバを保有していて、そのサーバを稼働させることが自社の中心的な専門技術の一部だと考えており、自社独自のサーバを設計および構築している。Googleのサーバの多くを設計したBen Jai氏は、高度な技術を持つ、非常に熱心な聴衆の目の前で、現在のGoogleサーバを公開した。

http://japan.cnet.com/special/story/0,2000056049,20390984,00.htm
そんなGoogleのインフラとして用いられているサーバシステムの写真が公開されているので一見の価値あり。ごく一般的なSATA HDDが2台、2つのCPUソケット、8つのメモリスロットという構成はハードウェアベンダーが提供しているサーバモデルであればかなりのエントリーモデルレベルの仕様ですが、むき出しの基盤にこれらのリソースが組みこまれ、標準的な運送用コンテナ1つに1160台ものサーバが詰め込まれている状況を想像するとなかなか壮観な状況が思い浮かばれます。

Googleサーバの高さは、3.5インチ(約8.8cm)で、データセンター用語で言えば2Uである。これには、2基のプロセッサと、2基のハードドライブ、そしてGIGABYTEマザーボードに取り付けた8つのメモリスロットがある。Jai氏によると、Googleは、Advanced Micro DevicesAMD)製とIntel製の両方のx86プロセッサを使用しており、そのバッテリ設計をネットワーク装置にも採用しているという。

1台のサーバシステム毎にバッテリが搭載されているという特徴を除けば多くのパソコンと同レベルのパーツからだけで構成されていることがよくわかります。

全体的に見て、Googleの選択は、ソフトウェア、ハードウェアそして設備を含む、幅広いコスト分析によって決定されてきた。
「初期は、(検索)クエリ当たりのコストを重視していた。われわれは重視せざるを得なかった。クエリ当たりの売り上げは非常に小さい」(Hoelzle氏)
Hoelzle氏は、x86プロセッサを搭載したメインストリームサーバが唯一の選択肢だったと付け加えた。「10年前、(検索を)無料の製品として機能させるには、比較的安価なハードウェアで運用するしかなかった。それをメインフレーム上で動かすことはできない。採算が十分に取れないのだ」(Hoelzle氏)

Googlex86アーキテクチャを用いているのは、逆に言えばそれしか選択肢がなかったからともいえますが、ハードウェアとソフトウェア、そしてサービスを組み合わせることによっていずれかの一部に問題が発生したとしてもその障害が全体に波及しないようにするための仕組みをつくるのは各企業ごとの独自技術といえます。
サービスこそがユーザにとって直接的に体感するものではありますが、それを支えるインフラやソフトウェアがどのようなものなのか考えてみると、Googleで検索文字列を入力してすぐに返される検索結果の表示という何気ないサービスの裏側に広がる「凄さ」がよりわかりますよね。