SaaS・PaaS・IaaSの違いとは?新人エンジニア向けに具体例でわかりやすく解説

こんにちは。ゆうせいです。

今回は、SaaS、PaaS、IaaSの違いについて、新人エンジニア向けに解説します。

クラウドを学び始めると、かなり早い段階でこの3つの言葉に出会います。

SaaS
PaaS
IaaS

読み方は、それぞれ「サース」「パース」「アイアース」または「イアース」と呼ばれます。

最初はアルファベットだらけで、かなり分かりにくいですよね。

しかし、考え方はシンプルです。

SaaS、PaaS、IaaSの違いは、「どこまでクラウド事業者が用意してくれて、どこから自分たちで管理するか」の違いです。

クラウドサービスには、従来からIaaS、PaaS、SaaSという主要な分類があり、それぞれコントロールできる範囲や管理する範囲が異なります。AWSも、これらのモデルを理解することがニーズに合うサービス選定に役立つと説明しています。{index=0}

まず結論:SaaS・PaaS・IaaSの違い

種類読み方何を提供するか新人向けの一言
SaaSサース完成済みのソフトウェアすぐ使えるアプリ
PaaSパースアプリを動かすための開発・実行環境コードを置けば動かせる土台
IaaSアイアースサーバー、ネットワーク、ストレージなどのインフラ仮想サーバーを借りる仕組み

ざっくり言うと、SaaSが一番「完成品」に近く、IaaSが一番「自分で作る範囲」が広いです。

PaaSは、その中間です。

SaaS:完成したアプリを使う
PaaS:アプリを作って動かす場所を使う
IaaS:サーバーやネットワークを借りて、自分で環境を作る

この理解ができれば、まずは十分です!

たとえ話:レストランで考えるSaaS・PaaS・IaaS

新人エンジニアの方には、レストランで考えると分かりやすいです。

種類レストランのたとえ自分がやること
SaaSレストランで完成した料理を食べる注文して食べるだけ
PaaSキッチン付きのレンタルスペースを借りる材料とレシピを用意して調理する
IaaS厨房設備や場所を借りて店を作る調理器具、運用、管理をかなり自分で行う

SaaSは、完成した料理が出てくるレストランです。

利用者は、調理器具や厨房の管理を気にしません。

PaaSは、キッチン付きのレンタルスペースです。

火や水道、調理台は用意されていますが、料理そのものは自分で作ります。

IaaSは、厨房設備や場所を借りるイメージです。

自由度は高いですが、管理することも増えます。

クラウドも同じです。

便利さと自由度は、トレードオフになりやすいのです。

SaaSとは何か

SaaSとは、Software as a Serviceの略です。

日本語では「サービスとしてのソフトウェア」と訳されます。

SaaSは、完成済みのソフトウェアをインターネット経由で利用する形です。

AWSは、SaaSについて、ベンダーによって実行・管理されるソフトウェアアプリケーションを提供するものと説明しています。利用者は、基盤となるインフラやサービスのメンテナンスを気にせず、ソフトウェアの使い方に集中できます。{index=1}

SaaSの具体例

メールサービス
チャットツール
オンライン会議ツール
CRM
勤怠管理システム
会計ソフト
タスク管理ツール
ファイル共有サービス

たとえば、メールサービスを使う場合を考えてみましょう。

利用者は、メールを送受信するだけです。

メールサーバーのOSをアップデートしたり、ディスク容量を管理したり、障害時にサーバーへログインして復旧したりはしません。

AWSも、SaaSアプリケーションの一般例としてWebベースのメールを挙げ、利用者はメールを送受信でき、メールプログラムを実行するサーバーやOSのメンテナンスを行う必要がないと説明しています。

SaaSで新人エンジニアが意識すること

SaaSでは、自分でサーバーを構築しません。

しかし、エンジニアとして何も考えなくてよいわけではありません。

ユーザー管理
権限設定
データ連携
セキュリティ設定
利用ルール
運用設計
API連携

たとえば、会社でチャットツールを導入する場合、アカウントを誰に発行するのか、退職者のアカウントをどう削除するのか、外部ユーザーを招待してよいのか、といったルールが必要です。

SaaSは「すぐ使える」からこそ、運用設計が大切になります。

PaaSとは何か

PaaSとは、Platform as a Serviceの略です。

日本語では「サービスとしてのプラットフォーム」と訳されます。

PaaSは、アプリケーションを開発して動かすための土台を提供するサービスです。

AWSは、PaaSについて、基盤となるハードウェアやOSを組織が管理する必要をなくし、アプリケーションのデプロイと管理に注力できるようにするものと説明しています。

PaaSの具体例

