watermint.org

Takayuki Okazaki’s blog

クラウドコンピューティングについて詳しい人から見ると、目新しさに欠けますが、もやもやとしている「クラウドコンピューティング」というキーワードをブレークダウンしていくにはいい資料ですね。

_DSC9655.jpg

先月は集中的にクラウドコンピューティングについて勉強していました。いくつか調査会社のレポートを読んだり、クラウド研究会に出たり、ブログや記事を読みました。クラウドコンピューティングはまさにこれから本番というところですが、あえて「終わるとき」という思考実験をしてみることにしました。なぜあえて終わるときと言うテーマにしているかというと、過去数年、様々な技術によって約束されてきた成果が、未だ実感できず、一方では今クラウドコンピューティングが約束しようとしている内容が異口同音に同じだからです。本当にクラウドコンピューティングは今抱えている問題を解決してくれるのでしょうか。
_DSC9635.jpg
何かが終わるとき、というと何かが限界に達したことによって技術的、経済的、政治的に成り立たなくなった時です。クラウドコンピューティングのように技術的な側面が色濃い場合でも、経済的・政治的な影響力は無視できません。これまでに人類が経験した限界でいうと、環境汚染による限界がすぐ思いつきます。

  • 排気ガスは無限に空気が薄めてくれると思っていたら、やはり空気は有限で汚れて問題を引き起こしました。
  • 排水は無限に海水が薄めてくれるとおもったら、やはり海水は有限で汚れて問題を引き起こしました。

_DSC2355.jpg
いま、クラウドコンピューティングで夢描いている途中では、「コンピューティングパワーは無限に拡大できる」という風潮になっていないでしょうか。ムーアの法則はIntelをはじめ様々な半導体メーカーの努力によって30年以上を経過した今も維持されていますが、多くの研究者が数年以内に限界が来るだろうと予測しています。また、そもそもムーアの法則は、半導体の集積度と価格についての法則であってコンピューティングパワーに関する法則ではありません。仮にムーアの法則が維持されて続けたとしても、コンピューティングパワーが増え続けるとは限りません。
_DSC2352.jpg
最近ではCPUもマルチコア化が進んでおり、計算能力もクロックアップ一辺倒だった頃と比べると比較にならないほどの速度でパワーアップしています。クラウドコンピューティングのテクノロジーは、マルチコア/マルチCPUに親和性の高いアルゴリズムを利用するため、この恩恵を強く受けています。
Amdahl's Law
Source: Amdahl’s Law (Wikipedia)
一方、マルチCPUアーキテクチャにも限界があり、アムダールの法則はその理論的な限界を唱えています。この法則を単純に信じる限り、ムーアの法則の終わりとともに、クラウドコンピューティングは終わりへと近づいていくように思えます。

一方、Amdahl’s Law in the Multicore Era (Google TechTalks)では、コア・アーキテクチャとアルゴリズムを工夫することによってもっとアムダールの法則を超えてもっと効率的な処理が可能だと主張しています。このような研究が進むことで、クラウドコンピューティングの寿命はもっと延びるかもしれません。
_DSC9618.jpg
次に考えるのはデータセンターの建設場所です。土地は有限ですし、発電所を建てても十分に採算がとれたり、環境上問題が発生しにくくする条件を考えると、無尽蔵に拡張できると考えるわけにはいかなさそうです。コンテナ型データセンターや、地中データセンター、海上データセンターなどいろいろなコンセプトが出てきていますが、廃熱効率が良かったり、電源確保が容易だったりするメリットはあっても、やっぱりそれらは有限の資源を元につくりあげられます。このため、いかにGoogleさんといえども、これ以上大きなデータセンターを持つことができなくなる時代が、そう遠くない未来に来そうな気がします。
_DSC9588.jpg
今回は簡単な思考実験だったので、いつ頃にクラウドコンピューティングが終わるかまで考えませんでした。結論としては、いつかは終わるだろうという程度になってしまうんですが、クラウドコンピューティングの謳う将来的なコスト削減予想に対して、少し判断材料のような素材が手に入ったような気がします。もう少し時間ができたら、具体的な数値を使って検討してみたいところです。

