第501回:クラウドコンピューティング とは

大和 哲
1968年生まれ東京都出身。88年8月、Oh!X(日本ソフトバンク)にて「我 ら電脳遊戯民」を執筆。以来、パソコン誌にて初歩のプログラミング、HTML、CGI、インターネットプロトコルなどの解説記事、インターネット関連の Q&A、ゲーム分析記事などを書く。兼業テクニカルライター。ホームページはこちら
(イラスト : 高橋哲史)


 「クラウドコンピューティング」とは、ネットワーク、とくにインターネット越しのアプリケーションプラットフォームやサービスを利用する、コンピュータの利用形態のことを言います。略して“クラウド”と呼ばれることもあります。

 携帯電話、特にスマートフォンでも、最近ではクラウドを利用したいくつものサービスが提供されています。たとえば、iPhoneやAndroidで利用できるサービスとして「Evernote」があります。これは、スマートフォンやパソコンからテキスト、写真、音声、動画などを保管できるアプリケーションです。ユーザーが記録するデータは、スマートフォンやパソコン上、あるいはブラウザで作成しておくと、インターネット上の「Evernote」のサーバーに保管し、別の機器からアクセスしても利用できるというクラウドサービスです。

クラウドコンピューティングとはネット上のサービスを利用する形態のこと。利用者はインターネット(雲)の向こうのサーバーを意識せず、サービスを利用可能だ

必要なときに必要なだけ

 現代のコンピュータの多くは、さまざまな機能やサービスを提供するアプリケーション部分、アプリケーションを実行するための環境部分、そして基本的なコンピュータの能力という構造になっていると、と考えることができます。

 たとえば、あるAndroidスマートフォンのアプリが実行されているケースを見ると、

  • ユーザーが操作するアプリ
  • アプリを動かすためのプラットフォームとしてDalvikVMやSQLite
  • アプリプラットフォームの下にあるAndroidやハードウェア

と見なせます。

 クラウドコンピューティングとされる各種サービスは、これらのいずれかがインターネットの接続先で提供されていて、それを手元の端末で使う、という形になっています。なかでも、すぐに思い浮かぶのは、「インターネット上で、ユーザーが利用する機能やサービスが提供されている」タイプでしょう。

 最初に紹介した「Evernote」は、インターネット上でメモや映像・音声の保管というようなサービスを提供しています。またスマートフォンなどで利用できる「Gmail」といったWebメールサービスも、メール機能を提供するクラウドサービスです。

 こうしたクラウドサービスを利用するメリットとしては、「データをさまざまなデバイスで共有できる」「手元の端末のコンピュータ能力を利用せずに、インターネット上のCPUパワーを利用できる」という点が挙げられます。

 クラウドでは、データはインターネット上のサーバーに保管されていて、必要なデータをその都度、通信して手元の端末で使います。つまり、同じサービスを同じアカウントで使っていれば、自宅のパソコンや職場のパソコン、スマートフォンと、どの端末からでも同じデータを利用できることになります。先述したサービスでも、スマートフォンで撮影した写真を記録したり、メールを作成したりして、パソコンから見る、といったことができます、

 携帯電話のように、処理能力(マシンパワー)が限られる端末では、動画加工のような処理は負荷が高く、時間がかかったりバッテリーを消費したりしてしまうことがあります。そのようなときに、クラウドサービスを使えばインターネット上のサーバーを使って、すぐに加工を終えることも加工することもできます。

形態が違うSaaS/PaaS/IaaS(HaaS)

 先に例に挙げたようなクラウドコンピューティングは、英語で“ソフトウェアのサービス提供”という意味で「Software as a Service」、略して「SaaS」と呼んでいます。

 これに対して、プラットフォームを提供するクラウドコンピューティングを「PaaS」(Platform as a Service)、OS機能やハードウェアを提供するタイプのクラウドを「IaaS」(Infrastructure as a Service)、あるいはHaaS(Hardware as a Service)と呼びます。

 たとえば、PaaS型の例としてはGoogle App Engine、IaaS型の例としてはAmazon EC2などが挙げられるでしょう。

 Google App Engineでは、Google提供のSaaS型アプリを実行するための環境、たとえばGoogle検索の基礎としても使われている、インターネット上のキーバリュー型の高速データベースエンジンや、Googleの画像系サービスでも使われている、インターネット上の画像加工・修正エンジンを利用することができます。Google App Engineでは、アプリケーション開発の方法を知っていれば、自分でSaaS型のサービスを作ることができます。Javaの知識があれば、開発ツールでプログラムを作ってアップロードすると、高速データベースを活用する家計簿サービス、住所録サービスなどが実現できます。

 一方のAmazon EC2では、インターネット上の仮想サーバーとして、Windows Server、Linuxサーバーを借りることができます。ただし、この上で動くアプリケーションプラットフォームや、アプリケーションソフトは自分で用意する必要があります。

クラウド

 SaaS、PaaS、IaaSと形態によってさまざまな呼ばれ方をしますが、いずれにしてもユーザーは、コンピュータそのものが設置されている場所や実際に利用する台数は、意識せずに利用できます。

 PaaSを使うサービス開発者や、IaaSを使うサーバー管理者でさえ、そうした情報を把握する必要がなくなりました。これまでは、これらの人たちにとっては「サーバー」とははっきり意識する必要があったのですが、そうした常識とは違い、ただインターネットの先にサーバーが必要なだけ用意されていつでも使える、そう認識していれば良いだけになったのです。

 クラウドコンピューティングの「クラウド」とは「雲」を意味する英単語「cloud」から来ています。インターネットを利用する様子を図式する際に雲のような図形を描くことが多いのですが、クラウドと呼ぶ背景にはサーバーをインターネット(雲)の部分だけ意識すればよくなったことも理由の1つとされています。

 ネットワーク上のコンピュータを、ユーザーに意識させずに利用させる、という考え方は古くからありましたが、クラウドコンピューティングという名前は、1997年、米国南カリフォルニア大学(当時)のRamnath Chellappa氏により命名されました。

 その後はあまり使われませんでしたが、2007年、Googleの最高経営責任者であるEric Schmidt氏がこのコンセプトを再度提唱、Googleの提供する各種クラウドサービスが強力であることからあらためて注目を集め、現在では、コンピュータ業界の1大トレンドとなるキーワードになっています。

 



(大和 哲)

2011/2/1 12:35