Cloud service
クラウドサービスとは、データベース、ストレージ、ソフトウェアといったサービスを各ユーザーのコンピューター上ではなく、サーバーを経由して利用するサービスのこと。 インストールやソフトウェア管理の必要がなく、またサービスによっては異なる端末で利用可能。
従来と違うのは、ソフトウェアを「購入」するのではなく、「サービス」として「利用」する形となる。 近年ではニーズに応じてどんどんと細分化されているが、大きく分けて以下の代表的な4つがある。
IaaS
IaaSはInfrastructure as a Serviceの略で、システムの構築に必要なサーバーやネットワーク、ストレージなどのインフラをサービスとして利用することができる。 今回紹介する4つの中では最も低いレイヤーのサービスになる。従来のホスティングサービスと大きな違いはないが、IaaSではサーバを使用する際に必要なハードウェアのスペックやOSなどをユーザーが自由に選択しカスタマイズすることができる。
代表的なサービスとして、Google Compute EngineやAWS、Microsoft Azure、DigitalOceanなどが挙げられる。
レストランを例にすると、物件の契約に似ている。電気やガスなどのインフラが完璧に整った物件を借りて、あとはユーザーの好きなようにできる。 自分達の負担が多い反面、自由度が高い。
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は内装もキッチンも設備が全て整っている物件を借りるのに近い。 自由度は少し劣るものの、食材と従業員だけ持ち込めば、すぐにレストラン経営を始めることができる。
BaaS
BaaSはBackend as a Serviceの略。アプリケーションは大きくバックエンドとフロントエンドに分かれ、利用者から見えない部分の処理をバックエンドと呼ぶ。 BaaSはIaaSとPaaSのサービスに加え、ユーザー管理やプッシュ通知、決済機能などの機能も提供する。 これにより、ユーザーはアプリケーションの中でもフロントエンドの実装に集中することができる。
代表的なサービスとして、FirebaseやAWS Amplifyなどが挙げられる。
レストランの例で言えば、シェフやホールスタッフ等の従業員まで揃っているのに近い。ユーザーはメニューを考えたり、店の宣伝など、そういったフロントエンドのことだけに集中できる。
SaaS
SaaSはSoftware as a Serviceの略で、クラウドで提供されるサービスのことを指す。 クラウドサービスと聞いてイメージするものの多くがおそらくこれに当たる。
GmailやSlack、Adobe CC、Dropbox等々、挙げきれないほどのSaaSが存在し利用している。
レストランの例で言えば、単純に世の中にあるレストランそのものだ。その店の出す料理をお金を払って食べるということ。
まとめ
IaaS > PaaS > BaaS > SaaSの順で自由度が減っていく一方でユーザーはプログラムを作ったり、もしくはサービスを利用することだけに集中することができる。 どれが優れているということではなく、自分達のリソースに合わせて賢く選択して使うことが大事になってくる。