Azure Managed Service Column <Azure運用コラム>

IaaS,PaaS,SaaS の違いとは?

Category: 入門編

2020.10.08

パブリッククラウドでシステム開発をしようとすると必ず出てくるのがIaaS、PaaS、SaaSという言葉です。サービス提供の範囲や開発方法がそれぞれ異なるため、利用前に各サービスの違いを把握しておく必要があります。

ここでは、それぞれのパブリッククラウドサービスの特徴と、比較軸に沿った違いをご紹介します。

パブリッククラウドの基本的な責任分界点

パブリッククラウドの基本的な責任分界点
パブリッククラウドの基本的な責任分界点

パブリッククラウドは開発者に何を提供するのかという点で呼称が異なり、IaaS(Infrastructure as a Service)、PaaS(Platform as a Service)、SaaS(Software as a Service)の3つに分けられます。

当然ながら、サービス提供者は自分たちが提供しているサービスの範囲しか、トラブルや問い合わせ等に対応する責任を負いません。これを責任分界点と呼び、責任分界点を超えてしまった分に関しては、自社内で解決するか、別途お金を払って対応してもらうことになります。

サービスを選ぶとき、責任分界点のラインまで自社で対応できるかも気を付けておきたいポイントです。管理を司ることが多い、情報システム部を管轄する人たちが常にリソース不足の状態では、とてもトラブル対応はできません。

たとえ、人が足りていても、自社内で相応のレベルのエンジニアを育てるのは難しいといわれます。人数ベースで作業する工数が足りるかと、技術力が足りるかは全く別問題なので、切り分けて検討しましょう。

IaaS・PaaS・SaaSとは?

大きく3つに分けられるパブリッククラウドの特徴とメリット・デメリットをそれぞれご紹介します。サービスによって区切り方が若干異なることもあるので、利用するサービスにどこまで含まれているかはきちんと確認が必要です。

IaaS

IaaS
IaaS

ネットワーク、ハードウェア、OSイメージを提供するサービスです。従来のホスティングサービスに近い位置づけで、仮想サーバーや機材などをクラウドサービスとして提供します。サポート対象外となったOSなど、一部例外を除けば、ある程度どんなサーバーでも借りられるのでリソースの制限を受けません。設定もパラメータさえ決めてしまえれば、初期設定の難易度がそれほど高くないのも特徴です。

メリットはバックアップやネットワーク接続など、基本的なところは準備されているサービスをそのまま利用できます。オンプレミスで構築するとゼロから自分で検討しなければならないところを、クラウドであれば接続済みの環境で構築を進めることができます。

デメリットはその分、管理すべき項目が多く、知識が必要になることです。使いたいミドルウェアなどが自由に使える反面、そのミドルウェア、ソフトウェアが動かせる環境は自分で調べて設定する必要があります。設定がGUIから可能なものもあり、単なるサーバーを設定するよりは難易度は低いですが、それでも設定値を決めていくのは管理者や開発者自身です。

PaaS

PaaS
PaaS

IaaSでも提供しているネットワーク、ハードウェア、OSにミドルウェアまで含んで提供しているのがPaaSです。アプリケーションを稼働させるための構築済みプラットフォームを丸ごと借りるイメージになります。ハード系に強いエンジニアがおらず、ソフト系エンジニアがそろっているところで選択されることも多いです。わかりやすいのはデータベースやプログラムコードのデプロイ環境です。開発者なら誰でも使うサービスを選ぶだけで簡単に使うことができます。

メリットは開発者をアプリケーション開発に集中させられることです。要件が複雑な業務をシステム化していたり、プログラムを試行錯誤したりする方にリソースを割きたい場合などはPaaSが役立ちます。ある程度動く環境を使って開発を始め、本格稼働する前に改めてチューニングして適正化を図ることが可能です。

デメリットはどうしても組み合わせに制限が出てしまうところです。各ミドルウェアの過去バージョンが全てサポートされていなかったり、欲しい組み合わせを設定できなかったりすると、結局PaaSは使えません。

欲しい資材を探してきてIaaSの環境に自分でインストールするしかなくなります。PaaSの環境も選択式で一般的なパターンはほとんど選べますが、イレギュラーなパターンはその組み合わせが選択できるかきちんと確認をしておきましょう。PaaSサービスを選ぶ際は、欲しいミドルウェアの組み合わせができるかで選ぶのも重要です。

SaaS

SaaS
SaaS

