【2023年】 BaaS/DBaaSサービス

## はじめに
現代のアプリ開発では、BaaS（Backend as a Service）が重要な役割を果たしています。
今回の記事では、特にnode.jsのバックエンドとして人気のあるFirebaseに焦点を当て、その競合となるBaaS/DBaaS(無料プランあり)を紹介します。

## [PlanetScale](https://planetscale.com/)
![スクリーンショット 2023-04-26 12.31.30.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3338130/363d07d7-0c92-4e7c-e1b4-a6761ad9296c.png)

### 概要

- PlanetScale は、MySQL 互換のサーバーレス データベースであり、開発者の経験を犠牲にすることなく、スケーリング、パフォーマンス、および信頼性を実現できる。

- PlanetScale を使用すると、水平シャーディング、ノンブロッキング スキーマ変更、その他多くの強力なデータベース機能を実装する手間をかけずに利用できる。

<details><summary>詳細はクリックして全て表示</summary><div>

### 利用料金

|                   | Hobby         | Scaler                      | Team                       | Enterprise               |
|-------------------|---------------|-----------------------------|----------------------------|--------------------------|
| ストレージ/月     | 5GB           | 10GB*                       | 100GB*                     | 設定可能                 |
| 行の読み取り/月   | 10億          | 1,000億*                    | 5,000億*                   | 設定可能                 |
| 行書き込み/月     | 千万          | 5000万*                     | 1億*                       | 設定可能                 |
| 生産拠点           | 1つ           | データベースごとに 2 つ      | データベースごとに 3 つ     | 無制限                   |
| 開発支店           | 1つ           | データベースごとに 5         | データベースごとに 10       | 無制限                   |
| 監査ログの保持     | 5日間         | 15日間                      | 60日                       | 無制限                   |
| 同時接続数         | 1,000         | 10,000                      | 10,000                     | 無制限                   |
| 自動バックアップ   | 1日1回        | 12時間ごと                  | 12時間ごと                 | 設定可能                 |
| Query Insights保持 | 24時間        | 7日                         | 7日                        | 設定可能                 |
| SSO               | 含まれていない | アドオンとして利用可能       | 含まれている                | 含まれている              |
| サポート           | コミュニティ   | 標準                        | 標準、アップグレード可能** | ビジネス、アップグレード可能*** |
| 導入オプション     | 雲            | 雲                          | 雲                         | クラウド、シングルテナント クラウド、マネージド クラウド |
| 月額               | $0            | データベースあたり 29 ドル   | データベースあたり $599    | 2999ドルから             |


### 機能

- MySQL8を使ったサーバーレスDB
- ブランチ機能
- 国内リージョン(東京)
- 自動バックアップ機能
- 自動フェイルオーバーとエンタープライズ レベルのセキュリティ

### 利点

- 機能が高水準
- 開発ブランチから本番ブランチへのスキーマ変更が容易
- 差分管理ができる
- Webコンソールが使いやすい
- 手動バックアップやスケジュールバックアップの設定が容易
- 自動バックアップが使用できる
- 利用事例がすごい(YouTube, Slack, Figma, GitHubなど)
### デメリット

