Platform as a Service(PaaS)とは
Platform as a Service(PaaS)はクラウド コンピューティング サービス モデルの一種で、アプリを開発、デプロイ、実行、管理するための柔軟でスケーラブルなクラウド プラットフォームを提供します。PaaS は、デベロッパーがアプリケーション開発に必要なものをすべて提供します。オペレーティング システムや開発ツールの更新、ハードウェアのメンテナンスを気にする必要はありません。その代わりに、PaaS 環境全体(プラットフォーム)は、サードパーティのサービス プロバイダによってクラウド経由で提供されます。
PaaS を使用すると、新しいカスタム アプリケーションの開発やホスティングを行うために、ハードウェアやソフトウェアをインストールする手間とコストをかけなくて済みます。開発チームは、インフラストラクチャ、開発ツール、オペレーティング システムなど、カスタムアプリの構築に必要なものすべてを従量課金制で利用する権利を購入するだけです。
その結果、開発者はアプリケーション コードに集中できるようになり、よりシンプルで高速かつ安全なアプリ開発が可能になります。
Platform as a Service の定義
Platform as a Service(PaaS)は、サーバーやオペレーティング システムからすべてのネットワーキング、ストレージ、ミドルウェア、ツールなど、開発者がアプリケーションをビルド、実行、管理するために必要なすべてを含む完全なクラウド環境です。
PaaS の仕組み
PaaS ソリューションは、IaaS や SaaS のサービスモデルとは違ってアプリケーションやソフトウェアの開発に固有のもので、一般的に以下のものが含まれます。
- クラウド インフラストラクチャ: データセンター、ストレージ、ネットワーク機器、サーバー
- ミドルウェア ソフトウェア: オペレーティング システム、フレームワーク、開発キット(SDK)、ライブラリなど
- ユーザー インターフェース: グラフィカル ユーザー インターフェース(GUI)、コマンドライン インターフェース(CLI)、API インターフェース、3 つすべての場合もある
Platform as a Service は通常、デベロッパーがインターネット経由でアクセスできる安全なオンライン プラットフォームとして提供され、どこからでもプロジェクトの作業に取り組めるほか、チームの他のメンバーと自由に共同作業ができます。アプリケーションは PaaS システムで直接ビルドされ、ビルドが完了するとすぐにデプロイできます。
PaaS のメリット
独自の環境の運用、保守と比較して、PaaS が持つ最も一般的なメリットは次のとおりです。
製品化までの時間を短縮
難しい作業は必要ありません。開発者は、ビルドや管理の必要がない完全なアプリケーション開発プラットフォームに即座にアクセスできるため、開発とデプロイの時間を確保できます。
少ないメンテナンス
社内用独自アプリケーション スタックは、特にアップグレードの際に煩わしさが付きまといます。PaaS を使用すると、すべてを最新の状態に保つ責任はプロバイダにあるため、お客様のメンテナンスの手間はかかりません。
費用対効果の高い料金
PaaS のリソースはオンデマンドであるため、実際に使用した分だけ料金が発生します。また、PaaS は高度な開発ツールと機能へのアクセスも可能で、完全に購入するには高額になりかねません。
簡単にスケールしたい。
容量の心配はもう不要です。PaaS を利用すると、トラフィックの少ない期間にスケールダウンすることも、予期しない需要の急増に対応するために迅速にスケールアップすることもできます。
柔軟なアクセス
開発チームと DevOps チームは、どこからでも任意のデバイスからインターネット接続を経由して、共有の PaaS サービスやツールにアクセスできます。
共有セキュリティ
PaaS では、プロバイダがインフラストラクチャの保護を担当します。主要な PaaS サービス プロバイダのほとんどは、自社のプラットフォーム上での構築に関するガイドラインとベスト プラクティスも提供しています。
IaaS、PaaS、SaaS の違い
クラウド コンピューティング サービスモデルの 3 つの主要カテゴリは、Infrastructure as a Service(IaaS)、Platform as a Service(PaaS)、Software as Service(SaaS)です。クラウド コンピューティングの各タイプは、公共のインターネットでストレージや仮想化からハードウェアやソフトウェア、アプリケーションに至るまでのフルマネージド リソースを組織や個人に提供します。それぞれのタイプの違いは、どのリソースをお客様が管理し、どのリソースをお客様に代わって管理するかということです。
「サービスとして」は通常、サードパーティのクラウド サービス プロバイダが完全に管理するクラウド コンピューティング サービスを指します。何を管理したいか(そして何を管理しないか)を理解することは、クラウドへの移行において最も重要なステップの 1 つです。
選択したサービスタイプに応じて、サービス プロバイダはコンピューティング スタックのさまざまな要素の管理に責任を負います。
- IaaS: サービス プロバイダは、コンピューティング、ストレージ、ネットワーキング、仮想化などのインフラストラクチャ サービスへのオンデマンドでのアクセスを提供します。お客様は、仮想マシン、オペレーティング システム、ミドルウェア、アプリ、データなど、すべてを管理しますが、データセンター インフラストラクチャを独自に保守または更新する必要はありません。
- PaaS: サービス プロバイダは、アプリケーション開発に必要なハードウェアとソフトウェアのリソースをすべて提供し、管理します。コードの記述とすべてのアプリとデータの管理はお客様が行いますが、ソフトウェア開発プラットフォームの管理や保守を行う必要はありません。PaaS は「スタック」よりさらに上位のリソースを管理し、デベロッパーと IT 運用チームの運用上の負担をさらに軽減します。
- SaaS: サービス プロバイダは、ハードウェア インフラストラクチャからアプリケーション自体に至るまでのアプリケーション スタック全体をインターネット経由で提供し、管理します。すべてのコンポーネントに対する更新、バグ修正、その他の一般的なメンテナンスはすべて、プロバイダによって処理されます。お客様に必要なのはアプリに接続するだけです。
関連プロダクトとサービス
Google Cloud Run は、コンテナベースの開発用のサーバーレスでフルマネージドの PaaS ソリューションで、開発チームはスケーラビリティの高いコンテナ化されたアプリケーションを簡単にビルドして実行できます。Cloud Run を使用することで、デベロッパーはコンテナ インフラストラクチャの開始、スケーリング、管理方法について何も意識する必要はありません。PaaS がすべての処理を行います。その中には、脆弱性スキャン、依存関係分析、ソースの来歴や証明書をサポートするフレームワークなどの組み込み型のセキュリティ ツールも含まれています。
Cloud Run では、好きな言語でコードを記述し、インフラストラクチャ管理を抽象化し、アプリを数秒でデプロイできます。また、Cloud Run はトラフィックに応じてゼロから自動的にスケールアップまたはスケールダウンを行い、使用したリソース量にのみ正確に課金されます。