ジャンプ先

PaaS、IaaS、SaaS、CaaS の違い

クラウド コンピューティングが組織を変革できることはすでにご存じではないでしょうか。自己管理型オンプレミス IT ソリューションからの移行を模索するにあたり、クラウド コンピューティング サービスについて利用可能なさまざまなオプションを理解することが重要です。

クラウドの IaaS、PaaS、SaaS、CaaS については、どの程度ご存じでしょうか。これらの主要なクラウド コンピューティング サービスのモデルが実際にはどういったものか、お互いの違いは何なのかについて、知っておくべきことを詳しく説明します。

IaaS、PaaS、SaaS、CaaS とは

クラウド コンピューティングには、IaaS(Infrastructure as a Service)、PaaS(Platform as a Service)、SaaS(Software as a Service)の 3 つの主要クラウド サービスモデルがありますIaaS、PaaS、SaaS は クラウド サービス パッケージやクラウド コンピューティング カテゴリと呼ばれることもありますが、これらの用語はすべて、組織内でのクラウドの使い方と、ユーザーのクラウド環境においてユーザーがどの範囲まで管理責任を負うかを指します。  

これら 3 つの幅広いカテゴリに加えて、コンテナなどの他のテクノロジーを取り入れた他のタイプのクラウド サービスもご存じではないでしょうか。たとえば、コンテナとマイクロサービスのアーキテクチャの導入が増加したことで、CaaS(Containers as a Service)が登場しました。

通常、「As a service(サービスとしての)」とは、サービスモデルがクラウド内のサードパーティによって提供されることを意味します。つまり、オンプレミスのデータセンターからハードウェア、ソフトウェア、ツール、アプリケーションを購入、管理、使用する必要はありません。代わりに、サブスクリプションの支払いや使用量に基づく従量課金制で、インターネット接続を介して必要なものに必要に応じてアクセスできます。

IaaS、PaaS、SaaS、CaaS とは何でしょうか。また、各モデルでユーザーとそのチームにどのような利点がもたらされるでしょうか。

通常、「As a service(サービスとしての)」とは、サービスモデルがクラウド内のサードパーティによって提供されることを意味します。つまり、オンプレミスのデータセンターからハードウェア、ソフトウェア、ツール、アプリケーションを購入、管理、使用する必要はありません。代わりに、サブスクリプションの支払いや使用量に基づく従量課金制で、インターネット接続を介して必要なものに必要に応じてアクセスできます。

各サービスモデルの基本的な内訳は次のとおりです。

IaaS

Infrastructure as a Service(IaaS)は、コンピューティング、ストレージ、ネットワーキング、仮想化などのオンデマンド インフラストラクチャ リソースをクラウド経由で組織に提供します。ユーザーが自社のデータセンター インフラストラクチャの管理、維持、更新を行う必要はありませんが、オペレーティング システム、ミドルウェア、仮想マシン、アプリ、データについてはユーザーの責任範囲となります。

CaaS

Containers as a Service(CaaS)は、コンテナを使用してアプリケーションを開発、デプロイするためのハードウェアとソフトウェアのリソースをすべて提供、管理します。CaaS は、IaaS のサブセットまたは拡張機能とも考えられ、VM ではなくコンテナをメインリソースとして使用します。デベロッパーと IT 運用チームは、CaaS を使用することで、コンテナの実行と管理のためのインフラストラクチャやプラットフォームを構築して維持することなく、アプリケーションを開発、実行、管理できます。ユーザーはコードを記述し、データとアプリケーションを管理する必要がありますが、コンテナ化されたアプリを構築してデプロイする環境は、クラウド サービス プロバイダによって管理、保守されます。

PaaS

Platform as a Service(PaaS)は、クラウドを介して、アプリケーションを開発するためのハードウェアとソフトウェアのリソースをすべて提供、管理します。デベロッパーと IT 運用チームは、PaaS を使用することで、みずからインフラストラクチャやプラットフォームを構築して維持することなく、アプリケーションを開発、実行、管理できます。ユーザーはコードを記述し、データとアプリケーションを管理する必要がありますが、アプリを構築してデプロイする環境は、クラウド サービス プロバイダによって管理、保守されます。

SaaS

Software as a Service(SaaS)は、アプリケーション スタック全体を提供し、ユーザーがアクセスおよび使用できるクラウドベースのアプリケーション全体を提供します。SaaS プロダクトはサービス プロバイダによって完全に管理され、すべての更新、バグの修正、全体的なメンテナンスを含め、すぐに使用できます。ほとんどの SaaS アプリケーションはウェブブラウザから直接アクセスされるため、デバイスにダウンロードしたりインストールしたりする必要はありません。

クラウド IaaS、PaaS、SaaS、CaaS の主な違い

クラウド コンピューティングにおける IaaS、PaaS、SaaS、CaaS の違いを理解すると、管理と責任の範囲に違いがあることがわかります。各モデルは、独自のオンプレミス データセンターを管理する代替手段を備えていますが、サービス プロバイダが、選択したタイプに応じて、コンピューティング スタック内のさまざまな要素を管理します。

下の図は、IaaS、PaaS、SaaS、CaaS のそれぞれについて、誰が何を管理するのかを比較したものです。

さまざまなクラウド コンピューティング モデルとサービス構造

