BaaSとは

BaaS(Backend as a Service)は
モバイルアプリサービスの運用に必要な汎用的なサーバー機能を提供するクラウドサービスの一形態です。
モバイル向け機能を提供していることからmBaaS(Mobile Backend as a Service)と呼ぶこともあります。

モバイルアプリに必要なサーバー機能はいつも似ている

いまやデバイスの中だけですべてが完結するモバイルアプリはほとんど例を見なくなりました。
モバイルアプリの開発には、サーバーの構築とサーバーサイドのプログラム開発が常にセットになっています。

サーバーの構築とサーバーサイドのプログラム開発は、アプリ自体の開発と同等に時間とコストを要し、アプリビジネスの成否を決める重要な要素です。

とはいうものの、スマートフォンの多くがタッチパネルをメイン操作にしているなど、携帯電話の利用スタイルは端末やキャリアが異なっても、だいたい似通っています。
そして必然的にサーバーサイドも似通った機能が求められるようになっています。

  • ユーザーの登録を受け付け、ログイン認証を提供したい
  • 運営側からお知らせなどのコンテンツを管理画面から配信したい
  • ユーザーのデータやファイルをサーバー上に保管したい
  • 一部のデータやファイルはユーザー間でシェアできるようにしたい

こういったアプリに共通で必要なサーバー機能をクラウドサービスとして提供するのが、アピアリーズをはじめとしたBaaS(Backend as a Service)です。

BaaSを利用することでアプリの開発者と運営者は、同じようなサーバーの準備・開発を繰り返すことなく、アプリそのものにリソースを集中させることができるようになります。

これまでのサーバー構築やクラウドサービスとの違い

サーバー調達手段 ハウジング レンタルサーバー IaaS PaaS BaaS SaaS
代表例 IIJ GIO,
Amazon EC2
Google App Engine, Windows Azure Salesforce Sales Cloud, Googleドキュメント
初期コスト High Middle Low Low Low Low
アイドルコスト(遊休コスト) High High Low Low Low Low
スケールアップの容易さ ×
OS・ミドルウェアの導入・管理コスト High Middle High Low Low Low
スケールアウトの容易さ × × ×
サーバープログラム開発コスト High High High Middle Zero Zero
カスタマイズ性 ×

スケーラビリティとアイドルコストの問題

モバイルアプリのためのサーバー構築で常に頭を悩ませることになるのが、スケーラビリティ(処理性能の拡張性)とアイドルコスト(遊休コスト)の問題です。

アプリのユーザーが増加すると、それに伴いサーバーの負荷も増大します。既存のサーバーでは処理しきれない負荷に達すると、サーバーのハードウェアを増強したり、サーバーの台数を増やすことで対応する必要があります。

一般的にサーバー単体の増強をスケールアップ、サーバーの台数を増やして対応することをスケールアウトと呼びます。

従来のレンタルサーバーや、自ら調達したハードウェアをデータセンターのラックに配架するハウジングでは、スケールアップの実施にサービスを停止し、場合によっては新しいサーバーへデータを移行する必要がありました。

スケールアップに備えて高性能なサーバーを用意すると、今度はサーバーのアイドルコストが大きくなります。

一方、スケールアウトを行うためには、入念な設計と高度なサーバー管理技術を必要とし、実施は容易ではありません。これらの問題に対する答えとして、Amazon EC2、Google App Engine、Windows Azureをはじめとしたクラウドサービスが注目を集めています。

Amazon EC2とBaaSは何が違うのか

Amazon EC2は、IaaS(Infrastructure as a Service)と呼ばれるクラウドサービスです。GMOクラウド Public、ニフティクラウドなどレンタルサーバー事業者のクラウドサービスの多くもIaaSに該当します。

IaaSは、サーバーのハードウェアに相当するリソースをクラウド上で提供します。アプリビジネスで利用する場合、サーバープログラムの開発はもちろん、OSやミドルウェアのインストールからの作業が必要です。さらにそれらのメンテナンスも行わなければなりません。

また、IaaSはサーバー自体の性能を調整する「スケールアップ」を行うことはできますが、サーバーの台数を増やすことでユーザー数の増加に対応していく「スケールアウト」の機構は自分で設計しなければなりません。

BaaSはIaaSと比べ、これらのコストと時間を省略することができます。

Google App EngineやWindows AzureとBaaSは何が違うのか

Google App EngineやWindows Azureは、PaaS(Platform as a Service)と呼ばれるクラウドサービスです。Heroku、OpenShift、DotCloudといった海外のサービスもPaaSに該当します。

PaaSは、ハードウェアからOS・ミドルウェアをセットでクラウド上で提供し、複数台のサーバーで負荷分散することでユーザー数の増加に対応(スケールアウト)できるプログラム動作環境を提供します。

PaaSはその環境で動作させるためのサーバープログラムの開発を必要とします。BaaSを利用することで、そのサーバープログラム開発も不要になります。

また、PaaSはサーバーインスタンスの性能や台数を手動で調整しなければならないサービスも少なくありません。その場合、アプリサービスの運営者は常に負荷を監視して適切なコントロールを迫られることになります。

Salesforce Sales CloudやGoogleドキュメントとは何が違うのか

Salesforce Sales CloudやGoogleドキュメントは、SaaS(Software as a Service)と呼ばれるクラウドサービスです。Microsoft Office 365といったサービスもSaaSに該当します。

SaaSは、特定の用途をもったソフトウェアを提供するクラウドサービスです。外部から接続するためのAPIを備えたサービスも増えており、専用クライアントアプリが多数存在する場合もあります。個々のアプリのためにカスタマイズ可能なサーバー機能を提供するものではありません。あくまであらかじめ用意されたソフトウェアの利用を目的としているため、サーバーサイドのシステムやソフトウェアをメンテナンスする必要がないのがSaaSの特徴です。

BaaSは、SaaSとPaaSの中間に位置し、メンテナンスが不要というSaaSの利点と、用途に合わせて柔軟に利用できるPaaSの利点を兼ね備えたクラウドサービスです。

BaaS”アピアリーズ”の利用シーン

モバイルアプリのバックエンドを担うアピアリーズは、さまざまな利用シーンで活用することができます。

会員機能付き情報配信アプリ

運営者が管理画面からコンテンツを入力し、ユーザーが常に最新の情報を閲覧できる簡易CMSとして利用することができます。

また、会員登録・認証の仕組みを利用して、会員だけにクーポンやキャンペーン情報などの特別な情報を配信することも可能です。

たとえば小売店や飲食店、ファッションブランドのアプリで商品や店舗のデータベースを簡単にアップデートしたり、ニュースやキャンペーンなどの最新情報を提供するといったシーンに最適です。

プライベートデータの同期・バックアップ

アプリ上でユーザーが保存したプライベートなデータをクラウド上で保管し、機種変更しても同じデータや環境を再現させたい場面で利用できます。

アピアリーズのデータベースには細かなアクセス制御を設定することができます。これによって他のユーザーに誤ってデータを表示するといった深刻なトラブルを避け、安全にデータを保管することができます。

1対1のチャットアプリ

特定のユーザーに向けたメッセージをデータベースに保管し、チャット・メッセージングアプリの開発にも利用できます。

ファイルデータベースを併用することで、写真や動画、音声といったマルチメディアデータを含むメッセージの送受信も可能です。

アピアリーズの機能についてご質問のある方はお気軽にお尋ねください。