「クラウド」という言葉は色々な所で、目にするようになりましたが、実際に「クラウド」が(おそらく、このコラムをお読みになっいている)ITエンジニアの方々にどのような影響ができるのか、いまいちわかりにくいと思います。
というわけで、本コラムでは「クラウドとは何か?」「 クラウドの最新動向」といったクラウドの一般的な解説をした後、「 そのクラウドがITエンジニアのキャリアにどのように影響していくのか」といった事や「どのようにすればクラウドの知識をつけられるか?」といった事を書いていきたいと思います。それでは、まずは「クラウド」という言葉を実態を見ていきましょう。
人によって意味が違う「クラウド」
ここ2.3年で「クラウド」という言葉を多く聞くようになりました。IT関連のニュースサイトでは「クラウド」専門のニュースサイトなども登場しており、本屋さんには「クラウド」をテーマにした書籍も数多く出版されています。
しかし、これだけ「クラウド」についての情報が出回っているのにも関わらず「クラウド」という言葉については、人によって大きく違います。ある人は「クラウド」をメールやグループウェアなどのコミュニケーションツールのように言いますし、また別の人は「クラウド」を色々なデータを保存するストレージのように言います。さらにある人は「クラウド」を利用して、数百台のサーバを用意したという人もいます。
「クラウド」を分類する
これらはどれも間違いではありません。しかし、これだけ言葉の意味が幅広いと、自分は「クラウド」を使ったメールサービスの話をしていたのに、相手は開発環境の話のつもりで聞いていたといったような、同じ言葉なのに違う意味で話してしまう場合も考えられます。
また、これだけ「クラウド」の意味が幅広くなると、言葉の定義を統一するのも難しくなります。実際「クラウド」という言葉は、数多くの団体・組織によって定義づけられています。しかし、これらのクラウドの定義も、意味が幅広く色々と解釈されるので、実際の仕事上の会話で利用するのは難しいと思われます。
では、どのようにすれば「クラウド」がわかりやすくなるのでしょうか? 私は「クラウド」を利用方法によって分類すれば良いと思っております。分類方法にも色々とありますが、一般的には「IaaS」「 PaaS」「 SaaS」といった方法が一般的です。ほかにも細かい分類方法はありますが、大きくこの3つの分類を覚えておけば「クラウド」がわかりやすくなります。これから「クラウド」を使う人はまずこの3つを押えていきましょう。
図 IaaS、PaaS、SaaS
パッケージソフトをブラウザで提供するSaaS
SaaS(Software as a Service)は、ソフトウェアをサービスとして提供する形態のことです。今まで、メールやグループウェア、ワープロや表計算などのオフィスソフトなどのソフトウェアはパッケージとして購入して、パソコンやサーバにインストールする必要がありました。
しかし、SaaSはインターネットを通じて提供され、パッケージを購入したりパソコンやサーバにインストールする必要なく、ソフトウェアを利用できます。SaaSは主にブラウザから操作するアプリケーションなどに多く採用されています、これは、Ajaxなどの技術の進歩により、ブラウザでもパソコンにインストールしたデスクトップアプリケーションと同等の動きをするようになったためです。これによって、ブラウザ経由で提供されていたアプリケーションが現実的に使えるようになってきたと言えるでしょう。
またSaaSのメリットとしてデータをそれぞれのパソコンに入れておくのではなく、インターネット側で保存されるのも大きなメリットです。たとえば、従来のメールソフトの場合は、メールソフトをインストールしているパソコンでしか受信できませんでしたが、SaaSで提供されているメールサービスであれば、どのパソコンからでもメールを利用できます。
また、データがインターネット側にあれば、複数のデバイスから利用することが可能です。たとえば、iPhoneのようなスマートフォンやiPadのようなタブレット型のデバイスなど複数のデバイスからデータを見ることができます。
このようなSaaSで提供されているサービスで代表的なものとしてGoogleが出している「Google ドキュメント」などのサービスがあります。「 Google ドキュメント」は、ブラウザからMicrosoft Officeのようなオフィスソフトが利用できるものです。現在のところワープロソフトのような「文章」や、表計算ソフト機能が使える「スプレッドシート」 、プレゼンテーションソフトのような「プレゼンテーション」などが使えます。
Googleドキュメントは機能的に見れば、まだまだMicrosoftが提供しているMicrosoft Officeにはかないません。しかし、「 Google ドキュメント」は、Microsoftが提供しているOfficeにない大きなメリットがあります。それは自分以外の人間とのコラボレーションができる点です。
Googleドキュメントで作成された文章はGoogleのサーバ群に保存され、インターネット経由でアクセスできます。そのため、複数の人間で1つの文章ファイルを作成・編集が可能です。従来のOfficeで作成されたファイルを複数人で共有する場合は、どれが最新版であるかわからなくなってしまう場合もありますし、複数人が同時に1つのファイルにアクセスすることができませんでしたが、Googleドキュメントの場合は、複数人が同時に1つのファイルを利用できます。
開発環境の提供するPaaS
PaaS(Platform as a Service)はインターネット上でプラットフォームを提供するものです。このPaaSはSaaSのようにエンドユーザにオンライン上でサービスを提供するのではなく、自社のプラットフォームを外部に解放し、その上にサービスを開発するものになっています。開発者は、あるシステム設計に沿った方法でアプリケーションを開発できるので、早くシステム開発ができます。ただ逆に言えば、プラットフォームをサービス提供側が用意しているので、こちらは自由にサービス開発を行うのが難しいという点もあります。
たとえば、Googleが提供している「Google App Engine(GAE) 」は、利用できる言語はPython、GO、Javaに限定されますが、サーバの設定やインフラの設定はすべてGoogleにまかせることができ、開発者はサービスの開発に集中できます。
仮想サーバを提供するIaaS
最後にご紹介するのがIaaS(Infrastructure as a Service)です。PaaSは、開発プラットフォームを提供してきましたが、IaaSはサービス開発者がサービスの公開に必要な、仮想サーバやネットワークを提供します。
PaaSの場合は、特定の言語やプラットフォームなどの開発はできますが、OSを自分で選択することなどはできません。それに対して、IaaSはネットワーク越しに仮想サーバを好きな数だけ起動させ、その起動したサーバにインストールできるOSも自分で選択できます。用意されるサーバはリアルな物理サーバではなく仮想的に用意されるサーバです。サーバが仮想的に用意されるので、数分で何台も立ち上げることができます。自分が公開したWebサービスに人気が出た場合は、急いでサーバの数を増やす必要があります。今まで、自分でサーバ管理をしていたり、ホスティング事業者を使っていた場合、サーバを増やすには、数日から数週間程度の時間が必要でしたが、IaaSで提供される仮想サーバはクリック1つですぐにサーバを起動できます。
まとめ
以上、クラウドの代表的な分類「SaaS」「 PaaS」「 IaaS」について見てきました。一言で「クラウド」と言っても、色々な形態があることがわかったと思います。「 クラウド」について色々な人と話をしたり「クラウド」についての記事を読む時は、そこで言われている「クラウド」が「SaaS」のことを言っているのか「PaaS」のことを言っているのか「IaaS」のことを言っているのか確認をすると「クラウド」についてわかりやすくなると思います。
次回は今回見てきた「SaaS」「 PaaS」「 IaaS」のうち、エンジニアに関係が深い「PaaS」と「IaaS」を取り上げます。
まずは、Windows Azure Platformを無料で試すためのアカウントを取得しましょう。
さらに詳しい技術情報はこちらから。