22.06.07BaaSでスピード化?アプリ開発が簡単になるサービスを紹介!アプリなどを作る際に、最近よく聞くようになった「BaaS」という言葉。「プロジェクトの技術要件を決める話し合いで、よく聞く言葉だけど、どんな意味かわかっていないんだよな...」という方、実は多いんじゃないでしょうか?そんな方に向けて、今回は「BaaS」について、わかりやすく説明いたします。本記事を見ると、以下の内容がわかりやすく理解できます。・BaaSの代表的なサービス・BaaSに向いているアプリ「BaaS」を理解して利用することで、開発スピードの向上、コストの削減などが可能です。この記事を通して「BaaS」についてしっかり理解し、活用できるようにしましょう。デリバリー・タクシーアプリBaaSって何?まず初めに「BaaS」の概要について説明していきます。Service」の略であり、事業者側がアプリで必要な機能を提供してくれるサービスになります。アプリを開発する部分は、基本的に以下の2つに分けられます。Service)は、名前の通り「バックエンド(裏側の処理)」の機能を提供してくれるサービスになります。「ユーザー認証」や「データベース管理」などが、バックエンド(裏側の処理)にあたるものになります。機能の詳細については、「BaaSを使ってできる機能とは?」で詳しく解説いたします。BaaSのメリットとデメリット続いてSaaSのメリットとデメリットについて、具体的な内容を交えて説明していきます。BaaSのメリットBaaSには、大きく以下の3つのメリットがあります。開発時の金銭的コストの削減BaaSは、既に作られてるバックエンド(裏側の処理)を使います。1から機能を作る必要がないため、その分の開発費用を削減できるというわけですね。BaaSを使わない場合、通常は以下のような工程を経て、機能を開発する必要があります。上記のように、いくつもの工程を踏む必要があります。そのため1から裏側の処理を作るとなると、多くの人員、また金銭的コストがどうしても多くなります。BaaSだと、事業者が用意した機能をすぐに使えるため、開発の金銭的コストを抑えられるわけですね。一つ前で説明しましたが、BaaSは既に用意されている機能を使うことになります。これはアプリをスピーディに構築できることにもつながります。先述の通り、通常は多くの工程を踏んでから機能が完成します。多くの工程を踏むとアプリの完成までの道のりもどんどん遠くなっていきます。BaaSでは事業者が提供している機能を使うだけなので、完成までの長い道のりも、簡単にショートカットできるわけです。そのため、アプリ全体の完成も早くなり、スピーディに構築できるわけですね。運用時の管理コストの削減BaaSは事業者が提供している機能を使うサービスのため、機能の管理は全て事業者が行うためです。通常は、開発した機能は自身で管理し、不具合が起きたら改修する必要があります。これを全て事業者が行ってくれるため、管理コストが格段に削減できます。常に事業者の方で、機能のアップデートも行うため、最新の機能を搭載した、バグが少ない高品質な機能を使い続けることができます。BaaSのデメリットここまでメリットについては説明してきましたが、逆にデメリットはなにがあるのでしょうか?ここでは以下3つのデメリットについて説明していきます。・自由度が低い・他社サービスへの乗り換えが困難ランニングコストの増加BaaSは基本的に従量課金制が多いため、機能を多く使えば使うほど、金銭的コストがどんどん膨らみます。ユーザーが10万人いるサービスで、ユーザー認証機能をBaaSで使うと、ログインが多くなるにつれ料金を雪だるま式に増えていきます。そのためBaaSを使う前には、必ず”いくら料金(コスト)がかかるのか”を計算しておき、自社のサービスにマッチするかを確認しておく必要があります。自由度が低いBaaSは、事業者が提供している機能を使えて便利な反面、提供している以外の機能が使えないというデメリットがあります。アプリに必要な機能の多くは、基本的にBaaSで提供しておりますが、ニッチな機能を提供しているケースはまだまだ少ないのが現状です。そのため開発するアプリに必要な機能が、利用するBaaSにあるか、しっかり確認する必要があります。先述の通り、BaaSは企業が用意した機能を使うことになり、アプリもその機能に準じた作りにする必要があります。結果、提供している機能を前提でアプリを作っているため、他社サービスへ移行するが非常に困難になります。これをベンダーロックインと言います。そのためBaaSを利用する前には、必ず使用する機能が十分な性能かどうか判断しておくのが大事になります。BaaSを使ってできる機能とは?続いて、BaaSでは実際どんな機能が提供されているのかを紹介していきます。機能が提供されてますが、今回は代表的な以下5つの機能を紹介してきます。ユーザー登録や管理、ログイン機能を行う機能です。最近のアプリを使用する上では必須の機能と言えるでしょう。特徴としては、認証までの時間が高速であったり、高度なセキュリティを提供している事業者が多いです。近年ではGoogleやAppleなど大手サービスとのアカウント連携、またTwiiter、FacebookなどのSNSアカウント連携機能などもあり、非常に幅広いユーザー認証機能を提供しているBaaSが多いです。データベース管理アプリのデータを保存するデータベースの機能です。こちらもユーザー認証と同様に必須の機能と言えるでしょう。特徴としては、通常のデータベースと比べて、直感的な操作でデータを扱えます。スケーリング(性能の変更)が容易で、データベースの操作幅も広いことが多いです。保存したデータのセキュリティに関するルールも柔軟に変更できるケースが多いです。そのため幅広い用途に合わせて、データベースを利用することが可能になっております。プッシュ通知アプリを使用しているユーザーの端末に、通知を送る機能です。特徴としては、通常はOSごとにプッシュ通知の実装方法を変えなくてはいけないのですが、多くのBaaSはクロスプラットフォーム(iOS/Android)対応なので、コード量も少なく、かつ簡単に開発できます。後述する「分析」機能と組み合わせることで、特定のユーザーのみに訴求力のある通知を送る機能を提供している事業者もあります。位置情報ユーザーの端末の位置情報を確認、および活用するための機能です。特徴としては、高精度な位置情報の提供や、リアルタイムでの位置情報の共有などが簡単に行えることです。目的地までの移動距離やルート案内なども提供している事業者もあるので、多くのコストや時間をかけずに簡単に高機能な位置情報機能をアプリに組み込むことが可能です。分析アプリを使っているユーザーの分析機能です。「いつユーザーがボタンを押したか」「どの機能がよく使われているか」などの分析を、BaaSを使えば簡単に行えます。「サイトに訪れるユーザーが使用している端末の種類」や、「サイトを訪れたユーザーの何%が商品を購入しているか(ファネル分析)」など、より高精度な分析機能も提供している事業者も多いです。BaaSの代表的なサービス続いては、BaaSで代表的なサービスの以下4つについて紹介します。backend(FUJITSU)Firebase(Google)Firebaseとは、Googleが提供している代表的なBaaSの一種です。シンプルな作りで、かつ機能も豊富なため、個人から企業まで幅広いユーザーに使われているサービスになります。主な特徴としては、リアルタイムにデータを同期できる点です。リアルタイムにデータを同期できると、常にデータがあるためアプリの応答が早くなり、急にオフラインになった時でも、アプリを使用できるというメリットがあります。Amplifyとは、Amazonが提供しているBaaSになります。主な特徴は、すでに提供されているAWSの機能を豊富に使えるため、BaaSのデメリットである**「自由度の低さ」を感じづらい**のが特徴です。Amplifyが向いていると言えるでしょう。Appsとは、Microsoftが提供しているBaaSになります。こちらのBaaSの特徴は、負荷状況に合わせて**自動的にスケーリング(性能の変更)**を行ってくれるところです。通常は手動で変更しなくてはいけないところを自動で行ってくれるため、サーバー負荷による不具合などが起きづらくなります。backendとは、FUJITSUが提供しているBaaSになります。こちらのBaaSは紹介したサービスの中で、唯一の国産BaaSになります。そのため先述したサービスと違い、日本語マニュアル豊富さや、サポート対応も日本語になります。海外サービスに不安をいただいている方は、検討してもみても良いでしょう。BaaSはどういうアプリが向いている?ここまでBaaSについて説明してきましたが、「結局BaaSはどういうアプリに向いているんだろう?」と思う方もいらっしゃるかと思います。そんな方に向けて、今回はBaaSの機能を有効的に使えるアプリを2種類紹介します。・SNSアプリ・デリバリー・タクシーアプリSNSアプリTwitterや、InstagramなどのSNSアプリでは、BaaSの主要機能のほとんどを有効活用できます。実際に今回紹介した機能に、SNSの機能をあてはめてみましょう。分析このようにSNSアプリでは、BaaSの主要機能がほとんど使えます。ユーザー数が多くなり、サーバーに負荷がかかったとしても、サーバーの性能も柔軟に変更できるBaaSが多いです。そのため幅広いSNSアプリに対して、有効に活用できるといえるでしょう。Eatsなどのデリバリーアプリや、Goなどのタクシーアプリでも、BaaSの機能を有効活用することが可能です。こちらも実際にアプリの機能にあてはめてみましょう。デリバリー・タクシーアプリは、上記の機能の中でも、正確かつリアルタイムで共有してくれる精度が高い位置情報機能が求められます。BaaSを使えば、高機能な位置情報機能を簡単に構築できるため、デリバリー、およびタクシーアプリなどの位置情報を使うアプリは、有効的にBaaSを活用できるでしょう。このようにアプリにBaaSを組み込めば、高機能なアプリをスピーディに提供することが可能になります。アプリを開発する場合には、ぜひBaaSの利用を検討してみてください。