無料から使えるデータベース比較


アプリケーションで永続化的なデータを扱うときにデータベースが必要になってくる。個人開発等でマネタイズできるまでは "タダ" で "ラク" に運用しておきたいのでいくつか調べてみた。

## データベース

データベースは自前で管理しようとすると、セットアップ、保守、スケーリング、パッチ適用、バックアップポリシー、シャーディング、レプリケーションなど、一から始めると面倒くさいことがたくさんある。そのためいくつかの DBaaS から選定する。

| サービス名                | エントリー価格 | DBMSの互換性 | ロケーション | 提供        | 公式サイト                                              |
| ------------------------- | -------------- | ------------ | ------------ | ----------- | ------------------------------------------------------- |
| Cloud Firestore(Firebase) | 無料利用枠     | NoSQL        | 日本あり     | GCP         | [●](https://firebase.google.com/docs/firestore?hl=ja)   |
| MongoDB Atlas             | 無料利用枠     | NoSQL        | 日本あり     | MongoDB     | [●](https://www.mongodb.com/docs/atlas/)                |
| Amazon DynamoDB           | 従量課金       | NoSQL        | 日本あり     | AWS         | [●](https://docs.aws.amazon.com/dynamodb/index.html)    |
| Supabase(Database)        | 無料利用枠     | PostgreSQL   | 日本あり     | Supabase    | [●](https://supabase.com/docs/guides/database/overview) |
| PlanetScale               | 無料利用枠     | MySQL        | 日本あり     | PlanetScale | [●](https://planetscale.com/)                           |

## Cloud Firestore(Firebase)

- **特徴**: Cloud Firestore は、Firebase と Google Cloud からのモバイル、ウェブ、サーバー開発に対応した柔軟でスケーラブルなデータベースである。

  - データベースに直接接続する迅速かつ柔軟でスケーラブルなウェブとモバイルの開発に最適
  - データベースの変更に応じた簡単なリアルタイムデータ同期をサポート
  - オフラインモードを堅牢にサポート。インターネットが利用できない場合や不安定な場合でも、ユーザーはアプリを操作し続けることが可能
  - 自由にカスタマイズ可能なセキュリティとデータの検証ルールで、データを確実に保護可能
  - 強整合性、柔軟なスケーリング、高パフォーマンスに加え、最高水準の 99.999% の可用性が組み込まれている
  - Firebase は、Cloud Functions や BigQuery（サーバーレス データ ウェアハウス）などの Google Cloud サービスと統合可能
  - 豊富な Google Cloud サービス統合に加え、Firestore は Firebase Extensions を介して、増え続けるサードパーティパートナー各社とワンクリックで緊密に統合し、アプリケーションの構築をさらに高速化可能

- 参考: [https://cloud.google.com/blog/ja/topics/developers-practitioners/all-you-need-know-about-firestore-cheatsheet](https://cloud.google.com/blog/ja/topics/developers-practitioners/all-you-need-know-about-firestore-cheatsheet)

- **価格**:

  | 無料利用枠                 | 割り当て  |
  | -------------------------- | --------- |
  | 保存データ                 | 1 GiB     |
  | ドキュメントの読み取り     | 50,000/日 |
  | ドキュメントの書き込み     | 20,000/日 |
  | ドキュメントの削除         | 20,000/日 |
  | 下り（外向き）ネットワーク | 10 GiB/月 |

- 参考: [https://firebase.google.com/docs/firestore/quotas?hl=ja](https://firebase.google.com/docs/firestore/quotas?hl=ja)

## MongoDB Atlas

- **特徴**: MongoDB Atlas は、MongoDB 向けの主要なクラウド データベース ソリューションである。Atlas Search、Atlas Data Lake、MongoDB Charts などの組み込みサービスにより、MongoDB を使用した強力なアプリの構築が容易になる。さらに、ユーザーインターフェースは使いやすい。無料層は小規模なプロジェクトをサポートし、有料層は中規模のプロジェクトに適している。今日、MongoDB は、可用性、スケーラビリティ、およびデータ セキュリティとプライバシー基準への準拠を誇っている。

- 参考: [https://cloud.google.com/blog/ja/topics/developers-practitioners/all-you-need-know-about-firestore-cheatsheet](https://cloud.google.com/blog/ja/topics/developers-practitioners/all-you-need-know-about-firestore-cheatsheet)

- **価格**:

  無料利用枠

  - 512MB～5GBのストレージ
  - 共有 RAM
  - 始めるのにクレジットカードは不要

- 参考: [https://www.mongodb.com/pricing](https://www.mongodb.com/pricing)

## Amazon DynamoDB

- **特徴**: Amazon DynamoDB は、key-value およびドキュメントデータモデルをサポートする NoSQL データベースである。開発者は、DynamoDB を使用して小規模から開始してグローバルまで拡張できる最新のサーバーレスアプリケーションを構築して数ペタバイトのデータや 1 秒あたり数千万の読み込みおよび書き込みリクエストをサポートできる。DynamoDB は、従来のリレーショナルデータベースであれば高い負荷を生じさせていた高パフォーマンスのインターネット規模のアプリケーションを実行するように設計されている。

- 参考: [https://aws.amazon.com/jp/dynamodb/features/](https://aws.amazon.com/jp/dynamodb/features/)

- **価格**: DynamoDB Standard テーブルクラスを使用すると、最初に保存される 25 GB (1 か月あたり) は無料(それ以降、0.285USD/GB-月)

  | オンデマンドスループットタイプ | 料金                                        |
  | ------------------------------ | ------------------------------------------- |
  | 書き込み要求単位 (WRU)         | 書き込み要求ユニット 100 万あたり 1.4269USD |
  | 読み出し要求単位 (RRU)         | 読み出し要求ユニット 100 万あたり 0.285USD  |

AWS の価格は複雑なので詳しくは以下の参考サイトを見てください。

- 参考: [https://aws.amazon.com/jp/dynamodb/pricing/](https://aws.amazon.com/jp/dynamodb/pricing/)

## Supabase(Database)

- **特徴**: Supabase は、開発者にとって非常に使いやすい、GCP の Firebase に代わるオープンソースである。Supabase プロジェクトは PostgreSQL データベースであるため、認証目的で PostgreSQL の行レベル セキュリティを利用できる。

- **価格**:

  無料利用枠

  - 最大 500MB のデータベースと 1GB のファイル ストレージ
  - 最大 2GB の帯域幅
  - 最大 50MB のファイルのアップロード
  - 最大 500K のエッジ関数呼び出し
  - 1 日間のログ保持

- 参考: [https://supabase.com/pricing](https://supabase.com/pricing)

## PlanetScale

- **特徴**: PlanetScale は、スケーラビリティ、ディザスタ リカバリ用のマルチクラウド ソリューション、マルチリージョン展開のコンプライアンスを優先する場合に最適である。注目すべき機能は、そのライブ データベース ブランチだ。各ライブ データベース ブランチは、データベースのスキーマのコピーを使用してデプロイされた個別のデータベースである。これにより、ノンブロッキングのスキーマ変更が可能になる。つまり、本番データベースでロックやダウンタイムを発生させることなく、データベース テーブルを更新できる。

- **価格**:

  無料利用枠

  - 5GBのストレージ
  - 10 億行の読み取り/月
  - 1,000 万行の書き込み/月
  - 1 つの生産ブランチ
  - 1 開発ブランチ

- 参考: [https://planetscale.com/pricing](https://planetscale.com/pricing)

## 参考資料

https://www.koyeb.com/blog/which-cloud-database-platform-to-choose-for-your-applications