目次
IaaSやSaas、PaaSといった言葉を聞いたことはありますか?
最近ではカーシェアリングなど自動車関連のサービスを表す用語として「MaaS」が話題に上がることも多くあります。
インターネットの進歩により、多くのサービスはソフトウェア化、クラウド化してきました。そんな時代に誕生する数々のサービスを表す用語として「○○aaS」という言葉が頻繁に使われます。
今回は、ソフトウェア開発に携わるなら必ず出会う「PaaS」や「IaaS」をはじめ、普段の仕事でも利用機会が増えている「SaaS」など、複雑化するサービス様式の用語をご紹介します。
基本知識 クラウド時代に登場した「as a Service」とは
今回紹介する様々な用語に共通する「aaS」の部分は「as a Service」の略で「○○のためのサービス」という意味があります。
単に「サービス」としていますが、基本的にはクラウド上で提供されるソフトウェアを指します。
これらの用語をまとめて「EaaS (Everything as a service)」と呼ぶこともあります。
クラウドを活用したサービスは、業種の壁を超えて急速に増えています。そのため、「○○aaS」という用語も、A~Zまですべてあるといわれており、「DBaaS(Database as a Service)=データベース管理サービス」のように複数のアルファベットを用いた用語もあります。
すべてを把握しておく必要はありませんが、これからのソフトウェア開発、クラウドツールの導入や活用に欠かせない、代表的な「as a Service」を紹介します。
社内で「クラウドサービスを開発・導入しよう!」という流れが来た時に、SaaSを利用すべきか、IaaSを利用すべきかなどが把握できれば、サービスを開発・導入がスムーズになります。
IaaS (Infrastructure as a Service)
IaaSは、「Infrastructure as a Service」の略で、「イアーズ」と読みます。Infrastructureとはインフラのことで、「アプリケーションを開発・利用するためのインフラとしてのサービス」を意味します。
具体的には仮想サーバーやハードディスク、OSはネットワークをクラウド上で提供するサービスです。
IaaSのメリット
IaaS最大のメリットは、カスタマイズ性が非常に高いことです。インフラとして提供されるサービスであるため、余計な機能が備わっておらず、自社が必要とする機能を自由に実装できます。
簡単に例えると、IaaSは土地のレンタルにあたります。土地にある制限は広さだけで、その広さの中でどのような建物を建てるのかは自由です。
50階建てのビルを建てることもできれば、地下3階まで自由に設計できます。土地の範囲を出なければ、すべてを思い通りに作ることができます。
類似したサービスがない場合や、特殊な機能を必要とする場合は、IaaSを用いることで実現できるでしょう。
IaaSのデメリット
IaaSはカスタマイズ性が高いというメリットがある一方、サービスとして完成させるためのハードルが高いというデメリットがあります。
IaaSで提供されるものは、OSはハードウェアなどバックエンド側の機能なので、サービス開発には様々な知識が必要になります。
家の例を続けると、何もない土地に建物を建てるための建築知識や素材が必要になります。
IaaSのサービス例
・AWS(Amazon Web Services)
EC世界最大手のアマゾンが提供するAWSは、急速に利用が広がり主流になりつつあるIaaSです。
初期費用が無料で、様々なプランから実現したいサービスに最適なプランを選ぶことができます。振興ゲーム系企業の大半はAWSを利用しているといわれています。
また、AWSは様々なクラウドサービスの集合体であり、IaaS以外のサービスも提供しています。
・Google Cloud Platform
Google Cloud Platformの特徴として、Googleが利用しているデータベースと同じ「分散型データベース」を利用できることです。このデータベースはビックデータを素早く処理できる特徴があります。
そのため、ビックデータ処理が必要なサービスを開発する際には、Google Cloud Platformが向いています。
PaaS(Platform as a Service)
PaaSは、「Platform as a Service」の略で、「パーズ」と読みます。直訳すると「プラットフォームとしてのサービス」となります。
プラットフォームには様々な意味がありますが、ここでは「環境」や「枠組み」と訳したほうがわかりやすいかもしれません。
特定の目的を達成するために必要な基本機能がすでに用意されており、自社に必要なプログラムを作成するだけでサービスを提供することができます。
PaaSのメリット
インフラだけを提供するIaaSと異なり、PaaSには、プラットフォームとして最低限必要な機能が揃っています。そのため、IaaSよりも少ない開発コスト、開発期間でサービスを提供することができます。
IaaSを土地を借りることに例えましたが、PaaSは家を借りることと似ているかもしれません。建物を建てる必要はなく、家具を購入すればすぐに住むことができます。また、家具や壁紙を自由にカスタマイズして、自分にとって住みやすい環境にもできます。
PaaSのデメリット
PaaSはプラットフォームとしてすぐに利用できる機能を備えているため、IaaSほどカスタマイズができません。利用するプラットフォームの仕様に準じて開発を行う必要があります。
すでに建てられた家の間取りを変えることが難しいように、完全に自社のシステム要件を満たすソフトウェアが必要な場合はPaaSよりもIaaSのほうが適しています。
PaaSのサービス例
・Amazon CloudSearch
アマゾンは前述のとおり、AWSというIaaSを提供しています。しかし、AWSには様々なサービスが含まれており、中にはPaaSとしての役割を果たすものモあります。
その一つがAmazon CloudSearchで、Webサイトやアプリケーションに検索機能を追加するためのプラットフォームです。フリーテキストの検索はもちろん、キーワード候補の自動入力の機能も用意されており、キーワードのランク付けなどもカスタマイズすることができます。
・Google App Engine
Googleが提供するGoogle Cloud Platformの中にも、様々なPaaSが提供されています。
その一つがGoogle App Engineで、JAVAやPython、PHPといった様々なプログラミング言語での開発環境を提供してくれます。
開発をスムーズに進めるための開発キット、APIも豊富にそろっており、アプリケーション開発の現場では非常によく使われるPaaSです。
SaaS(Software as a Service)
SaaSは、「Software as a Service」の略で、「サーズ」と読みます。その名の通り、「サービスを提供するために必要なソフトウェア」を提供してくれます。
IaaSやPaaSはエンジニアリングが必要なサービスですが、SaaSはほとんど完成されたソフトウェアを提供してくれるため、最も身近なサービス形態です。
SaaSはクラウド上で動くサービスであるため、データをインターネット上に保存し、どの端末でアクセスしても、同じように利用できます。
SaaSのメリット
IaaSやPaaSとSaaSの最大の違いは、基本的に開発、エンジニアリングが不要ということです。すでに完成されたソフトウェアを利用するため、SaaSの多くは会員登録だけで利用できます。
もちろん、SaaSを利用するにあたってハードウェアやソフトウェアの専門知識はほとんど不要です。
IaaSを土地、PaaSを家とするなら、SaaSは家具付き賃貸です。契約したその日からすぐに、何の準備もなく済み始めることができます。
SaaSのデメリット
SaaSは完成されたソフトウェアとして提供されるため、自由にカスタマイズできる箇所はほとんどありません。
多くのユーザーが同じサービスを使うことを想定としているため、それが自社に最適なサービスかどうかはわかりません。
SNSもSaaSの一種ですが、Twitterのツイート本文を1000文字にしたいと思ってもできないように、提供されるソフトウェアの仕様に制限されてしまいます。
SaaSのサービス例
・Gmail
Gmailは最も普及しているSaaSの一例です。クラウド上で動作するGmailは、アカウント情報さえ分かっていればどの端末でも同じものを使うことができます。
TwitterやFacebookなどのSNSも代表的なSaaSです。
・CRMやMA
Salesforceが提供するCRM、HubSpotが提供するMAもSaaSの一例です。
これまで、企業が取り扱う情報はセキュリティや管理体制の問題から、ローカル(社内のみ、特定のデバイスのみ)で管理することが一般的でした。
しかし、近年利用が広がっているCRMやMAは、クラウド上にデータを保管し、営業が外出中にスマートフォンで操作したりといったことも可能です。
MaaS(Mobility as a Service)
MaaS(マース)は、「Mobility as a Service」の略で、直訳すると「移動するためのサービス」です。
よりわかりやすく日本語にすると「個人の移動を最適化するための様々な移動手段に対して、利便性・利用性を高めるためのサービス」といえます。
具体的には、カーシェアリングや自動運転、宅配・輸送・物流といったサービスを提供しています。
MaaSは行政が積極的に後押ししていることもあり、総務省のホームページに次のような記載があります。
電車やバス、飛行機など複数の交通手段を乗り継いで移動する際、それらを跨いだ移動ルートは検索可能となりましたが、予約や運賃の支払いは、各事業者に対して個別に行う必要があります。
このような仕組みを、手元のスマートフォン等から検索~予約~支払を一度に行えるように改めて、ユーザーの利便性を大幅に高めたり、また移動の効率化により都市部での交通渋滞や環境問題、地方での交通弱者対策などの問題の解決に役立てようとする考え方の上に立っているサービスがMaaSです。
引用元:総務省
BaaS(Backend as a service)
モバイルアプリなどで、バックエンド機能を活用するためのサービスをBaaS(Backend as a service)といいます。バースと読みます。
バックエンド機能とは、ユーザーがアプリを利用していない状態で動作する機能です。例えば、スマートフォンのブラウザアプリを閉じても、次に開いた時には以前見ていたページが表示されていると思います。これは、ブラウザアプリがバックエンドで機能し、データを保持していたためです。
BaaSはプッシュ通知の配信や会員情報の保存や認証、ソーシャルメディア連携等で活用されています。
具体的なサービスには、NIFTYが提供するアプリ開発ソフト「Cloud mobile backend」などがあります。
DaaS(Desktop as a Service)
DaaS(ダース)は、「Desktop as a Service」の略で、デスクトップ環境を提供するサービスです。
DaaSを利用すると、家のノートパソコンと会社のパソコンとで同じデスクトップを操作することが可能です。もちろん、すべてのソフトウェアやデータはクラウド上に保管されているため、同じように使うことができます。
DaaSにはいくつかの種類があり、「プライベートクラウドDaaS」と呼ばれるカスタマイズ可能なものから、単にデスクトップを共有する「パブリッククラウドDaaS」まで様々なものがあります。
DaaS には、IBMの「ベアメタル・クラウド」や、AWSの「Amazon WorkSpaces」などがあります。
FaaS(Function as a Service)
FaaS(Function as a Service)は、「機能としてのサービス」を意味し、ある特定の機能や関数を利用することができます。
FaaSでは、サーバーやOSなどのバックエンドを一切気にする必要がありません。プラットフォームを提供するPaaSと似た概念ですが、よりFaaSはより小さな機能単体を表します。
アマゾンが提供する「AWS Lambda」もFaaSの一種で、「Lambda関数」を使って様々な機能を使うことができます。
IaaS、SaaS、PaaSまとめ
今回は、複雑化するサービス様式の用語として、IaaS、PaaS、SaaSをはじめ、MaaSのように最近注目を集め始めたものや、BaaSやFaaSのようにエンジニア向けの用語を紹介しました。
中でもIaaS、PaaS、SaaSの3つは利用機会の多い用語です。新しいソフトウェアを開発するときは、必ずといっていいほど登場するので、それぞれの意味や特徴、メリットとデメリットを把握しておきましょう。
ちなみに、この「○○as a Service」という用語は、2018年10月現在、筆者が調べたものだけでも30個以上あります。
業種や求められる機能によって細分化され、用語が乱立しているため、すべてを覚えておく必要はありません。しかし、こうした用語をステークスホルダー間の共通言語とすることで、スムーズに進行することも確かです。