サービスとしてのプラットフォーム(PaaS)とは?

サービスとしてのプラットフォーム(PaaS)ベンダーは、アプリケーションを構築および実行するためのクラウドベースのプラットフォームを提供します。

学習目的

この記事を読み終えると、以下のことができるようになります。

  • PaaSの定義
  • PaaSの長所と短所について
  • PaaSとサーバーレスコンピューティングを比較

記事のリンクをコピーする

サービスとしてのプラットフォーム(PaaS)とは?

Platform as a Service(PaaS)モデルでは、開発者は基本的に、開発ツール、インフラストラクチャ、およびオペレーティングシステムをクラウドプロバイダーに依存して、アプリケーションの構築に必要なものをすべてレンタルします。これは、クラウドコンピューティングの3つのサービスモデルの1つです。PaaSはWebアプリケーション開発を大幅に簡素化します。開発者の観点からは、すべてのバックエンド管理は舞台裏で行われます。PaaSはサーバーレスコンピューティングといくつかの類似点を持っていますが、それらの間には多くの重大な違いがあります。

クラウドコンピューティングの3つのサービスモデルとは?

SaaS、PaaS、IaaSのサービスモデル

クラウドコンピューティングの3つのモデルは、PaaS、SaaS(サービスとしてのソフトウェア)、およびIaaS(サービスとしてのインフラストラクチャ)です。IaaSはクラウドベンダーが管理するクラウドコンピューティングインフラストラクチャ(サーバー、ストレージなど)を指し、SaaSはクラウドでホストされ、SaaSベンダーが管理する完全なアプリケーションを指します。SaaSの顧客が家の賃貸人とする場合、PaaSの顧客は、所有者がツールと機器を継続的にメンテナンスおよび修理している場合に、家を迅速に建てるために必要なすべての重機と動力工具を借りている人のように作用します。

PaaSを、内部でホストされている開発環境と比較する場合は?

PaaSは任意のインターネット接続を介してアクセスできるため、Webブラウザーでアプリケーション全体を構築できます。開発環境はローカルでホストされていないため、開発者は世界中のどこからでもアプリケーションに取り組むことができます。これにより、地理的に分散したチームが共同作業を行うことができます。また、開発者は開発環境をあまり制御できませんが、オーバーヘッドははるかに少なくなります。

PaaSには何が含まれていますか?

PaaSベンダーに含まれる主な製品は次のとおりです:

  • 開発ツール
  • ミドルウェア
  • オペレーティングシステム
  • データベース管理
  • インフラストラクチャ

異なるベンダーには他のサービスも含まれる場合がありますが、これらは中核のPaaSサービスです。

開発ツール

PaaSベンダーは、ソースコードエディター、デバッガー、コンパイラー、その他の不可欠なツールなど、ソフトウェア開発に必要なさまざまなツールを提供しています。これらのツールは、フレームワークとして一緒に提供される場合があります。提供される特定のツールはベンダーによりますが、PaaSには、開発者がアプリケーションを構築するために必要なものすべてが含まれている必要があります。

ミドルウェア

サービスとして提供されるプラットフォームには通常、ミドルウェアが含まれているため、開発者が自分でビルドする必要はありません。ミドルウェアは、ユーザー向けのアプリケーションと機械のオペレーティングシステムの間に位置するソフトウェアです。たとえば、ミドルウェアは、ソフトウェアがキーボードとマウスからの入力にアクセスできるようにするものです。ミドルウェアはアプリケーションを実行するために必要ですが、エンドユーザーはそれと対話しません。

オペレーティングシステム

PaaSベンダーは、開発者が作業し、アプリケーションを実行するオペレーティングシステムを提供およびメンテナンスします。

データベース

PaaSプロバイダーはデータベースを管理およびメンテナンスします。通常は、開発者にデータベース管理システムも提供します。

インフラストラクチャ

PaaSは、クラウドコンピューティングサービスモデルにおけるIaaSの次の層であり、IaaSに含まれるすべてのものもPaaSに含まれています。 PaaSプロバイダーは、サーバー、ストレージ、物理的なデータセンターを管理するか、IaaSプロバイダーから購入します。

SaaS、PaaS、IaaSと、クラウドのピラミッド

開発者がPaaSを使用する理由とは?

市場投入までの時間を短縮

