|
|
SaaS (Software as a Service) |
アプリケーション(ソフトウエア)をサービスとして提供する |
---|---|
PaaS (Platform as a Service) |
アプリケーションを稼働させるための基盤(プラットフォーム)をサービスとして提供する |
IaaS (Infrastructure as a Service) |
サーバー、CPU、ストレージなどのインフラをサービスとして提供する |
SaaS/PaaS/IaaSにおいて、具体的に何が提供され、どのように異なるのか。詳しく見ていきましょう。
SaaS/PaaS/IaaSによって提供される構成要素を、「アプリケーション」「ミドルウエア」「OS」「ハードウエア/ネットワーク」に分け、それぞれの特徴を見てみましょう(図1)。
(1)IaaS
IaaSは、ネットワーク/ハードウエア(CPU・メモリー・ハードディスク)/OSを提供するサービスです。ユーザーは何もインストールされていないサーバー環境を提供され、その上にユーザーが必要とするミドルウエアや、アプリケーションソフトウエアをインストールすることになります。
レンタルサーバーと大して変わらないようにも思えますが、レンタルサーバーは物理サーバーをそのまま提供するものである一方、IaaSはサーバーのCPU・メモリー・ハードディスクを仮想化技術などによって、ユーザーが必要とする分だけ提供するものである点が異なります。
IaaSは、WindowsやLinuxなどのOSを含む、あるいは含まないといった双方の見解が存在します。しかし、米アマゾン・ウェブ・サービシズの「Amazon EC2」をはじめとした代表的なサービスを見る限り、OSまで提供しているケースが一般的です。なお、OSを含まないサービスを、明示的にHaaS(Hardware as a Service)と呼ぶこともあります。
(2)PaaS
PaaSは、IaaSの構成要素に「ミドルウエア」を加えたものです。IaaSの構成要素に加え、データベースソフトやWebサーバーソフトといったWebアプリケーションを稼働させるためのソフトウエアや、アプリケーション開発に必要となるソフトウエアが提供されます。ユーザーは、必要なアプリケーションのソースコードをPaaS環境にアップロードし、必要なデータベース定義を設定することで、アプリケーションを動作させることが可能となります。
PaaSではIaaSとは異なり、ユーザーはOSを直接操作することはありません。IaaSでは、OSの各種設定や保守作業をユーザー自身が行う必要がありますが、PaaSではそのような作業が不要となります。
なお、PaaSではサービスによって、アプリケーションで利用できる開発言語が限定される点や、PaaSにおいて提供されていないミドルウエアについてはユーザー自身が準備しなければならない(場合によっては利用できない)点に留意が必要です。
(3)SaaS
SaaSでは、ユーザーはネットワーク・ハードウエア・OS・ミドルウエアのすべての要素について、自身で準備をする必要がありません。ユーザーはWebブラウザを利用して、 SaaS提供事業者のWebアプリケーションにアクセスし、サービスを利用することになります。
SaaSのアプリケーションの機能が不十分である場合は、ユーザー自身が機能を追加開発することも可能です。画面上に入力項目を追加するなどの軽微な機能追加については、Webブラウザからパラメータを変更するだけで対応可能です。データ保存時にデータ整合性チェックを行うような複雑な機能追加については、SaaSベンダーが提供する専用アプリケーション(および専用開発言語)で開発するケースも見られます。この場合、専用アプリケーション(および専用開発言語)に習熟する必要があります。