cero_tさんのエントリ「[Tech]ストレージはSSDではなくRAMディスクにシフトしていくと思う」で、ちょっと違うかなと思ったのでコメント。
SSDがRAMディスクにシフトするという可能性は、MRAMとかFeRAMのような不揮発性RAMが主流になることを前提としてならアリかもしれませんが、その前提をおかないなら経済的な理由でナシだと思います。
_DSC5670
DRAMはめちゃんこ電気を使います。いまやテラレベルのRAMを積めるハイエンドサーバの電気消費量の1/5〜1/3ぐらいがDRAMによる消費だとどっかでみたことがあります。特に、CPUが高周波数を目指さなくなってきたので相対的にRAMの消費電力がこれから目立つようになるはずです。最近のDRAM(FB-DIMMとか)は巨大なヒートシンクも付いてて冷却側でもエネルギーを使いそうですからね。
_DSC5677
RDBMSの処理速度はトランザクションログのシーケンシャルな書き込みさえ高速化してやれば、データ本体は共有キャッシュによってすでにOracle/DB2らによってかなり高速化されています。最近クラウドとか言われているシステムだと、そのトランザクションログもRAM上で処理してしまうのでスループットは劇的にあがりました。最後のネックが外れたわけですね(そのかわり大事なトランザクションログが揮発的なところに載るというドキドキ感を伴いますが)。これも高速化だけの観点をもって論じれば、RDBMSはRAM上へ、と言えるでしょうけど前述の通り電気代まで考慮して成り立つかどうかはその使う人の財布の状況次第。
_DSC5678
SSDは書き込みは一般に(HDDより)遅くて、読み込みは速い不揮発性メモリですから、WORM(Write Once, Read Many)となるようなトランザクションには向いていて、たとえば時間をかけて作って良いマスターデータのインデックスなんかには最適なストレージと言われています。でも、SSDの技術的な進歩は最近めまぐるしく、HDDよりもIOPS(毎秒あたりのI/O回数)が遙かに高いものが出たり、書き込み速度もファームウエアによる分散書き込みによってかなり高速化しているようです。
この流れからみると、HDDがSSDによってかなり置き換えられるのは間違いないでしょうね。こないだSunの出したStorage 7000シリーズのHybrid Storage Poolなんかは、そのへんのDRAM・SSD・HDDのバランスをハードウエア側でうまく吸収するので、完全移行するまでの段階、あるいは特定の用途ではこのようなハイブリッド型が生き残りそうです。
_DSC5699
ネタもときしださんのRDBMSの時代の終わりが見えてきた」で触れられている、ようにプログラミングのやり方が、変わりそうだ。というところには我々技術者は注目を払っておいた方がよいでしょう。SQLベースのRDBMSが完全になくなる、ということは無いでしょうけれど、かなり多くの利用シーンでGoogle(BigTables)、Amazon(SimpleDB)、Oracle(Oracle Coherence)、Microsoft(SQL Data Services)、楽天(Roma)のようなハッシュコードでアクセスするデータベースが使われていくと思います。大事なのはクラウドではなくて、環境的な変化に伴ったプログラミングパラダイムの変化。
別に大規模クラウドがなくても、CPUはマルチコア化・マルチスレッド化するから小規模なPCサイズのシステムでもクラウドみたいなアーキテクチャがそのうち作れるようになるかもしれない。そうなると、今まで高価だと思っていた処理が高価ではなくなるし、むしろ既存のやり方を守り通した方が高価になってしまう。クラウドみたいなバズワードだけ追ってると(あるいはバズワードの批判だけをしていると)こういうバランス感覚が磨けない。
高価であっても既存のやり方を踏襲するのは、そこに別の価値観(たとえば信頼性)があるわけで、COBOLは死んだとか、SQLはあと10年の寿命という固定観念を持つのは危険だと思う。もちろん自分の業種・業態と比較して、ビジネス上成立しない、っていう話ならどんどんやった方がいい。
_DSC5722
きしださんは組み込み向けRDBMSが真っ先になくなると書いているけど、パフォーマンスの観点だけから論じるのは理論武装が足りてないと思います。組み込みだと、パフォーマンスだけじゃなくて消費電力とかプログラムサイズも大事だから、エンタープライズ用途と比べればバランスの取り方が大きく違う。組み込みには詳しくないから今後どうなるのか僕には見当が付きませんが・・・。
_DSC5764
環境の変化に伴って「RDBMS?ナニソレ?」という世代の技術者はきっと出てくると思います。こうなるかどうかを決める大きな要素は価格だと思っています。RDBMSのほうが、ハッシュDBより高ければ、ハッシュDBを使うだろうし。これは、べつにシステムの規模とか利用企業の規模とかにあんまり関係なくシフトしていくと思っています。最初は小規模な予算の少ないプロジェクトが飛びつくでしょうけれど、金融危機などで大規模な構造改革をしなければならない状況におかれた大企業・大組織も、今まで持っていた価値観よりも価格を重視するようになると思うからです。特に目に付きやすい人件費までもがクラウドによって覆い隠されるならば、経営者にとってクラウドの方が都合が良くなるかもしれませんね。
_DSC5778
クラウドコンピューティングは、手元にパソコン置いておくより、クラウド上においた方が安いならそれを使うでしょう。気にしておくべき点は、クラウドの利用料にはコンピュータとソフトウエアの価格と、土地代や、人件費、冷却、電気代等も含まれていることです。今まで別々に購入していたものが、専業の業者によって一括して提供されるようになります。業者からすれば、一括して調達した方が安く調達しやすいでしょうし、提供される価格もそれに反映されるでしょう。特に土地代が高くついてしまう日本のIT産業と電力会社にはこれからすこしずつ逆風が吹くかもしれません。
_DSC5758
クラウドコンピューティングについて考えたときに、日本特有の問題として、セキュリティとか個人情報保護についての消費者からの抵抗感の程度が、サービスを提供するブランドにとって大事なんじゃないかと思います。現状、様々な報道から知る限り「自分の個人情報がどこにあるかさえ分からない」という状況に嫌悪感を感じる消費者はとても多いはずです。この嫌悪感に対しては、常に真摯に、丁寧に対応するしかないのでしょうけれど、多くの消費者から嫌悪感がなくなるためには、経済・社会全体として正常に動いている空気感が必要そうで、なかなか技術だけで解決される見通しはなさそうですね。だいぶタイトルと論点もずれてきたのでこの辺で。