2018.11.28

オフショア開発

Webサービスの基本!いまさら聞けないSaaS、PaaS、IaaS、BaaS...その違いって何?

最近よく知り合いのエンジニアから「SaaSの企業に転職したんだー」という言葉を聞くようになったので、今更ですがよく聞くSaaS, PaaS, IaaS, mBaaSについてまとめてみました。

それぞれクラウドコンピューティングに関わる言葉ですが、もちろんベトナムでも現在市場は広がっています。

1. そもそもwebサービスってどう動いてるの?

各用語の違いを解説する前に、そもそもwebサービスがどのような構成で動いているのかを知る必要があります。

私たちユーザー側から見えている画面の裏側に、たくさんのシステムが動いています。
これを知ることで、BaaS、PaaSなどの違いがよくわかるようになると思います。

1-1. フロントエンド

皆さんもよく使うECサイトを例にとってみてみましょう。

私たちの目に触れるインターフェース部分、実際にブラウザに映し出されていて、興味のある商品をクリックしたり、カートに入れたりすることができますね。この実際にユーザーの目に触れる部分を「フロントエンド」と呼びます。
「クライアントサイド」と呼ばれることもあります。

HTML、CSS等を使用して作成されており、ブラウザ上で動くものです。
ページに動きをつけるJavaScriptもフロントエンド側の言語です。

ここで使われるプログラミング言語は、基本的にブラウザさえあれば動きます。
つまり、ChromeやFirefoxと、プログラムを書くテキストエディタさえあればある程度のホームページはこのフロントエンドの実装のみで作成することができます。

1-2. バックエンド

ユーザーがボタンをクリックしたりしたときに、その命令を受けて裏側では様々な処理が行われます。
例えば、商品をカートに入れて行くと、各商品の価格を計算したり、在庫状況を取得したりする処理が裏側で走ります。
このような裏側で行われる処理のことを「バックエンド」と呼びます。
「サーバーサイド」と呼ばれることもあります。

サーバーサイドは、PHP, C, Java, Rubyなどのプログラミング言語を使用して書かれています。
サーバーサイドの言語を動かすためには、フロントエンドと違って、実際にサーバーを立てたり、自分のパソコン上で動くように環境のセットアップをしたりする必要があります。

1-3. サーバー、インフラ

そして、そのプログラミング言語が動くための場所が「サーバー」です。
データベースへのアクセス等もサーバーから行われます。

サーバー上にはOSやミドルウェアが乗せられており、それが動作して様々な処理を行なったり、ネットワークへアクセスしたりという動きを行います。
インフラというと、IT業界以外では道路、水道や電気など生活の基盤となるものを指しますが、webアプリケーションを作る上でも、インフラと呼ばれるサーバーやネットワークの基本的な基盤が無いとwebアプリケーションは動きません。

私たちが普段使っているwebアプリケーションは、サーバーなどのインフラ土台があり、そこで動くバックエンドプログラムがあり、そしてユーザーから見えるフロントがあり・・・といった具合に構成されているのです。

2. BaaS、SaaS、PaaS、IaaS...その違いは?

上記のことを理解した上で、早速BaaS、SaaS、PaaS、IaaSの違いを見てみましょう。
みていただいてわかるように、基本的には最初の文字(B,S,P,I)がそれぞれ提供するものを表しているので、わかりやすいと思います。

2-1. Baas/mBaas


引用:Cleverload

Backend as a Service、Mobile Backend as a Service
バックエンドで動くシステムを提供するサービスのことです。

上記で説明したように、webアプリケーションにはフロントエンドとバックエンドがありますが、BaaSはバックエンドの機能群を提供してくれるものとなっています。
クラウドストレージや、プッシュ通知、ファイルマネージャやSNS連携、位置情報サービス、ユーザー管理など、その機能は多岐に渡ります。

ニフティクラウド mobile backendやFirebaseが代表的なBaaSとしてあげられます。
BaaSを使うメリットとしては、複雑で時間のかかるバックエンドの処理を提供してくれるため、バックエンド開発の時間を大幅に短縮できる点があります。
最近はUI/UXの重視がされており、ユーザーが使うデバイスもPC,SP,タブレットなど多岐に渡るため、フロント側の開発に時間をかけたいというニーズがあります。
限られたリソース、コストの中で開発を行うときはBaaSを使用するのが良いでしょう。

