taken by Jo Peattie under CC BY-NC-SA
以前、「クラウドの定義がクラウド化」しているので・・・というブログエントリーを書きました。その後、いろんな人と話をしているのですが、「クラウドの定義がわからん」「これ本当にクラウド?」みたいな話も色々出るので、僕なりに「これはクラウドと名乗っているかもしれないけど、クラウドじゃないと思う」というのを形式知化してみます。
もちろん、僕の考えがすべてというわけではないし、まだ「クラウドとは何か?」というのを一本化しようという流れもないと思うので、みなさんも僕の意見が違うと思ったら、ご自分で「これが私の考えるクラウド」をブログか何かで表明されるといいと思います。
「弊社のクラウドサービスでは、サーバを1台から提供します」
マシンを1台から提供してくれるらしいです。OSも選べるらしいです。初期設定には2週間の期間と、初期設定費用がかかるらしいです。そんでもって、1週間ぐらいで変更に応じてもらえるそうな。
いや、それは単なるホスティングサービスでは?
イベント運営サイトで、予想以上にユーザ数が急激に増えて、予定していた台数では裁ききれない!という状況や、とてつもないバッチ作業が発生したときに、数百台並列させてぱっと1晩で終了させますよ、というのに対処できるのがクラウドのメリットだとすると、そのサービスではクラウドのメリットは享受できないです。きっと。
「弊社のクラウドサービスでは、どこからでもデータにアクセスできます」
何でも、データはサーバ上にあるから、家からでも、会社からでも、iPhoneからでも、Androidからでもアクセスできるそうですよ。便利ですね。サーバはサービス提供者のデータセンターに置くので、ユーザが各自準備しなくてもいいそうですよ。
いや、それって単なるウェブサービス
いにしえの、PerlのCGIで書かれたWikiWikiWebだって、データはサーバ上ですよ。ケータイからでもアクセスできます。でもね、それって別に特別なことじゃないと思います。クラウドになって、何か新しいメリットがあるのか?というと、まったく今まで通りです、という説明しかできないと思います。データセンターの運用代行も、別に前からあった話ですしね。
「弊社のクラウドサービスでは、様々なウェブサービスの連携ができます」
ウェブ上にある、いろんなサービスを組み合わせて、個人個人にあったサービスが提供されるそうです。なんだか未来的ですよね!いろんなページにばらばらにあった情報を一度に見られるんですから。
それって単なるマッシュアップでは?
サービスごとにシステム化して、APIを提供して、軽量のフロントエンドで組み合わせる。たとえば、こくちーずでは、イベントの開催場所の地図はGoogleマップです。地図情報の更新はopakenさんががんばらなくても、新しく開通した高速道路情報もばっちり反映されます。イベント関連のTwitter情報も表示できるようになりました。でも、これはAPIベースでサービスを組み合わせるという、Web2.0の考え方です。クラウドではないです。
クラウドのメリットは目には見えない
publickeyブログ経由で知った、MicrosoftのAzure関連のブログエントリーによると、クラウドのメリットは次の4点とのことです。
- On/off batch job computing
- quick start-up (with no need or money to build out a private data center
- unpredictable bursting
- predictable bursting
バッチのジョブ処理を大規模に行ったり止めたり。もしくは、データセンターを構築しないでも、すばやくサービスインする。予想外にユーザ数が増えても大丈夫。予想できるユーザ数の増加(その後の縮小)に関しても対処できる。そんなところですね。ちなみに、このメリットは、サービス提供者側の視点ですので、サービス利用者(サービスにお金を払う人)視点でメリットを整理すると、次の2点に集約されると思います。
- いつでも落ちないサービス
- いつでも速度が安定しているサービス
たとえ、サッカーのワールドカップでゴールを決めたり、新年あけましておめでとうの瞬間だったり、テレビで天空の城ラピュタが放送されて、例のシーンが放送されたとしても、ユーザ数の増加に応じてフロントエンドの数を増やして、許容量以上のアクセスが来ても落ちないようにしたり、それ以上にサービスの性能を維持したり・・・あるいは、大量のデータ処理が必要になっても、それに応じたマシンを利用すれば、データ量に限らず必ず定数時間で処理が終わりますよね?(作業が完全並列の場合)。そのためのインフラ技術の総称がクラウドなのかなぁ、というのが僕の理解です。プロビジョニングと分散DBの2つ(後者はサービスによってオプション)が鍵である、と思っています。
また、数台のマシンが落ちたり、ハードウェアが故障しても、サービスを止めずに、マシンを入れ替えたり・・・というのができるのも、特徴だと思います。ただ、どちらにしても、ユーザから見ると「落ちない、遅くならない」というだけの話ですよね?
なので、クラウドのメリットをユーザ視点で見ると、「ムーブメントは日本製です」という時計と同じようなものかと思います。サービスそのものの内容を規定するものではないと思っています。
プライベートクラウドはクラウドか?
社員数が5桁いるような会社があったとして、勤怠管理システム(朝、晩のみピーク)、社員食堂管理システム(お昼だけピーク)のようなサービスを仮想化し、付加に応じて処理するマシン数を変化させて、処理のスピードが落ちないようにする、というのを実現すれば、それはクラウドだと思います。社員が対象であれば、需要はある程度予想できるでしょう。まぁ、それ以上にプライベートクラウドを組んでメリットが出るには、相当大きな組織じゃないと見返りは少ないかもしれませんが・・・
ということで、
僕なりに考えをまとめてみました。最初にも書きましたが、現時点では、人によって色々な回答があると思います。これだけが正解ではないと思うので、色々他の方も表明してもらえるとうれしいです。僕としては、答えが欲しいのではなく、こういう議論がしてみたいな、というだけですので。