NEWS & EVENT
お知らせ・イベント情報
Supabaseは、業務システムで使えるか:エンタープライズBaaS「Hexabase」と比較する
2022年08月01日
IT人材の不足により、多くのシステム開発企業がエンジニアの確保に課題を抱えています。そのため、システム開発では、用途や使用目的に応じて効率よく開発できるシステム開発フレームワークやクラウドサービスを選ぶことが重要になっています。特に、システムにおけるデータベース管理、認証、ログイン管理、権限管理、APIなどバックエンドの機能をパッケージしているクラウドサービス「BaaS」(Backend as a Service)の活用が有効です。
この記事では、BaaSとして注目を集めるSupabaseとHexabaseの特徴、機能、メリット・デメリット、選定のポイントについて紹介します。
※Supabaseに関する情報は公開されている技術ドキュメントなどを参照し、当社にて評価を行いました。
BaaS/DBaaSとは
クラウド化が進んだことにより、プラットフォームやインフラ基盤など様々な機能がサービスとして提供されるようになりました。BaaS/DBaaSもこれらのサービスの一つです。
BaaS(Backend as a Service)は バックエンド機能を提供するクラウドサービス
BaaSは、Backend as a Serviceの略で、システムのバックエンド機能を提供するクラウドサービスの総称です。そのなかで、モバイル用途のものが「mBaaS」と呼ばれています。BaaSの代表的なサービスに「Firebase」と「Supabase」があります。これらはモバイル開発で多用されているために、BaaSはモバイル専用だと認識している人も多いと思います。しかし、BaaSは、モバイル用途以外にも様々な用途や種類があります。たとえば、企業システム向けBaaSに「Hexabase」があります。
このサービスを利用することで、ユーザーはバックエンドの開発・運用の手間を省きフロントエンド(WebアプリやWebサービス)の開発に集中できます。
DBaaS(Database as a Service)は データベースに特化したBaaS
DBaaSは、Database as a Serviceの略で、バックエンドに必要となるデータベースに特化したクラウドサービスです。バックエンドに必要となるデータベースに特化したBaaSに分類できますが、マネージドデータベースサービスとも呼ばれています。開発者はDBaaSにアクセスして利用するだけで、自動バックアップやバッチ適用、サービス監視などはプロバイダーが行います。
Supabaseは、モバイル向けBaaS:Firebaseのオープンな代替
ここではモバイル向けBaaSの一つであるSupabaseの特徴や機能、メリット・デメリットについて紹介します。2020年より提供されており、モバイル用途のBaaSであるFirebaseのAlternative(代替品)をうたっています。
特徴
Supabaseの主な特徴は以下の3つです。
- データベースにPostgreSQLを利用しており、既存のナレッジを活用できる
- ホスティングサービスと一体になっている
- GoTrue、PostgREST といったオープンソースのツールを組み合わせている
機能
- データベース:RDBを採用。リアルタイムエンジンを保持しているため、変更発生を検知して反映可能
- 接続:API(REST API、GraphQLインターフェース、Realtime API)での接続、PostgreSQLのネイティブなツールを使ってDBにアクセスするダイレクト接続、多数の一時的な接続を管理する接続プール、の3つの仕組みを使用可能
- 認証:Supabase Authを使用することで、PostgreSQLに組み込まれたAuth機能を活用可能
メリット
- ホスティングサービスと一体になっており、システム構築・運用の手間が省ける
- RDBを使用しているため、複雑なテーブル構成が実現できる
- フロントエンドとバックエンドの境界がなくなるため、APIの開発が少なくなり、迅速な開発が可能
デメリット
- PostgreSQLやSQLの知識が必要なため、ある程度の学習が必要
- Firebaseには存在するPUSH機能は実装されていない
- NoSQLではないためスケール性が弱い
Hexabaseは企業システム 向けBaaS
Hexabaseは日本で作られたBaaSで、企業システムやビジネスSaaS向けのBaaSとなっています。Hexabaseの特徴や機能、メリット・デメリットについて紹介します。
特徴
Hexabaseの主な特徴は以下の3つです。
- システムの保守性・信頼性・拡張性・パフォーマンスを考慮して、Kubernetes上に構築した独自のマイクロサービス基盤で動作している
- ワークフローやアクセス制御など企業システムを構築するために必要な機能を備えている
- AWS認定アプリケーションとなっておりセキュリティや信頼性・運用面で優れている
機能
- データベース:スケーラビリティを確保するため複数のNoSQLデータベースをシステム統合しながら、RDBと同じように利用できる
- フロントエンド用WebAPI:必要なバックエンドの機能を設定すると、WebAPIを自動生成する
メリット
- NoSQLデータベースを採用しながらRDBと同じように利用できるため、開発者はあらためてNoSQLについて学習する必要がなく、従来のRDBのナレッジを活用できる
- ReactやVue.jsなどフロントエンド開発フレームを活用してフロントエンドをスクラッチ開発できるため、利用者の多様な要望に応えたフロントエンドを開発できる
- ワークフロー機能とRBAC(ロールベースアクセス制御)によるアクセス制御を標準で装備。データベースと統合されており企業システムの開発で活用できる
- 利用料に応じた価格プランを用意し、メールサービス連携など必要なオプション機能を追加できるため、コストを最適化できる
デメリット
- アナリティクスなどモバイル用途の機能が標準的なものに留まっている
- 導入事例やドキュメント・サンプルコードが基本的なものに留まっている
SupabaseとHexabaseの選定ポイント
ここでは、SupabaseとHexabaseを機能面で比較していきます。
機能 | Supabase | Hexabase |
---|---|---|
リレーショナルデータベース | ◎ | ◎ |
検索性 | ◎ | ◎ |
データ集計 | ◎ | ◎ |
SNS・SMS認証 | 〇 | △ |
PUSH通知 | × | ○ |
アナリティクス | 〇 | ○ |
管理画面の実装 | 〇 | ◎ |
アクセス制御 | 〇 | ◎ |
ワークフロー | × | ◎ |
外部API連携 | × | ◎ |
学習コスト | △ | 〇 |
人的リソース | ○ | ◎ |
運用コスト | 〇 | ◎ |
リレーショナルデータベース
SupabaseはRDBを使用しているため、REST APIを利用することでデータの抽出や検索、簡易的な集計が容易に行えます。
Hexabaseは、NoSQLでありながらRDBのようにテーブル間に関係性を持たせることが可能です。また、基本的なAPIでトランザクションをサポートしています。
検索性
SupabaseではRDBを利用しているため、迅速にかつ複雑な検索可能です。
Hexabaseは、標準で全文検索機能を備えています。SQLは使えませんが、専用のクエリビルダーで検索条件を設定できます。検索条件を保存しデータレポートAPIで呼出しできるため、利便性の高い機能と言えます。
データ集計
SupabaseはRDBのため、データ集計を容易に実行可能です。SQLを書くことによって集計できるため、データ集計用のテーブルを作成してしまってもよいでしょう。
Hexabase に関してはデータレポート機能を用いて集計が可能です。ただしサブクエリが使えないため、複雑な集計には別のプログラムを組んで対応する必要があります。
SNS・SMS認証
Supabaseでは様々な認証方式を提供しています。GoogleやSpotify、Facebook、Githubなど現在では計19種類のSNS・SMS認証方式が用意されています。また、E-mailとパスワード、電話番号など複数の方法で認証ができるようになっています。
一方でHexabaseに関しては、E-mailとパスワードで認証できるほか、Auth0をベースとした認証機能をベータ提供しており、今後SNS・SMS認証が利用可能になります。
PUSH通知
Supabaseは2022年7月時点で、PUSH通知機能はありません。
Hexabaseは、Pub/Sub方式の通知機能を備えており、API経由で利用できます。
アナリティクス
SupabaseもHexabaseも、GoogleAnalityicには対応していませんが、独自のアクセスログ機能を備えています。
管理画面の実装
SupabaseもHexabaseも管理画面が最初から搭載されています。特にHexabaseではアプリケーションの設定からユーザーの登録・データのメンテナンスまで管理画面で操作できます。
アクセス制御
Supabaseでは、 PostgreSQLのRLS(Row Level Security:行単位セキュリティ)が利用できます。この点は、同じmBaaSであるFirebaseよりも優れています。
Hexabaseは、RBAC(ロールベースアクセス制御)でデータベースのレコード・フィールドをアクセス制御できるだけでなく、ワークフローやスクリプト呼出し・外部API連携などにもアクセス制御が有効で、より実用的なアクセス制御が可能です。
ワークフロー
Supabaseでは2022年7月時点で、ワークフローの提供はおこなっていません。開発中とのことですが、いつリリースされるかは未定です。
Hexabase に関してはステータス管理機能により、アクセス制御と一体になった柔軟なワークフローを作成可能です。
外部API連携
外部API連携とは、外部WebサービスのAPIをBaaSから利用する機能です。
Supabaseではサーバレスで関数を実行するEdge Functionがアルファ版となっており、API keyを環境変数として利用できるため、Cloud Functions for Firebaseのような外部APIと連携できません。
Hexabaseは、Webhookベースの外部API連携を標準装備しており、決済サービスや帳票サービス・メール送信―ビスなどの実績があります。
学習コスト
SupabaseはPostgreSQLやSQLのナレッジを流用でき、ドキュメントやサンプルコードも充実していますが英語のままになっており学習コストは高いと言えます。
一方でHexabaseではユーザビリティに優れた管理画面を提供しているほか、日本語のドキュメントやチュートリアルも提供しているため、比較的容易に学習ができるでしょう。
人的リソース
SupabaseもHexabaseも少人数で開発をおこなうことが可能です。しかし、Supabaseではまず管理画面の作成が必要になる点や、学習コストがかかる点などを考慮すると、Supabaseの方が人的リソースは必要となるでしょう。
運用コスト
どちらも従量課金制となっています。しかし、Supabaseに関してはオプションの追加がない一方、Hexabaseは必要に応じて様々なオプションを追加できます。企業システムやビジネスSaaSの開発で様々な要件に対応できるのはHexabaseと言えるでしょう。
まとめ
今回はSupabaseとHexabase の比較を行いました。Supabaseは、管理画面や集計方法などに関する技術力があれば、より柔軟な設計ができるでしょう。一方で、Hexabaseは企業システム向けやビジネスSaaS向けの機能が充実している点がメリットです。開発するシステムの要件を確認し、どちらが適しているかを判断した上で導入することが重要です。