Webアプリをデプロイするサービス
アプリ実行環境
マネージドなアプリケーション基盤
データベース付きの開発基盤
サーバーレス実行環境に近いサービス

たとえば、新人エンジニアがSpring BootでWebアプリを作ったとします。

IaaSなら、仮想サーバーを作って、Javaを入れて、Webサーバーを設定して、ログ管理やOS更新も考えます。

PaaSなら、アプリのコードや成果物をアップロードすると、実行環境側がアプリを動かしてくれます。

つまり、PaaSでは「アプリを作ること」に集中しやすくなります。

PaaSのイメージ

自分でやること:
アプリのコードを書く
設定ファイルを書く
デプロイする
アプリのログを見る
アプリの不具合を直す

クラウド側がやること:
サーバー環境を用意する
OSや実行環境の一部を管理する
スケールの仕組みを提供する
アプリを動かす土台を提供する

PaaSは、新人エンジニアがWebアプリ開発を学ぶときにも理解しやすいモデルです。

コードを書いて、クラウド上で動かす。

ただし、サーバーの細かい設定はできるだけ意識しない。

このバランスがPaaSです。

IaaSとは何か

IaaSとは、Infrastructure as a Serviceの略です。

日本語では「サービスとしてのインフラ」と訳されます。

IaaSは、サーバー、ネットワーク、ストレージなどのITインフラをクラウド上で利用するサービスです。

AWSは、IaaSについて、ネットワーキング機能、仮想または専用ハードウェアのコンピュータ、データストレージへのアクセスを提供するものと説明しています。IaaSは、ITリソースに対する柔軟性と管理コントロールを高めやすいモデルです。

IaaSの具体例

仮想サーバー
仮想ネットワーク
仮想ディスク
ロードバランサー
ファイアウォール
ストレージサービス
バックアップ用の領域

たとえば、クラウド上にLinuxサーバーを1台作り、そこにJava、Nginx、PostgreSQLを入れてWebアプリを動かす場合は、IaaSに近い考え方です。

仮想サーバーはクラウド事業者が提供します。

しかし、その上で何をインストールし、どう設定し、どう監視し、どうセキュリティを守るかは、自分たちの責任範囲が大きくなります。

IaaSで新人エンジニアが意識すること

OSの設定
ミドルウェアのインストール
セキュリティパッチ
ファイアウォール設定
バックアップ
監視
ログ管理
障害対応
スケール設計

IaaSは自由度が高いです。

自由度が高いということは、責任範囲も広いということです。

「好きに作れる」は「自分で面倒を見る範囲が増える」とセットで覚えてください。

SaaS・PaaS・IaaSの責任範囲の違い

SaaS、PaaS、IaaSを理解するうえで一番大切なのは、責任範囲です。

どこまでクラウド事業者が管理し、どこから利用者が管理するのかを見ましょう。

項目SaaSPaaSIaaS
アプリケーション提供者が管理利用者が作る利用者が作る
データ利用者が扱う利用者が扱う利用者が扱う
ランタイム提供者が管理提供者が管理する範囲が多い利用者が管理する範囲が多い
OS提供者が管理提供者が管理する範囲が多い利用者が管理する範囲が多い
サーバー提供者が管理提供者が管理提供者が仮想基盤を提供
ネットワーク提供者が管理提供者が管理する範囲が多い利用者が設計する範囲が多い

ざっくり言うと、SaaSは「使うだけ」に近いです。

PaaSは「作ったアプリを動かす」に近いです。

IaaSは「クラウド上でサーバー環境を作る」に近いです。

具体例:勤怠管理システムで考える

ここからは、同じ目的を3つのモデルで比較してみましょう。

例として、会社で勤怠管理システムを使いたいとします。

SaaSの場合

勤怠管理SaaSを契約する
社員アカウントを登録する
就業ルールを設定する
社員がブラウザやスマホから打刻する
管理者が勤怠データを確認する

SaaSでは、すでに完成している勤怠管理サービスを利用します。

アプリを作る必要はありません。

サーバーを構築する必要もありません。

新人エンジニアが関わるとすれば、ユーザー管理、権限設定、社内システムとのデータ連携、運用ルール作成などです。

PaaSの場合

自社向けの勤怠管理アプリを開発する
PaaSにアプリをデプロイする
データベースサービスを利用する
社員がWebアプリとして利用する
アプリの機能改善を自社で行う

PaaSでは、アプリは自分たちで作ります。

ただし、OSやサーバーの細かい管理はなるべくクラウド側に任せます。

たとえば、自社独自の就業ルールが複雑で、市販SaaSでは合わない場合に検討されます。

IaaSの場合

