
PaaS(パース)とは 概要や仕組みを5分で入門
こんにちは、クラウドエース編集部です。
アプリ開発の現場において、「今回は PaaS を使おう」といったフレーズを聞いたことがある人も多いのではないでしょうか。
文脈からなんとなくの意味はわかるものの、「 SaaS 」「 IaaS 」など似たような言葉もあり、違いが明確ではないという人もいるかもしれません。
今回は、PaaS とはどんなサービスであるのか、具体的に何ができるのかについてわかりやすく解説していきます。
PaaS とは?
PaaS は「 Platform as a Service 」の略であり、「アプリ開発に必要なプラットフォームをクラウドで提供するサービス」です。
具体的には、サーバーやハードウェア、ネットワーク、OS 、ミドルウェア、データベースなどが含まれます。
PaaS ではアプリ開発に必要な環境がまとめて提供されるため、開発の前段階で必要な環境の準備の手間・コストを大きく削減できるというメリットがあります。
IaaS と PaaS の違い
IaaS とは「 Infrastructure as a Service 」の略で、「情報システムの構築に必要なインフラ環境をクラウドで提供するサービス」です。
具体的には、サーバーやハードウェア、ネットワークなどが提供されます。
IaaS は PaaS よりも提供されるサービスの範囲が狭いものの、その分自由度やカスタマイズ性が高いという特徴があります。
ただし、IaaS を利用するにはシステム環境の構築を行えるような専門知識を持ったインフラエンジニアが必要です。
SaaS と PaaS の違い
SaaS とは「 Software as a Service 」の略で、「これまでパッケージ製品として提供されていた各種ソフトウェアを、クラウドで提供するサービス」です。
具体的には、ビデオ会議ツール、チャットツール、会計ツール、グループウェアなどが挙げられます。
SaaS が PaaS や IaaS と大きく異なる点は、PaaS ・ IaaS はシステム開発に使われることが中心であるのに対して、SaaS は個人の業務効率化向けに提供されているサービスが多いことです。
PaaS のメリット・できること
ここからは PaaS のメリットについて見てみましょう。
アプリケーション開発に専念できる
1 つ目のメリットは、アプリケーション開発に専念できることです。
PaaS を利用すれば、開発に必要な必要なサーバー設置やネットワークの設定などの準備を全て省略できます。
デプロイ後も、サーバーへの負荷に応じたリソースの増減、OS のアップデートなどはクラウド事業者に委任できます。
そのため、アプリの運用中に機能の追加やメンテナンスが必要となった場合も、インフラを気にせずに対応に集中できます。
コスト削減に繋げられる
2 つ目のメリットは、コスト削減に繋げられることです。
先述の通り、PaaS を利用すれば開発に必要なサーバーやハードウェアなどの機器や OS を購入する必要がないため、初期費用を抑えられます。
また、機器を設置するための場所代や、インフラを構築・運用するための人件費の削減にも繋がるでしょう。
加えて PaaS はクラウドで提供されるサービスであるため、利用料金は基本的に従量課金制での請求となります。
使った量だけ支払うことが可能なため、無駄な出費の心配がありません。
さらに、必要な機能・スペックのみを選んで利用できるため、コスト最適化も可能です。
PaaS のデメリット
このように、コスト削減しながらアプリ開発に集中できる PaaS ですが、注意点も存在します。
カスタマイズの自由度が低い
1 つ目は、カスタマイズの自由度が低いことです。
PaaS ではアプリ開発に必要な環境をパッケージとして提供されるため、サーバーの OS 環境やミドルウェアなどを自由に選択することは難しいです。
自由度の高さや柔軟なカスタマイズ性を重視する場合は、IaaS の利用の方が適していると言えるでしょう。
セキュリティに注意が必要
2 つ目は、セキュリティに注意が必要なことです。
PaaS がインターネットを介して提供されるサービスである以上、自社でゼロからシステムを構築するオンプレミスと比較するとセキュリティ面に不安を覚えやすいかもしれません。
また PaaS では、インフラや OS、ネットワークの監視はクラウド事業者が行いますが、その上に構築したアプリケーションに関しては、自社でセキュリティ対策を行う必要があります。
どのようなリスクがあり、どのように対策すべきかを事前に検討しておきましょう。
PaaS の代表的なサービス
続いては、PaaS の代表的なサービスを 2 つ紹介します。
Google App Engine(Google Cloud)
Google App Engine(=GAE)は、Google Cloud が提供する PaaS です。
GAE の特徴は、簡単に開発に取り組めることに加え、高い拡張性・負荷分散処理・セキュリティ性を持つことです。
また、多くのプログラミング言語に対応しており、慣れ親しんだ言語や独自言語を導入して、簡単に構築・デプロイすることができます。
GAE には、指定した言語のアプリを GAE が用意する仮想環境で実行する「スタンダード環境」と「フレキシブル環境」と、仮想マシンの Docker コンテナ内でアプリが実行される「フレキシブル環境」の 2 つが用意されており、用途に合った環境を選択することが可能です。
AWS Elastic Beanstalk(AWS)
AWS Elastic Beanstalk は AWS が提供する PaaS です。
GAE と同程度の豊富な言語や、 Docker コンテナ内でのアプリ実行にも対応しています。
AWS Elastic Beanstalk の特徴としては、CPU 使用率やリクエスト数などをモニタリングできること、データベースが選択可能なことなどが挙げられます。
PaaS の活用事例
最後に、PaaS は具体的にどのように活用されるのかについて、GAE の導入事例から探ってみましょう。
株式会社バンダイナムコスタジオ
株式会社バンダイナムコスタジオでは、GAE 上でゲームアプリ「アイドルマスター ミリオンライブ! シアターデイズ」を開発・運営しています。
それまで IaaS を利用してゲームの開発を行っていたという同社。
しかし開発環境を GAE へ移行することで、インフラ安定のためにエンジニアを割く必要がなくなり、今までよりさらに開発に集中できるようになったとのことです。
株式会社シグナルトーク
株式会社シグナルトークでは、「ダンまつま!~ダンジョンで待ってます!~」というソーシャルゲームを、GAE を駆使することで少人数・低コストでの開発・運用を実現しています。
今や、ソーシャルゲーム開発には数十名~数百名の開発者が携わることも珍しくないと言われていますが、同ゲームの開発基本メンバーは 4 名のみ。
GAE のオートスケール、安定したサーバー、本番環境と同じように動作する環境、エラー通知機能などを活用することで、少数精鋭での開発運用を達成しているとのことです。
まとめ
ここまで、PaaS の概念やできることについて解説してきました。この記事を参考に PaaS を活用して、アプリ開発の効率向上に役立ててみてください。