クラウドコンピューティング(Cloud Computing)は、かつてのメインフレームからオープンシステムへの変化をはるかに超える変化を企業ITに与える。クラウドコンピューティングは、ネットワーク上に存在する多数のサーバが提供するアプリケーションを、それらのサーバ群を意識することなく、従量制で利用できるというまったく新しいコンピューティング形態である。
ユーザは必要なときに必要なだけサービスまたは計算リソースを利用できることから、ITシステムへの初期投資と運用費も大幅に減らすことができる。この結果、企業はITに関する費用の多くを固定費から変動費に変えられることになり、昨今の経済状況の中、企業経営を身軽にするうえでもクラウドコンピューティングが担う役割は重要となる。
本稿はクラウドコンピューティングの要点と現状を整理するとともに、企業にとってクラウドコンピューティングが与える影響、そしてクラウドコンピューティングをどのように活かしていくべきかを概説していく。
クラウドコンピューティングの分類
クラウドコンピューティングは、多数のサーバ群(本稿ではクラウドインフラと呼ぶ)とそれによって実行されるアプリケーションから構成される(図1)(図2)。
ただし、クラウドコンピューティングには複数のタイプがあり(表1)、そのタイプによりクラウドコンピューティングの活かし方も変わってくる。
SaaSではクラウドインフラ上に予め用意されているアプリケーション(ソフトウェア)を実行して、それをサービスとして提供する。ユーザはそのサービスをそのまま、またはカスタマイズして利用することになる。例えばSalesforce.comではCRM(Custom Relationship Management)を中心にビジネス向きの各種サービスを提供している。予め使いたいアプリケーションがSaaSインフラ上にあるのであれば、そのSaaSインフラを利用すれば十分であろう。
HaaSはIaaS(Infrastructure as a Service)と呼ぶことがあり、仮想化技術によりインフラストラクチャ(仮想化されたハードウェアやストレージ)をサービスとして提供する。つまりユーザからはネットワークを介して利用できる(仮想的な)ハードウェアとなる。
例えばAmazon EC2であれば、ユーザは利用したいLinuxやWindowsなどのOSを選んでロードして、そこに必要なミドルウェアやアプリケーションをインストールして利用する(図3)。
PaaS方式はクラウドインフラ上で、データベースやWebサーバなどのミドルウェアに加えて、JavaやPythonなどで書かれたアプリケーションの実行環境を提供しており、ユーザにより書かれたアプリケーションを実行するサービスである。
例えばGoogle App Engineは現在のところ、PythonとJavaをサポートしている。また、Windows AzureはC#などの実行環境であるCLR対応プログラミング言語が対象となる。
なお、HaaSにしてもPaaSにしてもユーザはシステムの運用自体はクラウドインフラ提供者に任せればよい。また、計算リソースが足りなくなったときは、HaaSであれば(仮想的)ハードウェアを、PaaSであればアプリケーションの実行環境をクラウドインフラ提供者から借りればよく、処理の量の変化にオンデマンドに対応できる。
ところで最近は、パブリッククラウドとプライベートクラウドに分類されることがある。前者は広く一般に誰でも利用できる開かれたクラウドコンピューティング環境を指し、後者は企業グループ内などの特定の利用者向けの環境を指す。
ただし、後者はハードウェアベンダーが中心に進めているコンピュータの利用形態であり、従来のサーバの仮想化やホスティングサービスとの差異が少ないのも事実である。