仮想サーバーを作成する
OSを設定する
JavaやWebサーバーをインストールする
データベースを構築する
勤怠管理アプリをデプロイする
監視、バックアップ、セキュリティ対策を行う

IaaSでは、自由に環境を作れます。

しかし、管理する範囲も広くなります。

OSの更新、ミドルウェアの脆弱性対応、バックアップ、監視、障害対応なども考える必要があります。

具体例:Webアプリ開発で比較する

新人エンジニアにとって、Webアプリ開発で考えるとさらに分かりやすいです。

やりたいことSaaSPaaSIaaS
ブログを公開したいブログサービスを使う自作ブログアプリをPaaSに載せる仮想サーバーにWebサーバーやDBを構築して公開する
社内問い合わせ管理をしたい問い合わせ管理SaaSを使う自作問い合わせ管理アプリをPaaSで動かすサーバーから構築して自作アプリを運用する
ECサイトを作りたいECサイト作成サービスを使う自社ECアプリをPaaSにデプロイする仮想サーバー、DB、ネットワークを設計して運用する

同じ「Webアプリを使う」でも、どこまで自分で作りたいかによって選ぶモデルが変わります。

完成品でよければSaaS。

アプリを作りたいが、インフラ管理は減らしたいならPaaS。

細かく環境を制御したいならIaaS。

このように考えると分かりやすいです。

SaaSのメリットとデメリット

メリット説明
すぐ使える契約後、設定すれば利用開始しやすい
運用負荷が低いサーバーやOS管理を基本的に意識しなくてよい
初期開発が不要自社でアプリを作らなくてもよい
アップデートが提供される機能改善や保守を提供者側が行う
デメリット説明
自由度が低い自社独自の細かい要件に合わせにくい場合がある
提供者に依存する仕様変更、障害、料金変更の影響を受ける
データ管理に注意が必要外部サービスにデータを預けるため、権限や契約確認が重要
連携制約がある既存システムとの連携が思い通りにできない場合がある

SaaSは便利ですが、「便利だから何も考えなくてよい」ではありません。

利用者管理、権限、データ持ち出し、契約条件は必ず確認しましょう。

PaaSのメリットとデメリット

メリット説明
開発に集中できるサーバーやOS管理の負担を減らせる
デプロイしやすいコードや成果物を配置しやすい仕組みが用意されている
スケールしやすいアクセス増加に対応する仕組みを使いやすい
運用負荷を下げやすいインフラ管理を一部クラウド側に任せられる
デメリット説明
自由度に制約があるOSやミドルウェアを細かく変更しにくい場合がある
サービス仕様に依存するPaaS側の制約にアプリを合わせる必要がある
移行が大変な場合がある特定サービス向けに作り込みすぎると、別環境へ移しにくくなる
障害調査の範囲が限られる基盤部分の内部までは見えない場合がある

PaaSは、開発速度を上げたいときに強いです。

一方で、細かいインフラ制御が必要な場合は向かないこともあります。

IaaSのメリットとデメリット

メリット説明
自由度が高いOS、ミドルウェア、ネットワークを細かく設計しやすい
既存システムを移行しやすいオンプレミスに近い構成をクラウドに作りやすい
細かいチューニングができる性能、構成、セキュリティを細かく調整しやすい
学習効果が高いサーバー、ネットワーク、OSの理解が深まる
デメリット説明
運用負荷が高いOS更新、監視、バックアップなどを考える必要がある
設計ミスの影響が大きいネットワークやセキュリティ設定を間違えると危険
コスト管理が難しい使い方によって費用が増えやすい
スキルが必要インフラ、OS、セキュリティの知識が求められる

IaaSは、自由度が高いぶん、エンジニアとしての基礎力が問われます。

新人エンジニアが学ぶには、とても良い教材にもなります。

新人エンジニアが迷いやすいポイント

1. クラウドなら全部SaaSではない

クラウド上で使うサービスだからといって、すべてSaaSではありません。

クラウドには、アプリを使うSaaS、アプリを動かすPaaS、インフラを借りるIaaSがあります。

「クラウド=SaaS」と覚えないようにしましょう。

2. PaaSとIaaSの違いは「OSや実行環境をどこまで見るか」

PaaSとIaaSは混同しやすいです。

目安は、OSやミドルウェアを自分で細かく管理するかどうかです。

自分で仮想サーバーにログインして設定するなら、IaaS寄りです。

コードをデプロイして、実行環境の管理をかなり任せるなら、PaaS寄りです。

3. SaaSでもエンジニアの仕事はある

SaaSは完成品なので、エンジニアの仕事がないと思われがちです。

しかし、実際には多くの仕事があります。

