IaaS・PaaS・SaaSの違いとは ― 管理する範囲で見分ける
IaaS・
IaaS・PaaS・SaaSとは、利用者と事業者が管理する範囲で分かれるサービスモデル
IaaS・PaaS・SaaSの違いは、クラウドのどこまでを事業者が用意し、どこから利用者が管理するかです。IaaSでは、事業者はサーバの処理能力やストレージなどの基盤だけを用意します。PaaSではアプリを動かす環境まで、SaaSでは完成したアプリケーションまで用意します。
同じようにクラウドでアプリを動かす場合でも、OSの更新を自分でするか事業者に任せるかは、選ぶモデルで変わります。サービスを比べるときは、まずこの区分で、自分たちが管理する範囲を確かめます。
3つの区分の定義としてよく参照されるのは、米国の標準化機関NISTの文書です。NISTは2011年公開の文書「SP 800-145」で、クラウドコンピューティングを5つの特徴・3つのサービスモデル・4つの配置モデルで整理しています。5つの特徴と4つの配置モデルは、クラウドコンピューティングとはの記事で説明しています。
管理する範囲を切り替えて見る
次の図では、オンプレミス・IaaS・PaaS・SaaSを切り替えて、層ごとの担当を比べられます。オンプレミスは、自社で機器を持って運用する形です。基盤からアプリケーションまでの4つの層のうち、利用者が管理する層が、切り替えるたびに変わります。
NISTの定義は、このような層の一覧表を定めていません。図の4つの層は、NISTの原文に出てくるネットワーク・サーバ・ストレージ・OSなどをもとに、説明のために一般的な形で分けたものです。とくに「ミドルウェア・実行環境」はNISTの原文には無い言葉で、資料によって層の分け方や名前は異なります。
自社の施設に機器を置き、全部の層を自社で管理する。比較の基準。
事業者が基盤そのものを管理し、利用者はOSから上を管理する。確保したストレージや、ホストファイアウォールなどネットワークの一部も利用者が扱う。
事業者がOSまでを管理し、利用者はアプリの配置と実行環境の一部設定を行う。
事業者がアプリ本体まで管理し、利用者は自分用の設定だけを行う。
- 利用者が管理
- 利用者は一部だけ扱う
- 事業者が管理
IaaSからPaaS、SaaSへ進むにつれて、事業者が管理する層が基盤から上へ広がります。利用者が管理する層は、IaaSで最も広く、SaaSで最も狭くなります。クラウドより前からあるホスティングやハウジングを同じ見方で並べた図は、ホスティングとハウジングの記事にあります。
NISTの定義で見る、3つのサービスモデルの違い
NISTは、SaaS・PaaS・IaaSのそれぞれについて、利用者が何をできるかと、何を管理しないかを定義しています。
SaaSとは、提供者が用意したアプリケーションをそのまま使うモデル
SaaSでは、利用者は提供者が動かしているアプリケーションを使います。Webブラウザのような簡単な画面からアクセスできるものも、プログラム同士が直接やり取りするものもあります。
利用者は、基盤となるネットワーク・サーバ・OS・ストレージを管理しません。アプリケーションの個々の機能にも、原則として手を加えられません。例外は、利用者ごとに用意された設定項目だけです。
PaaSとは、アプリを動かす環境を事業者が用意し、利用者がアプリを配置するモデル
PaaSでは、利用者は自分で作ったアプリケーションや、入手したアプリケーションを配置します。配置とは、アプリをサーバに置いて動かせる状態にすることです。配置には、提供者が用意した言語・ライブラリ・サービス・ツールを使います。
利用者は、基盤となるネットワーク・サーバ・OS・ストレージを管理しません。管理するのは、配置したアプリケーションと、アプリを動かす環境の一部の設定です。AWSでこれに近い使い方ができるサービスに、Elastic Beanstalkがあります。
IaaSとは、処理能力やストレージなどの基盤を借り、OSから上は利用者が管理するモデル
IaaSでは、利用者は処理能力・ストレージ・ネットワークなどの基盤を確保します。確保した基盤の上で、OSを含む任意のソフトウェアを動かせます。
利用者は、基盤そのものは管理しません。一方で、OS・ストレージ・配置したアプリケーションは管理できます。場合によっては、サーバごとに通信を制限するホストファイアウォールのような、ネットワーク機能の一部も管理できます。
クラウド事業者は、通信を複数のサーバに振り分けるロードバランサのような機能を、IaaSの一部として用意していることがあります。利用者はその機能を使うだけでよく、仕組みを一から構築しなくて済みます。
| モデル | 利用者が | 利用者が | 事業者が |
|---|---|---|---|
| SaaS | 提供者が用意したアプリケーション | 自分用の設定項目だけ(無いこともある) | ネットワーク・サーバ・OS・ストレージ・アプリケーション本体 |
| PaaS | アプリを動かすための環境(言語・ライブラリ・ツールなど) | 配置したアプリと、実行環境の一部の設定 | ネットワーク・サーバ・OS・ストレージ |
| IaaS | 処理能力・ストレージ・ネットワークなどの基盤 | OS・ストレージ・配置したアプリ(ネットワーク機能の一部を含むことがある) | 基盤そのもの(ネットワーク・サーバなど) |
この3つのモデルより小さい単位でプログラムを動かすのが、FaaSです。FaaSの仕組みは、サーバーレスの記事で説明しています。
参考にした資料
- NIST Special Publication 800-145「The NIST Definition of Cloud Computing」(Peter Mell, Timothy Grance, September 2011。2. Service Modelsの原文の定義)
練習問題(全4問)
正解:利用者が、
NISTの
正解:配置した
NISTの
正解:OS・ストレージ・配置した
NISTの
正解:IaaS → PaaS → SaaS
利用者が
選んでから「採点する」を押すと、解説つきで答え合わせができます。