アプリケーションまでまとめて提供しているのがSaaSです。敢えていうなら、ネットワークからアプリケーションまで全て提供していることになりますが、ユーザーにそれを意識させません。基本的には提供されているサービスをそのまま使うことになります。

メリットはすぐに利用を開始できることです。画面から初期設定を済ませれば、利用申し込みした日からサービスを利用できます。自分のやりたいことにどうやって使うか整理する必要はありますが、細かいプログラミングは全く必要ありません。

デメリットはカスタマイズがほとんど効かないことです。たとえば自分の会社の既存業務にSaaSのサービスを使おうとすると、サービスに合わせて業務を変える柔軟性が求められます。今までのものをそのまま維持しようとすると、マッチしない部分の対応方法を検討する必要があります。

IaaS・PaaS・SaaSの違い

IaaS、PaaS、SaaSの3つはそれぞれ特徴を持ったサービスですが、誰もが気になるポイントで比較をしてみましょう。

開発の自由度

開発の自由度が高いのはIaaSです。OSの入ったサーバーを借りるイメージになるので、その上にどんなミドルウェアをインストールするのも、何のプログラムを載せるのも自由です。ほとんど制限を受けることなく開発を進めていくことができます。

PaaSになると、ミドルウェアまでセットで提供されます。使いたい環境がサービスとして提供されているのなら、PaaSにしてもそれほど制限を受けることはありません。むしろ簡単に利用できるので開発者には嬉しいケースです。

SaaSは開発する必要がないことがメリットでもあるので、開発の自由度はほとんどありません。カスタマイズを受けてくれるSaaSサービスもありますが、特殊な個別対応扱いとなり、それなりの費用を請求されることもあります。SaaSのメリットを享受するなら、開発はしない方向に持っていくのがベストです。

ユーザー管理の負担度合い

管理コストが少ないのはSaaSです。通常通り使っている限りは、データの破損やプログラムバグはほとんどないといえます。トラブルが少ない分、利用者がイレギュラーな操作をしない限りはスムーズにSaaSを利用することができるでしょう。利用者がシステムの使い方に慣れれば、ほとんど問い合わせが発生することなくSaaSを使っていけるでしょう。

PaaS、IaaSを管理しようとすると、それなりにITの知識が必要となります。特にIaaSは知識自体はオンプレミスでサーバー構築するのと同レベルが必要といっても過言ではありません。設定の仕方や構築の方法によっては環境自体がうまく動かないこともあります。それを自力で調べて直していく力が求められます。

企業であれば情報システム部に近い組織があるはずなので、サーバーやシステムに詳しい人を社内で探すか雇うかしましょう。個人開発であれば詳しい人のサポートを借りる体制を整えるか自分で勉強することが必要です。

コスト面での比較

それぞれでコストのかかるポイントが違うので、一概に比較は難しいですが、コスト算出のポイントを押さえておきましょう。

IaaS、PaaSは使うサービスのライセンスを購入するような感覚で課金されていきます。サーバーの容量、メモリ、CPUなどの性能面に加えて、PaaSであればミドルウェアのライセンス料が載ります。気を付けたいのはネットワークの通信量と、サーバーの容量です。

特にBtoCのアプリケーションやサービスを作る場合、一気に通信量が増えると従量課金となり、想定外の金額がかかることがあります。サーバー容量も過去のデータが積みあがっていくと、どんどん領域を拡大することになるので、ある程度で退避することを考えます。

SaaSはアカウント数で課金されることが多いです。利用ユーザー単位、使用端末単位など課金体系が様々なので、使い方によって金額が変動します。同じ言葉を使っていても考え方がサービスによって少しずつ違うこともあるので、今の利用想定ならいくらか、増えていったときにどうなるのかはしっかりシミュレーションしておきましょう。

おわりに

クラウド上にシステムを構築するといっても、利用できるサービスから構築の方法まで様々な組み合わせが存在します。自分が作りたいシステムが作れるかの目線はもちろん重要ですが、開発リソースやプロジェクトに関わる人のレベルに応じて、利用するものを変える目線を持っておきましょう。

一度システム開発を始めてしまった後、環境を変えるのは難しく、万が一不都合が発生してもなんとかそのまま開発を進めていくケースが多いです。少し時間をかけてでもどのサービスを利用するかは慎重に検討することが重要です。

Tag: IaaS PaaS SaaS

Contactお問い合わせ

お見積もり・ご相談など、お気軽にお問い合わせください。

single.php