COLUMN
2022年07月26日
BaaSを比較する:FirebaseとHexabaseの選定ポイント
カテゴリー:サービス, システム開発
タグ:BaaS, Firebase
多くのシステム開発企業においてIT人材の不足によりエンジニアの獲得が困難となってきています。
こうした課題の解決には、システム開発では用途や目的に応じて最適なフレームワークやクラウドサービスを選択することが重要です。特にサーバサイドのバックエンド機能を容易に構築できるBaaS(Backend as a Service)の活用が有効です。この記事では、BaaSであるFirebaseとHexabaseの特徴・機能・メリット・デメリット、選定のポイントについて紹介します。
※Firebaseに関する情報は公開されている技術ドキュメントなどを参照し、当社にて評価を行いました。
バックエンド機能を容易に構築できる BaaS/DBaaS
近年、注目を集めつつあるBaaSやDBaaSについて紹介します。
BaaS(Backend as a Service)は バックエンド機能を提供するクラウドサービス
BaaS(Backend as a Service)は、システムのバックエンド機能を提供するクラウドサービスの総称です。代表的なサービスに「Firebase」と「Supabase」があります。これらはモバイル開発で多用されているため、BaaSがモバイル専用だと認識している人も多いと思います。しかし、モバイル用途以外にも様々な用途や種類のBaaSがあります。たとえば、企業システム向けBaaSに「Hexabase」があります。モバイル向けBaaSは、mBaaSとも呼ばれます。
DBaaS(Database as a Service)は データベースに特化したBaaS
DBaaS(Database as a Service)とは、インターネットを経由してデータベース操作・拡張などができるクラウドサービスです。バックエンドに必要となるデータベースに特化したBaaSに分類できますが、運用やメンテナンスを任せられることからマネージドデータベースとも呼ばれています。
Firebaseは モバイルアプリケーション 向けBaaS
Firebaseは、モバイルアプリケーションやWebアプリケーション向けのBaaSです。サーバの管理・スケーリング対応などモバイル向けのシステム開発・運用に役立ちます。
ここでは、このFirebaseの特徴や機能、メリット・デメリットについて紹介します。
特徴
主にモバイルアプリに役立つバックエンドクラウドサービスで、Googleが提供しています。登録・管理などのバックエンド処理をすべて行うため、開発者はアプリケーションの開発に専念できます。アプリケーションサービスの早期リリースが求められるケースが増えてきたことで、ホスティングサービスにソフトウェアをインストールしなくても済むBaaSが注目されるようになりました。
機能
データベース以外に、SNS連携やAndroid・iOSのSDKを備えており、データ更新・ユーザー認証機能・リアルタイム同期機能・画像や動画をアップロードする機能などを持っています。
メリット
Firebaseは便利な機能が充実しています。メリットとして、サーバ周りの構築や運用の負担が軽減されることや、サーバサイドの開発費・開発期間が抑えられることが挙げられます。
デメリット
リレーショナルデータベースではなく、アクセス制御も弱いため、大規模なアプリケーションや複雑なテーブル構成では使いにくくなるおそれがあります。
Hexabaseは 企業システム 向けBaaS
企業システムを開発・運用していく上で役立つ高度なバックエンド機能を備えたBaaSです。企業システムやビジネス向けSaaSの開発に役立ちます。
ここでは、Hexabaseの特徴や機能、メリット・デメリットについて紹介します。
特徴
Hexabaseの主な特徴は以下の3つです。
- Kubernetes上に構築した独自のマイクロサービス基盤で動作しており、システムの保守性・信頼性・拡張性・パフォーマンスの向上が期待できる
- ワークフローやアクセス制御など企業システムを構築するために必要な機能を備えている
- AWS認定ソフトウェアとなっておりセキュリティや信頼性・運用面で優れている
機能
- データベース:スケーラビリティを確保するため複数のNoSQLデータベースをシステム統合して、RDBと同じように利用できる
- フロントエンド用WebAPI:必要なバックエンドの機能を設定すると、WebAPIを自動生成する
メリット
Hexabaseは低コストでシステムを構築でき、導入後は企業の業務内容に合わせて調整できる柔軟なクラウドサービスです。開発期間の短縮により、他社との競争力を強化できる点もメリットと言えます。
アプリケーションの開発者は、サーバーサイドの開発・運用をHexabaseに任せられるため、アプリ開発や品質向上・顧客とのコミュニケーションに専念できます。
デメリット
アナリティクスなどモバイル用途の機能が標準的なものに留まっています。
FirebaseとHexabaseの選定ポイント
ここでは、FirebaseとHexabaseを機能面で比較していきます。
機能 | Firebase | Hexabase |
---|---|---|
リレーショナルデータベース | × | ◎ |
検索性 | × | ◎ |
データ集計 | △ | ◎ |
SNS・SMS認証 | ◎ | △ |
PUSH通知 | 〇 | ○ |
アナリティクス | ◎ | ○ |
管理画面の実装 | △ | ○ |
アクセス制御 | △ | ◎ |
ワークフロー | × | ◎ |
外部API連携 | △ | ◎ |
学習コスト | 〇 | 〇 |
人的リソース | ◎ | ◎ |
運用コスト | 〇 | ◎ |
リレーショナルデータベース
Firebaseはアクセスやリアルタイム同期が可能なデータベースソリューションを提供していますが、NoSQLデータベースとなっておりリレーションが使えません。
Hexabaseはデータベースのスケーラビリティを確保するため、複数種類のNoSQLデータベースを統合しながら、RDBのように扱うことができます。開発者は、RDBの知識を活用しながら、データベースのスケーラビリティを確保できます。
検索性
Firebaseではデータの全文検索にサードパーティーの検索サービスが必要となります。検索機能を必要とするアプリを開発したい場合には追加費用が掛かる可能性があります。
Hexabaseは標準で全文検索機能を備えています。
データ集計
FirebaseではSUMなどの集約関数が備わっていません。
Hexabaseは、専用のクエリビルダーで検索条件を設定して、データレポートAPIで呼出しできます。
SNS・SMS認証
Firebaseは、Firebase内でSMS認証を完結できます。
Hexabaseは、Auth0をベースとした認証機能をベータ提供しており、今後SNS・SMS認証が利用可能になります。
PUSH通知
FirebaseはFirebase Cloud Messaging(FCM)の機能があり、誰でも簡単にプッシュ通知を送れます。
Hexabaseは、Pub/Sub方式の通知機能を備えておりAPI経由で利用できます。
アナリティクス
モバイル向けBaaSであるFirebaseでは、GoogleAnalityicの高度なアナリティクス機能が利用できます。
Hexabaseは、GoogleAnalityicには対応していませんが、独自のアクセスログ機能を備えています。
管理画面の実装
Firebaseは管理画面を自分で作成する必要があります。
Hexabaseは標準で管理画面を備えています。この管理画面を利用することで、アプリケーションの構築やデータベースのメンテナンス、アクセス状況の確認などをおこなえます。
アクセス制御
どちらのサービスもユーザー認証、編集、閲覧できる人を制限できる権限管理機能を備えています。
しかし、Firebaseのアクセス制御はフィルタとして機能していません。権限が限定的なデータにアクセスした場合、アクセス全体がエラーになります。
Hexabaseは、RBAC(ロールベースアクセス制御)でデータベースのレコード・フィールドのアクセス制御できます。権限が限定的なデータにアクセスした場合は、権限のあるデータだけをフィルタリングして出力します。さらに、ワークフローやスクリプト呼出し・外部API連携などにもアクセス制御が有効で、実用的なアクセス制御が可能です。
ワークフロー
ワークフローは、企業や組織の申請や承認・稟議などのシステム化に使われてきました。作業タスクの管理などにも利用されます。
Firebaseは標準でワークフローを備えておらず、実現にはサードパーティのサービスが必要になります。
Hexabase はステータス管理機能により、アクセス制御と一体になった柔軟なワークフローを作成可能です。
外部API連携
外部API連携は、外部WebサービスのAPIをBaaSから利用する機能です。
Firebaseでは、Cloud Functions for Firebaseを利用することで外部APIと連携できますが、従量課金制プランを選択する必要があります。
HexabaseはWebhookベースの外部API連携機能を標準装備しており、決済サービスや帳票サービス・メール送信サ―ビスなどの実績があります。
学習コスト
Firebase、Hexabaseのどちらも管理画面がわかりやすく、ゼロから学習しやすくなりますが、フロントエンドエンジニアが使い方を習得するには時間がかかる可能性があります。
人的リソース
Firebase、Hexabaseのどちらも少人数で効率的に開発・運用をおこなうことができます。
運用コスト
Firebaseは無料プランから従量課金制のプランまであり、個人開発者などでも選択しやすくなっています。
Hexabaseは様々なオプションを用意しています。企業システムやビジネスSaaSの開発で様々な要件に対応できるのはHexabaseと言えるでしょう。
まとめ
今回は、FirebaseとHexabaseそれぞれの機能を比較しました。
機能面で比べてみると、モバイルアプリ・個人サービスの開発であればFirebase、企業システム・ビジネスサービスの開発であればHexabaseと、すみ分けられると思います。
Firebaseは料金プランが数種類あり、初めての人でも操作しやすいのが魅力です。しかし、リレーショナルデータベースやアクセス制御。ワークフローが備わっていないため、これらの機能が必要かどうかを事前に考える必要があります。
一方、Hexabaseは企業システムやビジネスSaaS向けの機能が充実している点がメリットです。
開発したいアプリのジャンルや必要な機能を明確化した上で、どちらのサービスが合うかを判断していきましょう。