FE EXAM

PaaS(Platform as a Service)

アプリケーションの開発・実行環境(プラットフォーム)をサービスとして提供する形態。

DIAGRAM
事業者が管理
利用者が管理

PaaS では OS・ミドルウェア・実行環境までを事業者が管理し、利用者はアプリとデータを管理します。

利用者が管理事業者が管理アプリケーション利用者ミドルウェア・ランタイム事業者OS事業者仮想化事業者サーバ・ストレージ・ネットワーク事業者管理の境界
解説

📌
PaaSとは

事業者が用意した土台の上にアプリを載せる自分のアプリプラットフォームOS・ランタイム・DB

PaaS(パース、Platform as a Service = サービスとしてのプラットフォーム)とは、アプリを開発・実行するための土台をサービスとして提供する形態のことです。ここでいう土台(プラットフォーム)とは、OS、プログラムを動かすための言語ランタイム(=プログラムを実行する仕組み)、データベース、ミドルウェアなどをまとめたものです。

身近な例で考えると、調理器具と火がそろったレンタルキッチンのようなものです。コンロや鍋(土台)は用意されているので、利用者は料理(自分のアプリ)を作ることだけに集中できます。

PaaS は SaaS と IaaS の中間に位置します。完成品をそのまま使う SaaS と違い、自分でアプリを作れます。一方で、土台の準備や保守は事業者がやってくれるため、IaaS よりも手軽です。

📌
提供範囲

利用者が管理事業者が管理自分のアプリ(コード)データミドルウェアランタイム・DBOSインフラ

PaaS では、事業者が OS・ミドルウェア・実行環境までをまとめて用意します。利用者はその上に自分のアプリを置いて動かすだけです。

それぞれの担当範囲を整理すると次のようになります。
事業者が管理:OS、ミドルウェア、言語ランタイム、データベースなどの土台と、その下の物理インフラすべて
利用者が管理:自分が書いたアプリ(コード)と、そのアプリが扱うデータ

これにより、利用者はサーバの構築やOSの更新といったインフラ管理から解放されます。上の図解の境界線を見ると、SaaS よりは利用者の範囲が広く(アプリが利用者側)、IaaS よりは狭い(OSは事業者側)ことが分かります。

📌
代表的サービス

アプリを置けばすぐ動く実行環境HerokuApp EngineBeanstalkApp Service

PaaS の代表的なサービスには次のようなものがあります。
Heroku:書いたコードを置くだけで公開できる老舗の PaaS
Google App Engine:Googleが提供するアプリ実行環境
AWS Elastic Beanstalk:AWS上でアプリを簡単にデプロイ・運用できる仕組み
Azure App Service:MicrosoftのWebアプリ向けプラットフォーム

いずれも「アプリを置けば、土台はすべて事業者が面倒を見てくれる」点が共通しています。開発者はサーバの設定よりもアプリ作りに集中できます。

アプリミドルウェアOS仮想化サーバ
PaaS はアプリだけ利用者

📌
なぜPaaSを使うとアプリ開発が速くなるのか

IaaSの場合OS設定DBインストールランタイム設定…やっとアプリPaaSの場合はじめからアプリ開発だけに集中PaaS は土台の準備を省いてすぐ開発に入れる

PaaS を使うとアプリ開発が速くなる理由は、「土台の準備をまるごとスキップできる」からです。

IaaS(仮想マシンを借りる形態)でアプリを公開しようとすると、次のような手順を自分でこなす必要があります。
OSのインストールと設定(セキュリティ設定・ユーザー管理など)
言語ランタイムの導入(JavaやPythonなど、プログラムを動かすための仕組み)
データベースのインストールと設定(データを記録・管理する仕組み)
・その上でやっとアプリのコードを書いて公開

PaaS ではこれらの土台がすべて用意済みです。開発者はコードを書いて「デプロイ(=サービスとして公開する操作)」するだけで、アプリをすぐ動かせます。また、事業者がOS のセキュリティ更新を自動でやってくれるため、セキュリティ管理の手間も大幅に減ります。アイデアをすぐ形にしたい、開発スピードを重視したい場合に PaaS が選ばれるのはこのためです。

📌
PaaSで「できないこと」と向かない用途

さわれる範囲:自分のアプリとデータのみさわれない範囲(事業者が管理)OS種類・ミドルウェアの設定・サーバスペックの細部IaaSなら自由に変更できるがPaaSでは制限あり

PaaS は便利な反面、事業者が決めた土台の範囲内でしか使えないという制限があります。自由度の高さでは IaaS に劣ります。

PaaS が向かないケースには次のようなものがあります。
特定のOS・バージョンを指定したい:PaaS では事業者が選んだOSしか使えないことが多い
OSやミドルウェアを細かくカスタマイズしたい:土台の設定は事業者まかせで変更できない
特殊なソフトウェアを組み込む必要がある:PaaS が対応していない場合はIaaSを使う必要がある

なぜこの制限があるのか。事業者が土台を統一管理するからこそ、セキュリティ更新や保守を自動化できます。土台を自由に変えさせてしまうと、管理コストが跳ね上がり「手軽に使えるPaaS」の利点が失われます。手軽さと引き換えに、自由度の一部を事業者に預けるのが PaaS の設計思想です。自由度が最優先なら IaaS を選ぶ、というのが使い分けの基本です。

📝
練習問題

Q1. PaaS の説明として最も適切なものはどれか。

Q2. PaaS において、利用者が管理する範囲はどれか。

Q3. 次のうち PaaS の代表的なサービスはどれか。

関連コンテンツ