PaaSは、開発者が独自のプラットフォームとバックエンドインフラストラクチャを構築、構成、およびプロビジョニングする必要がある場合に比べて、迅速にアプリケーションを構築するために使用されます。 PaaSで必要なのは、コードを記述してアプリケーションをテストするだけで、残りはベンダーが処理します。

1つの環境で開始から終了まで

PaaSにより、開発者はアプリケーションをすべて同じ環境で構築、テスト、デバッグ、リリース、ホスト、および更新できます。これにより、開発者はWebアプリケーションがリリースされる前にホストされているように適切に機能することを確認でき、アプリケーション開発のライフサイクルが簡素化されます。

価格

PaaSは、多くの場合、IaaSを活用するよりも費用対効果が高くなります。 PaaSの顧客は仮想機械を管理およびプロビジョニングする必要がないため、オーバーヘッドが削減されます。さらに、一部のプロバイダーには従量課金制があり、ベンダーはアプリケーションで使用されるコンピューティングリソースに対してのみ課金し、通常は顧客のお金を節約します。ただし、各ベンダーの価格構成はわずかに異なり、一部のプラットフォームプロバイダーは月額定額料金を請求します。

ライセンスの容易さ

PaaSプロバイダーは、オペレーティングシステム、開発ツール、およびプラットフォームに含まれるその他のすべてのライセンスを処理します。

PaaSを使用することの潜在的な欠点とは?

ベンダーロックイン

アプリケーションはベンダーのツールを使用して、特にプラットフォーム用に構築されているため、PaaSプロバイダーの切り替えが難しくなる場合があります。各ベンダーには、異なるアーキテクチャ要件があります。異なるベンダーは、アプリケーションの構築と実行に使用される同じ言語、ライブラリ、API、アーキテクチャ、またはオペレーティングシステムをサポートしていない場合があります。ベンダーを切り替える場合、開発者はアプリケーションを再構築するか、大幅に変更する必要がある可能性があります。

ベンダーの依存関係

PaaSベンダーの変更に伴う労力とリソースにより、企業は現在のベンダーに依存するようになる可能性があります。ベンダーの内部プロセスまたはインフラストラクチャの小さな変更は、古い構成で効率的に実行するように設計されたアプリケーションのパフォーマンスに大きな影響を与える可能性があります。さらに、ベンダーが価格設定モデルを変更すると、アプリケーションの運用コストが突然高くなる可能性があります。

セキュリティとコンプライアンスの課題

PaaSアーキテクチャでは、外部ベンダーはアプリケーションのデータのほとんどまたはすべてを、そのコードをホストするとともに保存します。場合によっては、ベンダーは、さらに第三者であるIaaSプロバイダーを介してデータベースを実際に保存する場合があります。ほとんどのPaaSベンダーは強力なセキュリティを備えた大企業ですが、これにより、アプリケーションとそのデータを保護するセキュリティ対策を完全に評価およびテストすることが難しくなります。さらに、厳格なデータセキュリティ規制を順守する必要がある企業の場合、追加の外部ベンダーの順守を検証することで、市場参入へのハードルが高くなります。

サービスとしてのプラットフォームはサーバーレスコンピューティングの違いとは?

PaaSとサーバーレスコンピューティングはどちらも似ており、開発者が心配する必要があるのはコードの記述とアップロードだけで、ベンダーはすべてのバックエンドプロセスを処理します。ただし、2つのモデルを使用する場合、スケーリングは大きく異なります。サーバーレスコンピューティング(FaaS)を使用して構築されたアプリケーションは自動的にスケーリングされますが、PaaSアプリケーションはそうするようにプログラムされていない限りスケーリングされません。起動時間も大きく異なります。サーバーレスアプリケーションはほぼ瞬時に起動および実行できますが、PaaSアプリケーションは従来のアプリケーションに似ており、ユーザーがすぐに利用できるようにするために、ほとんどの時間、または常に実行している必要があります。

もう1つの違いは、サーバーレスベンダーは、PaaSベンダーが提供するような開発ツールやフレームワークを提供しないことです。そして最後に、価格設定により2つのモデルが分離されます。 PaaSの課金は、サーバーレスコンピューティングほど正確ではありません。サーバーレスコンピューティングでは、機能のそれぞれのインスタンスが実行される秒数または秒の一部に料金が分割されます。