
COLUMN
COLUMN
2022年8月1日
IT人材の不足により、多くのシステム開発企業がエンジニアの確保に課題を抱えています。そのため、システム開発では、用途や使用目的に応じて効率よく開発できるシステム開発フレームワークやクラウドサービスを選ぶことが重要になっています。特に、システムにおけるデータベース管理、認証、ログイン管理、権限管理、APIなどバックエンドの機能をパッケージしているクラウドサービス「BaaS」(Backend as a Service)の活用が有効です。
この記事では、BaaSとして注目を集めるSupabaseとHexabaseの特徴、機能、メリット・デメリット、選定のポイントについて紹介します。
※Supabaseに関する情報は公開されている技術ドキュメントなどを参照し、当社にて評価を行いました。
クラウド化が進んだことにより、プラットフォームやインフラ基盤など様々な機能がサービスとして提供されるようになりました。BaaS/DBaaSもこれらのサービスの一つです。
BaaSは、Backend as a Serviceの略で、システムのバックエンド機能を提供するクラウドサービスの総称です。そのなかで、モバイル用途のものが「mBaaS」と呼ばれています。BaaSの代表的なサービスに「Firebase」と「Supabase」があります。これらはモバイル開発で多用されているために、BaaSはモバイル専用だと認識している人も多いと思います。しかし、BaaSは、モバイル用途以外にも様々な用途や種類があります。たとえば、企業システム向けBaaSに「Hexabase」があります。
このサービスを利用することで、ユーザーはバックエンドの開発・運用の手間を省きフロントエンド(WebアプリやWebサービス)の開発に集中できます。
DBaaSは、Database as a Serviceの略で、バックエンドに必要となるデータベースに特化したクラウドサービスです。バックエンドに必要となるデータベースに特化したBaaSに分類できますが、マネージドデータベースサービスとも呼ばれています。開発者はDBaaSにアクセスして利用するだけで、自動バックアップやバッチ適用、サービス監視などはプロバイダーが行います。
ここではモバイル向けBaaSの一つであるSupabaseの特徴や機能、メリット・デメリットについて紹介します。2020年より提供されており、モバイル用途のBaaSであるFirebaseのAlternative(代替品)をうたっています。
Supabaseの主な特徴は以下の3つです。
Hexabaseは日本で作られたBaaSで、企業システムやビジネスSaaS向けのBaaSとなっています。Hexabaseの特徴や機能、メリット・デメリットについて紹介します。
Hexabaseの主な特徴は以下の3つです。
ここでは、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 に関してはデータレポート機能を用いて集計が可能です。ただしサブクエリが使えないため、複雑な集計には別のプログラムを組んで対応する必要があります。
Supabaseでは様々な認証方式を提供しています。GoogleやSpotify、Facebook、Githubなど現在では計19種類のSNS・SMS認証方式が用意されています。また、E-mailとパスワード、電話番号など複数の方法で認証ができるようになっています。
一方でHexabaseに関しては、E-mailとパスワードで認証できるほか、Auth0をベースとした認証機能をベータ提供しており、今後SNS・SMS認証が利用可能になります。
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連携とは、外部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向けの機能が充実している点がメリットです。開発するシステムの要件を確認し、どちらが適しているかを判断した上で導入することが重要です。