API連携
SSO設定
権限設計
データ移行
監査ログ確認
退職者アカウント削除
社内利用ルール作成

SaaSを安全に使うには、エンジニアの設計力が必要です。

どれを選べばよいのか

SaaS、PaaS、IaaSの選び方は、目的によって変わります。

目的向いているモデル理由
すぐに業務で使いたいSaaS完成済みのソフトウェアを使える
自社独自のアプリを早く作りたいPaaSインフラ管理を減らして開発に集中できる
細かく環境を制御したいIaaSOSやネットワークを自由に設計しやすい
既存サーバー構成をクラウドへ移したいIaaSオンプレミスに近い構成を再現しやすい
現場部門がすぐ使える業務ツールが欲しいSaaS導入スピードが速い
開発チームがWebアプリを継続改善したいPaaSデプロイと運用を効率化しやすい

どれが一番優れている、という話ではありません。

目的に合うものを選ぶことが大切です。

道具選びと同じですね。

ネジを締めるならドライバー、紙を切るならハサミ、釘を打つならハンマーです。

クラウドも、目的によって選ぶ道具が変わります。

クラウドを使うメリット

クラウドを使うと、物理的なサーバーを購入して保守する代わりに、インターネット経由でコンピューティングリソースを利用できます。Microsoft Azureの解説でも、クラウドはオンデマンドでコンピューティングリソースにアクセスでき、コスト削減や柔軟性向上、より速いイノベーションを支援すると説明されています。

メリット説明
初期投資を抑えやすい物理サーバーを大量に購入しなくても始めやすい
拡張しやすい利用者増加やアクセス増加に合わせてリソースを増やしやすい
どこからでも使いやすいインターネット経由でアプリやデータにアクセスしやすい
運用を効率化しやすいクラウド側に任せられる管理作業がある

ただし、クラウドにすればすべて解決するわけではありません。

セキュリティ、コスト、運用ルール、障害対応の設計は必要です。

新人エンジニア向けの覚え方

最後に、覚え方を整理します。

SaaS:Softwareを使う
PaaS:Platformに載せる
IaaS:Infrastructureを借りる

もっと簡単に言うと、次のように覚えましょう。

SaaS:使う人向け
PaaS:作る人向け
IaaS:環境を作る人向け

ただし、実務では完全に分かれるわけではありません。

1つのシステムの中で、SaaS、PaaS、IaaSを組み合わせることもあります。

たとえば、社内システムでは次のような構成がありえます。

チャットはSaaSを使う
自社WebアプリはPaaSで動かす
一部の古いシステムはIaaS上の仮想サーバーで動かす

現場では、組み合わせて使うことが多いです。

まとめ

SaaS、PaaS、IaaSの違いは、「どこまで自分で管理するか」の違いです。

種類提供されるもの向いているケース
SaaS完成済みのソフトウェアすぐに業務で使いたい
PaaSアプリを動かすためのプラットフォームアプリ開発に集中したい
IaaSサーバー、ネットワーク、ストレージなどのインフラ自由に環境を設計したい

一言でまとめるなら、SaaSは「完成品を使う」、PaaSは「作ったアプリを載せる」、IaaSは「サーバー環境を借りて作る」です。

新人エンジニアは、まずこの順番で理解してください。

SaaS
        ↓
完成したアプリを使う

PaaS
        ↓
自分のアプリをクラウドの土台で動かす

IaaS
        ↓
クラウド上のサーバーやネットワークを使って環境を作る

今後の学習では、まずSaaS、PaaS、IaaSの責任範囲を理解し、その後に仮想サーバー、コンテナ、サーバーレス、マネージドサービス、クラウドネットワーク、セキュリティ、監視、コスト管理へ進むとよいです。まずは身近な業務ツールを1つ選び、「これはSaaS、PaaS、IaaSのどれに近いのか?」と考えるところから始めてみましょう!

セイ・コンサルティング・グループでは新人エンジニア研修のアシスタント講師を募集しています。

投稿者プロフィール

山崎講師
山崎講師代表取締役
セイ・コンサルティング・グループ株式会社代表取締役。
岐阜県出身。
海外放浪の末、2000年創業、2004年会社設立。
IT企業向け人材育成研修歴業界歴20年以上。
すべての無駄を省いた費用対効果の高い「筋肉質」な研修を提供します!
この記事に間違い等ありましたらぜひお知らせください。

学生時代は趣味と実益を兼ねてリゾートバイトにいそしむ。長野県白馬村に始まり、志賀高原でのスキーインストラクター、沖縄石垣島、北海道トマム。高じてオーストラリアのゴールドコーストでツアーガイドなど。現在は野菜作りにはまっている。