PaaSとは

PaaS(Platform as a Service:パース)とは、アプリケーションの実行や開発に必要な「プラットフォーム(土台となる環境)」を、インターネット経由で提供するクラウドサービスの形態です。 IaaSがインフラ(仮想サーバーやネットワーク)のみを提供するのに対し、PaaSはインフラに加えて、オペレーティングシステム(OS)、ミドルウェア、データベース管理システム、開発ツール、ランタイム環境などをセットにして提供します。 ユーザーは、サーバーの構築、OSのパッチ適用、ミドルウェアのインストールといった煩雑なインフラ管理作業から解放され、自社のビジネス価値の源泉である「アプリケーションの開発とデータの管理」にのみ専念できるようになるのが最大の特徴です。 AWSにおける代表的なPaaSには、AWS Elastic Beanstalkや、リレーショナルデータベース環境を提供するAmazon RDSなどがあります。
具体例
PaaSは「調理器具と食材が揃った貸しキッチン(シェアキッチン)」に例えることができます。
- 貸しキッチンの例:キッチンの運営者(AWS)は、ガスコンロ、オーブン, 冷蔵庫、水道などの設備(インフラとOS)を完璧に整備し、いつでも使える状態で提供してくれます。さらに、包丁や鍋、基本的な調味料(ミドルウェアやランタイム)も用意されています。
- ユーザーの役割:利用するシェフ(開発者)は、キッチン設備のメンテナンスやガス管の修理(OSのパッチ当てやサーバー管理)を気にする必要はありません。自分たちの独自のレシピ(アプリケーションコード)と特別な食材(データ)を持ち込むだけで、すぐに料理(サービス提供)を始めることができます。
もう少し詳しく
PaaSを導入することで、企業はアプリケーションの市場投入までの時間(Time to Market)を劇的に短縮することができます。開発チームは「サーバーのプロビジョニング」や「OSのセキュリティアップデート」「データベースのバックアップ設定」といった付加価値を生まない作業(トイル)に時間を奪われることがなくなります。 また、PaaSの多くはオートスケーリングや高可用性の機能を内包しているため、トラフィックが増加した際にも、プラットフォーム側が自動的にリソースを拡張して対応してくれます。
一方で、PaaSにはトレードオフも存在します。提供される環境(OSのバージョンやサポートされるプログラミング言語のランタイムなど)はクラウドプロバイダーが決定するため、IaaSほどの完全な自由度はありません。特殊な設定が必要なレガシーシステムなどは、PaaS環境では動作しない場合があります。 AWSの責任共有モデルにおいては、PaaSの場合、プロバイダー(AWS)が物理インフラだけでなく、OSのパッチ適用、ネットワークのファイアウォール設定(基盤部分)、データベースのマイナーバージョンアップなども責任を持って管理します。ユーザーの責任範囲は主に「アプリケーションコード」と「取り扱うデータ」に限定されます。
試験でのポイント
CLF-C02試験において、PaaSは「開発者がインフラの管理(OSのパッチ適用やプロビジョニングなど)を気にせず、アプリケーションのデプロイと管理に集中できるサービスモデル」として出題されます。 「インフラストラクチャの管理負担を軽減したい」という要件が出た場合、IaaSよりもPaaS(またはSaaS)が適切な選択肢となります。 特に、「Amazon RDS」や「AWS Elastic Beanstalk」がPaaSの代表例であることを覚えておきましょう。たとえば「データベースのバックアップやOSのパッチ適用をAWSに任せたい場合、EC2(IaaS)上のDBとRDS(PaaS)のどちらを選ぶべきか」という問題では、運用負荷の低いRDSが正解となります。
関連する用語
インフラのみを提供する「IaaS」や、完成されたソフトウェアを提供する「SaaS」との管理範囲の違いを明確に区別できるようにしてください。また、AWSがインフラ管理の多くを巻き取る「責任共有モデル」の境界線がPaaSではどこにあるのか(OSレイヤーまでAWSが管理する点)を理解しておくことが重要です。