クラウドと、選択可能な各モデルを理解するには、クラウドを家に見立てるとわかりやすいでしょう。

  • オンプレミス: 家をゼロから建てる場合、すべてを自分で行います。原材料と道具を調達し、すべてをまとめて、何かが必要になるたびに店舗を訪ねる必要があります。これは、オンプレミスでアプリケーションを実行するのと似ています。オンプレミスでは、ハードウェアからアプリケーション、スケーリングに至るすべてをユーザーが所有します。
  • Infrastructure as a Service(IaaS): 忙しい場合は、請負業者に作業を依頼することもできます。家の外観や部屋の数を業者に指示すれば、業者が指示に従って家を建築します。IaaS は、アプリケーションでも同じ役割を果たします。ユーザーは、ハードウェアをレンタルしてそこでアプリケーションを実行しますが、OS、ランタイム、スケーリング、およびすべてのデータの管理はユーザーの責任範囲となります。例: Compute Engine
  • Containers as a Service: 家を購入するとメンテナンスが必要となるから面倒だという場合は、代わりに賃貸住宅を選択できます。基本的な設備は揃っていますが、自分で家具を用意して自分用のスペースを作れます。コンテナを使用すると、コンテナ化されたアプリケーションを導入できます。それにより、基盤となるオペレーティング システムを気にすることなく、スケーリングとランタイムを管理できます。例: Google Kubernetes Engine(GKE)
  • Platform as a Service(PaaS): 住居空間にどのように家具を設置するかに関心がない場合は、家具付きの家を借りることができます。PaaS を利用すると、独自のコードをデプロイできますが、サーバー管理とスケールアップはクラウド プロバイダに任せることになります。例: App EngineCloud Run
  • Functions as a Service: 自宅から離れて小さな専用作業場所だけが欲しい場合は、共用ワークスペースの席を借りることができます。これと同様、FaaS を使用することで、特定のタスクを実行する小さなコードまたは関数をビルドしてデプロイできます。クラウド プロバイダは、関数の実行時に必要に応じてスケールを追加します。例: Cloud Functions
  • Software as a Service: ここで、完成した家(賃貸物件または購入物件)に引っ越しても、清掃や芝刈りなどの維持費を負担する必要がありますケースを想像してみましょう。SaaS はこれと同じです。ユーザーは、クラウド プロバイダによって管理、維持、保護される特定目的用のアプリケーション一式を使用するために料金を支払いますが、自身のデータは自身で責任をもって管理します。例: Google Workspace

適切なサービスを選択する(長所と短所)

クラウド IaaS、PaaS、SaaS のいずれがビジネスに適しているかについては、サービスモデルごとに異なる長所と短所があります。

また、重要なのは、3 つすべてが相互に排他的ではなく、1 つのサービスモデルしか選択できないわけではないということです。ニーズに応じて 1 つを選択することも可能ですが、1 つを別のモデルと組み合わせたり、3 つすべてを組み合わせてより従来型の IT インフラストラクチャとともに使用することもできます。

以下では、モデルごとの最も一般的なメリットとデメリットをいくつか説明します。

IaaS のメリット 

  • インフラストラクチャを最も高度に管理可能
  • オンデマンド スケーラビリティ
  • 高い信頼性のため、単一障害点なし
  • 初期資本支出を削減可能(従量課金制など)
  • プロビジョニングの遅延とリソースの浪費が少ない
  • 開発と製品化までの時間を短縮可能

IaaS のデメリット 

  • ユーザー自身がデータ セキュリティと復旧の責任を負う
  • 現場での構成とメンテナンスが必要
  • クラウドベースのインフラストラクチャでレガシー アプリケーションを保護するのが困難

CaaS のメリット

  • マイクロサービスの実行、管理、スケーリングに最適
  • 開発の合理化により、製品化までの時間を短縮可能
  • ネットワークとアプリケーション コンポーネントの管理と構成を強化可能
  • ハイブリッド クラウドやマルチクラウドなどの環境間でのワークロードのポータビリティを向上可能
  • パフォーマンス モニタリングとコンテナ オーケストレーションが実装済み

CaaS のデメリット

  • 一部の CaaS ソリューションでは、クラウド サービス プロバイダに応じて対応言語が制限されている
  • CaaS を使用すると、OS と同じカーネルを共有するため、コンテナのセキュリティ リスクが高まる可能性がある(ただし、VM よりも安全であると考えられます)

PaaS のメリット

  • 包括的で使いやすい開発プラットフォームに即座にアクセス可能
  • インフラストラクチャのメンテナンスと保護はクラウド サービス プロバイダが担う
  • どのデバイスからでもインターネット接続により利用可能
  • オンデマンド スケーラビリティ

PaaS のデメリット 

  • アプリケーション スタックが最も関連性の高いコンポーネントに制限されることがある
  • クラウド サービス プロバイダによっては、ベンダー ロックインの問題が生じる場合がある
  • 運用とインフラストラクチャ全体の管理性が低下する
  • カスタマイズできる範囲が限定的

SaaS のメリット

  • 設定と使用が簡単
  • プロバイダがハードウェアからソフトウェアまで、あらゆるものを管理、保守する
  • ソフトウェアはどのデバイスからでもインターネット接続によりアクセス可能

SaaS のデメリット

  • インフラストラクチャやセキュリティ対策を一切制御できない
  • 既存のツールやアプリケーションとの統合が問題になる
  • クラウド サービス プロバイダによっては、ベンダー ロックインの問題が生じる場合がある
  • カスタマイズがほとんど、またはまったくできない