2-2. SaaS


引用:milesweb

Software as a Service
ソフトウェアをクラウド上で提供するサービスのことです。
クラウド以前は、アプリケーションをパッケージで購入して、自分のPCにインストールするというのが一般的でした。
SaaSはサービスがクラウド上で提供されており、サービスはプロパイダ側のコンピューターで稼働しているので自分のPCにインストールする必要はありません。

私たちがいつも何気なく使っているGmailや、チャットシステムもSaaSに当たります。
社内で使うグループウェアや、チャットツール、業績管理ツールなど、自分で作るという手もありますが、SaaSで提供されているものを使った方が開発コストがかからないのは間違いありません。

また、SaaSを使う大きなメリットは、クラウド上にあるサービスのため、インターネットさえ繋げられればどこでもアクセスして使用できるサービスが多いという点ではないでしょうか。
この点が従来の買い切り型パッケージソフトと違う店で、SaaSならどのようなPCを使っていてもアカウントさえ持っていればサービスを使用することができます。

2-3. PaaS


Platform as a Serviceのことで、アプリケーションを稼働させるためのプラットフォームをクラウド上で提供するサービスのことです。

アプリケーションを稼働させるためには、サーバー上にOSやバックエンドの開発環境を備えている必要がありますが、その一式を提供してくれるのがPaaSです。
サーバーなどのインフラ基盤に加えて、開発環境などのミドルウェアをセットにしてくれます。

エンジニアがよく使うHerokuやAzure App Serviceが一例ですね。
実際に動くアプリケーションを作るのはユーザーの役目になりますが、PaaSはアプリケーションが動くためのプラットフォームを提供してくれます。

サーバーの知識があんまりないんだけどプログラミングはできる、といった場合によく使われるのではないでしょうか。
PaaSで開発環境を一式準備してくれるのでセットアップの時間が短縮できます。
例えば非エンジニアがWordpressを使ったブログを作成しようとなった時に、最初からWordpress環境がインストールされているサーバーを契約することがありますが、これもPaaSと言えます。

2-4. IaaS


Infrastructure as a Serviceのことで、システムを構築・稼働させるための基盤そのものを提供するサービスのことです。
つまり、サーバーや仮想マシン、ネットワークなどの基本的なインフラが提供されます。

企業例としては、EC2などを提供しているAWSもそうですし、GCP、日本国内で言えばさくらクラウドもIaaSを提供しています。

メリットとしては、カスタマイズの自由度が高く、独自のサービスを作りやすい点です。
自分で環境を一つずつ設定していくことになるので、高度な知識が必要になりますが、1から作ることができるので自由に自分の作りたいものを作ることができます。
以前は物理的においていたサーバーが、クラウド上に置かれることにより、場所代などの物理的なメンテナンスコストが下がることも期待できます。

2-5. 各サービスの関係性

下記が、SaaS,Paas,IaaSの違いの図になります。

引用:micoresolutions

IaaSが土台、PaaSがその上に乗っており、SaaSが一番上です。
上に行くほど、サービスがすでに使える状態に近い、と理解してもらえれば大丈夫かと思います。
この図に当てはめるならば、BaaSはPaaSの上か、それを保管するものとして位置します。

3. ベトナムでのビジネスやソフトウェア開発をお考えならバイタリフィへ

バイタリフィVitalify Asiaでは、上記にありましたフロントエンド/バックエンドのソフトウェア開発経験や実績を活かし、今後ベトナム国内やアジアへ向けてITサービスを開発・展開したい、ソフトウェアを作りたいという企業をサポートしています。

Javascriptを使ったフロントエンド開発』や『アジャイル・スクラムでのサービス開発』、独自の『ベトナム法人設立前にベトナムをお試しできる拠点開設プラン』、『AI導入をお考えの方に精度や効果を無料で確認してから開発の判断ができるサービス』など様々なご要望に対応できます。

ご相談は無料ですのでお気軽にご相談ください。

お問い合わせはこちら

※本記事内の画像や数値は、各ニュース記事・レポートなどを元に引用や作成をしたものであり、その権利は各社に帰属します。