- 外部キー制約が使えない
[対処方法](https://planetscale.com/docs/learn/operating-without-foreign-key-constraints)


</div></details>

## [Supabase](https://supabase.com/)
![スクリーンショット 2023-04-26 12.29.34.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3338130/f5b4fd8b-ab0c-8b37-0dbf-86d1b54dcca4.png)

### 概要

- Supabaseは、PostgreSQLベースにオープンソースのテクノロジーで動作する、Firebaseの優れた代替プラットフォームであり、セルフホスティング環境または直接Supabaseのクラウドにアプリをホスティングできる。

- このプラットフォームで、リアルタイムチャットアプリ、SaaSプロダクツ、Webクローラー、ToDoリスト、 カンバンボード、Webサイトビルダーなどを構築できます。Flutter、Angular、React、Vueなど、複数のテクノロジーに対応している。 

- 2020年から運営されており、この市場では比較的新しいプラットフォームであるが、オープンソースのリポジトリをサポートする大規模で熱心な開発者コミュニティが存在しており。Githubでは、48万1千以上のスターを誇り、3万以上フォークされています。(2023年4月時点)

<details><summary>詳細はクリックして全て表示</summary><div>

### 利用料金

- FREEプラン
2 つの無料プロジェクトの制限
    - 最大 500MB のデータベースと 1GB のファイル ストレージ
    - 最大 2GB の帯域幅
    - 最大 50MB のファイルのアップロード
    - ソーシャル OAuth プロバイダー
    - 50,000 人の月間アクティブ ユーザー
    - 最大 500K のエッジ関数呼び出し
    - 1 日間のログ保持
    - コミュニティサポート

<font color="Crimson">**無料プロジェクトは、1 週間活動がないと一時停止されます。**</font>
- PROプラン：　月額$25から
無料プランのすべてに加えて:
    - 8 GB のデータベースと 100 GB のファイル ストレージ
    - 50GBの帯域幅
    - 5GBのファイルアップロード
    - ソーシャル OAuth プロバイダー
    - 100,000 人の月間アクティブ ユーザー
    - 2M Edge Function 呼び出し
    - 毎日のバックアップ
    - 7 日間のログ保持
    - プロジェクトの一時停止なし
    - メールサポート
- ENTERPRISEプラン – お問い合わせ
これらは、組織内のすべてのプロジェクトに適用されます。
    - 指定サポート マネージャーと SLA
    - エンタープライズ OAuth プロバイダー
    - SSO/SAML
    - SOC2
    - カスタム契約と請求
    - オンプレミス サポート
    - 24 時間 365 日対応のプレミアム エンタープライズ サポート
    - カスタム セキュリティ質問票
    - プライベート Slack チャンネル
    - アップタイム SLA

### 機能

- データベース
- ブラウザダッシュボード
- 認証
- ストレージ
- インスタント API

### 利点

- オープンソースである
- 開発者のコミュニティが拡大中である 
- Postgresリレーショナル型データベースで動作する
- 複数のデプロイメントオプションを提供している
- ベンダーロックインがない

### デメリット

- Firestoreと比べたらスケーラビリティが落ちる(そもそもNoSQLと比べるのも違うかと思うが、、)

</div></details>

## [AWS Amplify](https://aws.amazon.com/jp/amplify/)
![スクリーンショット 2023-04-26 12.42.16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3338130/79f8c6b0-0e76-2a45-de66-07b4ec24a0df.png)
### 概要

- AWS Amplifyでは、Webやモバイルの開発者が、目的に応じたツールや機能を使用し、フルスタックアプリケーションを作成できる。 
- AWS Amplifyを使用することで、バックエンドを数分で構築し、リリースを高速化し、楽に拡張することが可能です。このプラットフォームでは、Dynamo DB、Lambda、S3、Cognito、AppSyncなどのAWSサービスと連携できる。 

一般的な使用用途としては、データモデルの構築、プログレッシブWebアプリケーションのホスティング、静的サイトのホスティング、ユーザー認証など

<details><summary>詳細はクリックして全て表示</summary><div>

### 利用料金

AWS Amplifyの価格は、1分あたりのビルド数、保存ファイル数、データ転送量など、数値ごとに課金(**従量課金制**)されます。 

使い始めは無料枠あり
無料枠を超えた場合は従量課金 
- ビルド分あたり$0.01
- 1カ月あたり$0.023/GB
- ホスティングサービス$0.15/GB

### 機能
- データストア
- 認証
- アナリティクス
- API
- 通知機能

### 利点
- AWSによるバックアップ
- AWSサービスとの連携が容易

### デメリット
- **従量課金制**
- 他サービスとの連携などでコストが高め
- AWS Amplify のビルドおよびデプロイと静的ウェブのホスティングは、別のサービスとして請求される

</div></details>

## [Backendless](https://backendless.com/)
![スクリーンショット 2023-04-26 12.45.16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3338130/120edb02-cf7f-25a3-2506-c6e405be8aca.png)

### 概要

- Backendlessは、視覚的なアプリケーション開発プラットフォームとして、2012年から運営されています。これは、BaaS（Backend as a Service）としての最初のソリューションの一つです。

- Backendlessは、ノーコードでDB操作が可能で、ドラッグ＆ドロップでオブジェクトを配置し、パズルのピースのように処理をセットするユニークな手法が特徴です。これにより、リアルタイムアプリ、位置情報アプリ、モバイルおよびWebアプリケーションを直感的かつ迅速に開発でき、管理も容易。

<details><summary>詳細はクリックして全て表示</summary><div>

### 利用料金

![スクリーンショット 2023-04-26 23.08.47.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3338130/898c8738-911e-8e0c-bee8-a189179dd221.png)


### 機能

- ビジュアルアプリビルダー
- API
- 位置情報
- リアルタイムデータベース
- 認証
- 通知機能

### 利点

- DBをドラッグ＆ドロップで簡単に構築、開発できる(Backendless UI Builder)
- Bubble、Zapier、AppGyverなどのビジュアルプログラミング言語と接続が可能
- オンプレミスでのデプロイが可能
- エクセルファイルでデータベースを展開

### デメリット

- 日本の記事が少ない(公式ドキュメントやgithub頼り)

</div></details>


## [Nhost](https://nhost.io/)
![スクリーンショット 2023-04-26 13.04.07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3338130/3af25e7c-e705-f168-d70d-d6bfaad70928.png)

### 概要

- NhostはGraphQL、Postgres、Hasuraなどのオープンソースのテクノロジーを使用している。

- サーバーレスのバックエンドソフトウェアでインフラ管理のための複雑な作業は必要ない。

<details><summary>詳細はクリックして全て表示</summary><div>

### 利用料金

![chrome-capture-2023-3-27.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3338130/a125587d-9623-a291-0f2d-aced93a30427.png)


### 機能

- データベース
- GraphQL API
- 認証
- ストレージ(S3)
- サーバーレス機能
- Eメール


### 利点

- オープンソース(ベンダーロックインがない)
- GraphQLに対応している

### デメリット

- 競合としてSupabaseが存在する

</div></details>


## [Tigris](https://www.tigrisdata.com/)
![スクリーンショット 2023-04-26 13.11.00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3338130/a1eadfa7-c1d8-ae27-c554-1b05948e7c44.png)

### 概要

- Tigrisは、MongoDBおよびDynamoDBに代わるオープンソースです。小売やeコマースから金融アプリケーション、ベクトル検索エンジン、レコメンデーション エンジンなど、さまざまなアプリケーションをすばやく簡単に構築できる。

<details><summary>詳細はクリックして全て表示</summary><div>

### 利用料金

![chrome-capture-2023-3-27 (1).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3338130/45b18074-5d73-3fe4-af69-54d6692e6d46.png)


### 機能

- データベースシーディング
- ACIDトランザクション
- 全文検索
- グローバルセカンダリインデックス
- ブランチ機能
- マルチクラウドデプロイの柔軟性
- DynamoDBやMongoDB Atlasの数分の一のコスト
- オープンソース
- クラウドネイティブアーキテクチャ

### 利点

- DynamoDBとMongoDB Atlasサーバーレスの25%のコストで、何百万ものレコードの読み取りと書き込み、およびペタバイトのデータストレージにスケーリングが可能。
- TigrisCloudを介してホストされたプラットフォームとして利用できるため、運用コストを低くできる。
- NoSQLデータベース。

### デメリット

- 運用コストをある程度許容できるのであれば、競合であるMongoDB Atlasに軍配が上がる可能性がある。

</div></details>

## 参考記事

- https://www.back4app.com/database/george.batschinski/baas-comparison
- https://www.saasworthy.com/compare/nhost-io-vs-supabase-io?pIds=10768,11643