図1 クラウド・コンピューティングとは雲の形をした召使に頼めば何でも処理してくれるイメージである
図1 クラウド・コンピューティングとは雲の形をした召使に頼めば何でも処理してくれるイメージである
[画像のクリックで拡大表示]
図2 最新技術を活用しながら実態を意識させないように進化することで実現する(イラスト:なかがわ みさこ)
図2 最新技術を活用しながら実態を意識させないように進化することで実現する(イラスト:なかがわ みさこ)
[画像のクリックで拡大表示]

 クラウド・コンピューティングとは,インターネットの先にあるサーバーに処理をしてもらうシステム形態を指す言葉である。ユーザーが何らかの作業を行うときに,自分の目の前にあるパソコンや会社のネットワーク上にあるサーバーではなく,インターネット上のサーバーを利用して処理してもらう。顧客管理のような企業の業務アプリケーションから,Gmailに代表されるメール・サービスやファイルを保存するストレージ・サービスのような個人向けのものまで,クラウド・コンピューティングと呼ばれるサービスは多数登場してきている。最近では,ワープロや表計算といった,パソコン上で使うのが当たり前だったオフィス・アプリケーションも出てきている。

 クラウド(cloud)とは雲を意味する英単語である。インターネットを図で表すときに,雲のイメージを使うことがよくある。インターネット上で通信パケットをやりとりする際には,いくつかのサーバーやネットワーク機器の間をバケツ・リレー形式で経由しながら相手に届く。その際に,パケットがどのような経路を通っているかを意識したり制御したりすることは難しいため,中が見えない“雲”で表現する。クラウド・コンピューティングでは,ユーザーが実行したい処理を,このインターネットに任せるイメージになる。言ってみれば,雲の形をした召使に頼めば,いろいろな処理をしてくれるようなものである(図1)。

 クラウド・コンピューティングは一般に,専用のクライアント・ソフトは使わずWebブラウザ上から操作する。そのため,ユーザーが操作する端末側で必要となるのはインターネットと通信して結果を表示する機能だけである。パソコンやノートパソコンはもちろん,PDA(携帯情報端末)や携帯電話からでも同じように利用できる。

 ネットワークの先にあるサーバーに処理させるという考え方は目新しいものではない。例えば,ネットワーク・コンピューティングやWebサービス,SaaS(software as a service),ASP(アプリケーション・サービス・プロバイダ),SOA(サービス指向アーキテクチャ)など,ここ数年の間に流行したキーワードのほとんどは,ネットワーク上のサーバーに処理を分担させることを前提としたものといってよいだろう。

 クラウド・コンピューティングは,これらの発展型といえるものである。どうなればクラウド・コンピューティングという明確な定義が特にあるわけではない。だが,「Web」や「ソフトウエア」といったコンピュータ用語ではなく「雲」という一般的な単語を使っているように,システムをどうやって実現しているかよりも,どのようなサービスが利用できるのかにより重点を置いたものになってきている。サービスを利用するユーザーは,その処理を実行するためのサーバーやソフトの種類などを考慮する必要はない。最近ではインターネットのどこでどのように実行されているのかさえも意識せずに,純粋にインターネット上で自分の使いたいサービスを利用できるようになっている。

 そのように進化してきた背景には,技術の進歩がある。インターネットが高速化したのはもちろんだが,それ以外に仮想化やグリッド・コンピューティングなどの技術が実用化されてきたことで,クラウド・コンピューティングが可能になってきた。先ほどの例で取り上げた雲の召使の中身を見てみると,実はいろいろな技術が組み合わさって動いているようなものである(図2)。

 例えば,仮想化は1台のコンピュータやネットワーク機器を,あたかも複数のコンピュータやネットワーク機器が存在しているように見せる技術である。グリッド・コンピューティングは,多数のコンピュータを連携させて,あたかも1台の大きなコンピュータのように見せる技術である。いずれもハードウエアやソフトウエアについて,実際に使う物理的な構成と,ユーザーに見せる論理的な構成を分離する。これらの技術を活用することで,実際に処理しているサーバーやソフトの種類,およびそれらの場所などをユーザーから隠しながら,サービスを柔軟に提供できるようになった。クラウド・コンピューティングでは,同じユーザーが同じ処理を実行していたとしても,そのときの状況に応じて全然違うサーバーで処理している可能性もある。