クラウドサービスの違い(IaaS、PaaS、BaaS、SaaS)

June 01, 2021

programming
article cover
Image by An Tran

Cloud service

クラウドサービスとは、データベース、ストレージ、ソフトウェアといったサービスを各ユーザーのコンピューター上ではなく、サーバーを経由して利用するサービスのこと。 インストールやソフトウェア管理の必要がなく、またサービスによっては異なる端末で利用可能。

従来と違うのは、ソフトウェアを「購入」するのではなく、「サービス」として「利用」する形となる。 近年ではニーズに応じてどんどんと細分化されているが、大きく分けて以下の代表的な4つがある。

IaaS

IaaSはInfrastructure as a Serviceの略で、システムの構築に必要なサーバーやネットワーク、ストレージなどのインフラをサービスとして利用することができる。 今回紹介する4つの中では最も低いレイヤーのサービスになる。従来のホスティングサービスと大きな違いはないが、IaaSではサーバを使用する際に必要なハードウェアのスペックやOSなどをユーザーが自由に選択しカスタマイズすることができる。

代表的なサービスとして、Google Compute EngineやAWS、Microsoft Azure、DigitalOceanなどが挙げられる。

レストランを例にすると、物件の契約に似ている。電気やガスなどのインフラが完璧に整った物件を借りて、あとはユーザーの好きなようにできる。 自分達の負担が多い反面、自由度が高い。

graph

PaaS

PaaSはPlatform as a Serviceの略で、アプリケーションが稼働するためのデータベースやプログラム実行環境などをサービスとして利用することができる。 ユーザーは実行するプログラムさえ用意すれば、それをPaaS上で実行することができる。

我々が普段使っているMacやWindowsのOSもこのPaaSに含まれる。 IaaSに比べると自由度は低くなるが、ユーザーが管理する負担は更に少なくなる。

代表的なサービスとして、Google Apps EngineやAWS、Microsoft Azure、Herokuなどが挙げられる。

AWSやAzureはIaaSの例とかぶっているが、これはAWSやAzureでは非常に多くのサービスが提供されており、組み合わせや使い方次第でPaaSとして使うことも可能なためである。

レストランの例で言えば、PaaSは内装もキッチンも設備が全て整っている物件を借りるのに近い。 自由度は少し劣るものの、食材と従業員だけ持ち込めば、すぐにレストラン経営を始めることができる。

graph

BaaS

BaaSはBackend as a Serviceの略。アプリケーションは大きくバックエンドとフロントエンドに分かれ、利用者から見えない部分の処理をバックエンドと呼ぶ。 BaaSはIaaSとPaaSのサービスに加え、ユーザー管理やプッシュ通知、決済機能などの機能も提供する。 これにより、ユーザーはアプリケーションの中でもフロントエンドの実装に集中することができる。

代表的なサービスとして、FirebaseやAWS Amplifyなどが挙げられる。

レストランの例で言えば、シェフやホールスタッフ等の従業員まで揃っているのに近い。ユーザーはメニューを考えたり、店の宣伝など、そういったフロントエンドのことだけに集中できる。

graph

SaaS

SaaSはSoftware as a Serviceの略で、クラウドで提供されるサービスのことを指す。 クラウドサービスと聞いてイメージするものの多くがおそらくこれに当たる。

GmailやSlack、Adobe CC、Dropbox等々、挙げきれないほどのSaaSが存在し利用している。

レストランの例で言えば、単純に世の中にあるレストランそのものだ。その店の出す料理をお金を払って食べるということ。

graph

まとめ

IaaS > PaaS > BaaS > SaaSの順で自由度が減っていく一方でユーザーはプログラムを作ったり、もしくはサービスを利用することだけに集中することができる。 どれが優れているということではなく、自分達のリソースに合わせて賢く選択して使うことが大事になってくる。

graph


Profile picture

元カメラマン。今はベルリンで働くWEBエンジニア。
スロバキア人の妻とドイツ猫二匹の多国籍家族。