taken by MorBCN
IBMがテレビCMするし、ニュースにも出てくるし、そろそろクラウドの定義がクラウド化してきているので、オレオレ定義をブログに書いてみることにします。他の人も色々書いてみるといいよー。トラックバック歓迎。
クラウドは賃貸住宅
僕のクラウド的な考えを一言で言うとこれです。Python作者で、現在はGoogleでGAEの開発に携わっているというGuidoがブログに書いていた言葉ですが、これが端的にクラウドの考え方を表していていいのではないかな、と思っています。もちろん、これは単なる考え方であって、これをインプリメントするための各種アイディアもセットかな、と。
周辺技術
サーバを賃貸にするためには、それを支える技術が必要になります。分散のKVSなんかは、マシン数を自由に変更した場合に、その分レスポンスを向上させたり、データの信頼性を向上(マシンが壊れたときの損失の低減)することができます。Amazon EC2やGoogle App Engineのような仮想のプラットフォーム/ハードウェアは、負荷に応じてフロントエンドの数を変えることで、急激なアクセス数増加にも耐えられるようになります。近年だと、映画(アバター)の予約とか、イベントのサイト(箱根駅伝?)で、「見られないよ−」という悲鳴がでたりしますが、そういうのを防ぐことができますよね。後は、大量のデータ処理のMap Reduceなんかも、マシンの数に応じて柔軟に処理速度を変更できるので、賃貸のためのベース技術になります。
RDBのスケール話しもあるみたいだけど、技術的なところを押さえていないので書いてません。誰か教えてください。Oracleも1024台までスケールするらしいです。お財布が一瞬でぶっ飛びそうなのでコワイですけど。
メリット
賃貸にすれば、最初に大きな先行投資をしなくても、サービスを開始できます。ユーザ数に応じてサービスの規模を拡大できるので、スタートアップを迅速に行えます。予測するという作業コストも軽くできます。
また、マシンの台数が多くなれば、ムーアの法則の恩恵を受けやすくなります。数台で4年償却とかなってしまうと、2年でCPUの集積度が倍になって、性能が上がって消費電力も下がってストレージも大きくなって・・・というメリットを受けにくくなります。マシンを集約して、頻繁に最新のハードウェアを導入して古いハードウェアと入れ替えていくようにすればバッチリです。
まとめ
ベース技術、コア、メリットが結構ぐちゃぐちゃで、あげくの果てには「ネット使っていればクラウド」なんてことまで言われているので、僕なりに整理した次第です。これだと、プライベートクラウドなんかの説明はしきれないので、どなたか、みんな各自ブログで意見を書いてもらえたら、おいしく読ませて頂きたいと思います。
KVSとかMapReduceとか、いろいろ、それぞれ絵でも描こうと思ったけど、疲れたので各自ぐぐってください。