クラウドの真のインパクト 〜 XaaSやプライベート・クラウドを覚えただけで安心してしまわないために 〜

本質をつかめていないクラウド・コンピューティングの説明

クラウド・コンピューティングの解説記事が多数出ているが、本質やこれからの変化をつかめていないものがあまりにも多い気がする。

「雲のようにつかみどころがないもの」といった一時期の説明はなくなってきた。しかし、今度はIaaSやSaaSのようなXaaSのサービスの種類や、プライベート・クラウドのようなクラウドの種類を説明しただけの記事が多くなって来ている。

クラウドの本質は、データの記憶装置や処理装置をネットワーク上のどこかに置いて、それをどこからでも、まるで電気のように利用できるようにすると言うものだ。この業界に長くいた人は、この説明を聞くと、どこかで聞いたような説明だと思うかもしれない。そう、これは、ユビキタス・コンピューティングとグリッド・コンピューティングを足した説明になっている。

では、クラウドは、これら2つのバズワードが合わさっただけと理解すればよいのだろうか? そうではない。この2つが、成長し、お互いの欠点を補いあって、新たなコンピューティング時代の幕開けの宣言が行われたと理解すべきである。

なぜ、ユビキタスやグリッドがバズワードで終わったか?

ユビキタスという言葉が一時期流行ったが、結局何の変化も実感できずに終わった。どこでもコンピュータを利用できるようにと言うのがユビキタス・コンピューティングだ。しかし、これの実現には、

  • どこでもネットワークが利用でき、
  • 手軽に持ち運べる情報端末が存在し、
  • データはネットワーク上に保管されている

状態が必要である。しかし、流行った当時は、

  • まだモバイル通信は高価で、しかも低速で、
  • 持ち運べる情報端末は、ノートPCのようなちゃんとしたコンピュータであり、
  • ネットワーク上のデータ保管手段は、高価なサーバのディスクに保管するしかない

状態だった。これでは、ユビキタスの実現は無理としか言い様がない。

グリッドも、何の変化ももたらさなかった。これも、

  • 計算能力が必要量に応じて購入でき、
  • サービスとして提供できる、標準的なOSやプログラミング言語が存在し、
  • オフィスや自宅以外の場所でも利用したくなるような動機が存在する

必要があった。だが、

  • 計算能力はサーバ1台単位でしか購入できず、計算能力と価格は比例していなく、
  • CPUのアーキテクチャ、OSやプログラミング言語に標準となるものは存在せず、
  • 決まった場所でしかコンピュータを利用しない

状態であった。

あれから何が変わった?

しかし、今では、

  • 高速で安価なモバイル通信が存在し、
  • スマートフォンのような、パソコンではない情報端末が増え、
  • サーバ上のストレージも安価になり、
  • 仮想化技術によってサーバ1台分未満の計算能力を購入できるようになり、分散処理技術の発達によって価格にほぼ比例した計算処理能力を得る事ができ、
  • CPUやOSやプログラミング言語も多数派が存在(x86のCPU、LinuxJava言語がデファクト・スタンダードになりつつある)

するようになってきた。こうなると、ユビキタスやグリッドが失敗する理由がない。

クラウド・コンピューティングの人々へのインパク

クラウド・コンピューティングに関係する人々は3つに分けられる。エンドユーザとサービス提供者と、データセンター事業者である。これらの人々は変化し、これらの人々を相手に商売をしてきた企業は変化を迫られる。

  • エンドユーザは、今までPCに保存していたデータをクラウド上に保管するようになり、アプリケーションを個々の端末にインストールするのが面倒になってくる。すると、これらの人々にアプリやUSBメモリ等の外部記憶装置を販売していた企業は変化を迫られる。
  • サービス提供者は、サーバ、ネットワークやストレージ装置を自前で持つ事はコスト的に合わなくなってくる。そして、システムをクラウド上に移管するようになる。こうなると、ハードのベンダーや保守管理担当者は対応を迫られる。
  • データセンター事業者にとっては、クラウドと言うものは存在しない。大量のリアルなハードを以下に安く調達し運用していくかが課題となる。ハードを一番安く調達できるのはメーカーである。このため、データセンター事業にメーカーが本格的に参入してくる可能性がある。既存のデータセンター事業者は、安く運用する能力でメーカーに対抗していくように迫られる。

間違ったクラウドの理解

このように利用形態を考えると、プライベート・クラウドクラウドの考え方には合わないものである。
また、サービス提供者にすると、もはやハードウェアを手放したのだからOSの管理も手放したくなるだろう。というよりも、OSの管理をやめて、サービスの価格を下げた事業者が競争に勝てるようになる。よってデータセンター事業者は、Infrastructure as a Service(IaaS)ではなく、Platform as a Service(PaaS)のようなサービスを提供すべきであろう。

ただし、セキュリティや、大量の負荷に耐えるPaaSがあるのかと言った問題のため、プライベートクラウドやIaaSも一時的には存在できるだろう。

クラウドのOSへのインパク

クラウドの時代には、多数の人々へサービスを提供したものが勝者となる。多数への提供には、大量の負荷に耐えうるようなプラットフォームが必要になってくる。この変化はOSにも影響をもたらす。OSの2つの大きな役割は

  • コンピュータの個々のデバイスを管理し、
  • 個々のデバイスの違いを吸収し、抽象化したマシンをアプリへ提供

することである。

しかし、これからのOSは、大量の負荷に耐えるために分散処理が必要になり、

  • コンピュータの個々のデバイスを管理し、
  • 多数のコンピュータを管理し、
  • 多数のコンピュータを、1台のコンピュータに抽象化したものをアプリへ提供

することが求められるようになり、分散処理の為の階層が必要になるだろう。

クラウドプログラミング言語へのインパク

現在のプログラミング言語は基本的に一つのCPUで実行される事を前提にした設計になっている。(分散処理のライブラリ等が存在するが、文法等は基本的に一つのCPUで処理される時代を引きずっている) 現在では、CPUのクロック数は頭打ちになっており、性能向上は分散処理に頼るしかない。

このためクラウドの時代には、分散処理をしやすいような文法体系やライブラリがプログラミング言語に求められるようになるだろう。

クラウドのハードウェアへのインパク

分散処理が前提となると、これまでのコンピュータシステムのハード構成も変更が必要になる。

ここ10年程度、Storage Area Netwark(SAN)の導入のような、データの集中管理が行われてきた。しかし、大量のデータを分散処理しようとすると、このSANによる集中がボトルネックとなってしまう。

また、分散処理では数台のコンピュータは壊れるものと言う前提でプラットフォームを構築する必要がある。こうなるとコンピュータ単体での信頼性を上げるために、ハードウェアを冗長化するメリットが少なくなってくる。こうなると高価なサーバの必要性は薄れてくる。

そうなると、再び、さらにダウンサイジングした分散システムが、流行ってくる。

まとめ

以上のようにインパクトを考えると、クラウド・コンピューティングは、メインフレームからオープンアーキテクチャへの変化以来の20年ぶりの大きな変化の波であると予想できる。しかし、ここまで予想している解説記事はないようだ。