無料枠が無くなったPlanetScale の代替DBを検討する。【4 月 8 日まで】

# PlanetScaleの無料枠が無くなった。

2024年3月7日、個人開発では定番となっていたMySQL互換データベース「Planet Scale」がHobby Planを撤廃することを発表しました。

https://planetscale.com/blog/planetscale-forever

つまり東京リージョンの実質の最低月額が約7000円〜となります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/215371/835fdbfe-9f59-a0f0-a6ba-87b71c23d274.png)

基本的に個人開発でネックになるのがDBのコストとされている中で、無料でデータベースストレージ5GB、ブランチ機能まで付いていたPlanetScaleはもてはやされていましたが、「流石に金ないわ、ごめんね」という事情のようです。

かくいう私もPlanet ScaleでWebアプリをリリースしていたので、撤廃の期限たる**4月8日**までに移行しなくてはいけません。

~~麻雀の成績を管理するプロダクトを作っているため、SQLから離れられないのです…~~

# 移行先はどこだ。

移行にあたって比較する条件を挙げます。

- （ほぼ）無料であること
- SQLであること （NoSQLは除外する）
- リージョンはできるだけ近く
- 容量

私はDBに詳しいわけではないので不正確な表現や誤解を含む恐れがあります。ご容赦ください。
スペックも頻繁に変わるため、最新の情報ではないこともあるかと思います。必ず公式の情報をご確認ください。
訂正お待ちしてます！

## 比較表

| サービス名             | データベース互換性 | 主な特徴                                                                                                                | データベース容量                             | リージョン                         | Prisma対応 | その他主要リソース                                                                                              | 
| ---------------------- | ------------------ | ----------------------------------------------------------------------------------------------------------------------- | -------------------------------------------- | ---------------------------------- | ---------- | --------------------------------------------------------------------------------------------------------------- | 
| PlanetScale            | MySQL              | - 読込：10 億行 / 月<br>- 書込：1,000 万行 / 月<br>- ブランチ機能（1ブランチまで）                                      | 5GB                                          | 東京                     | ◯         |                                                                                                                 | 
| Supabase               | Postgres           | - 無制限のAPIリクエスト<br>- 月間アクティブユーザー：50,000<br>- リアルタイムサブスクリプション<br>- Row Level Security | 500MB                                        | 東京                     | ◯         | - CPU：2コア（共有）<br>- RAM：1GB<br>- 帯域幅：5GB<br>- RAM：1GB<br>- 帯域幅：5GB<br>- ファイルストレージ：1GB | 
| Neon                   | Postgres           | - 計算 20 時間 / 月<br>- ブランチ機能（10ブランチまで）                                                                 | 0.5GiB                                       | 日本に近いリージョン：シンガポール | ◯         |                                                                                                                 | 
| Vercel Postgres        | Postgres           | - 計算 60 時間 / 月<br>- 書き込み: 256MB / 月                                                                           | 256MB                                        | シンガポール | ◯         | - データ転送量：256MB / 月<br>- JS用SDKあり                                                                     | 
| TiDB Serverless        | MySQL（NewSQL）    | - 分散スケールDB<br>- 5000万リクエストユニット（RU）/月                                                                  | 行ベースのデータ25GB<br>列ベースのデータ25GB | 東京/大阪                | ◯         |                                                                                                                 | 
| CockroachDB Serverless | Postgres（NewSQL）   | - 分散スケールDB<br>- 5000万リクエストユニット（RU）/月                                                                  | 5GB                                          | シンガポール | ◯         |                                                                                                                 | 
| Cloudflare D1          | SQLite             | - エッジ分散 SQLite<br>- 読み取り行数：500万/日<br>- 書き込み行数：10万/日                                              | 5GB                                          | 東京/大阪                |            |                                                                                                                 | 

## Supabase

PlanetScaleが台頭するまでは無料のSQL DBといえばSupabaseだったような記憶があります。
Firebaseの代替を意識したサービスで、Postgresデータベース、認証、インスタントAPI、リアルタイムサブスクリプション、ストレージを用意しています。

- Postgres互換
- APIリクエスト：無制限
- 月間アクティブユーザー：50,000まで
- データベース容量：500MB
- CPU：2コア（共有）
- RAM：1GB
- 帯域幅：5GB
- ファイルストレージ：1GB

https://supabase.com/pricing

## Neon

Amazon Aurora Postgres に代わるサーバーレス DB を目指して開発されている フルマネージドな PostgreSQL。

- Postgres互換
- 1 Project のみ
- データベース容量：0.5GB
- ブランチ機能あり。10ブランチまで
- GUIあり
- 最も日本に近いリージョン： シンガポール

https://neon.tech/pricing

## Vercel Postgres

Next.jsを開発しているVercelの各種サービスの一つ。
Vercelにアプリをホスティングする場合の体験が良いと評判です。

- Postgres互換
- 1 つの DB まで
- 計算 60 時間 / 月
- データベース容量： 256MB
- write: 256MB / 月
- データ転送量 256MB/month
- - GUIあり
- 最も日本に近いリージョン： シンガポール
- JS用SDKあり

https://vercel.com/docs/storage/vercel-postgres

# 番外 NewSQL

## TiDB Severless

サイトの表記揺れが激しくスペックを正確に掴めておりません。
TiDBは、リアルタイムの分析処理とトランザクション処理を同時に行うことができるHTAP (Hybrid Transactional/Analytical Processing) データベースです。分散型アーキテクチャにより、水平スケールを容易に実現し、大規模なデータセットに対して高いパフォーマンスを提供します。

- MySQL互換の分散スケールDB
- 1ヶ月間、行ベースのデータ5GiBと列ベースのデータ5GiBまで無料
- 5000万 リクエストユニット（RU）/月まで無料
- 従量課金だが、かなり安そう…？正直良くわかってないので参考資料から推定額を見てください

https://www.pingcap.com/pricing/

https://www.pingcap.com/tidb-serverless-pricing-details/

参考：

https://zenn.dev/sesere/articles/c270a8332fcc80

TiDBの中の人(?)がPlanetScaleからTiDB Serverless移行の記事を書かれてました！

https://qiita.com/bohnen/items/de7557078f64891763ac

## CockroachDB Serverless

CockroachDBは、強力な一貫性と耐障害性を提供する分散SQLデータベースです。自動シャーディング、レプリケーション、トランザクションの保証により、地理的に分散したアプリケーションに適しています。そのServerlessバージョンということのようです（理解不足）

- Postgres互換の分散スケールDB
- データベース容量：5GB
- 5000万 リクエストユニット（RU）/月まで無料

https://www.saasworthy.com/product/cockroachdb/pricing

参考情報：

https://note.com/masa_tec_note/n/n4d33748bb7a5

https://zenn.dev/kaorumori/articles/a11742713a9d01

https://zenn.dev/kaorumori/articles/321ccc0ed52309

## Cloudflare D1

Cloudflare Workersと統合してエッジコンピューティング環境でSQLiteデータベースを実行できるようにします。これにより、データのレイテンシーを大幅に削減し、ユーザーに高速なアクセスを提供することができます。

- SQLite互換
- 読み取り行数：500万/日
- 書き込み行数：10万/日
- ストレージ：5GB（合計）

https://www.cloudflare.com/ja-jp/developer-platform/d1/

参考情報：

https://zenn.dev/mizchi/articles/cloudflare-d1



# まとめ

数字だけ見ればCloudflare D1が最強なように思えますが、TypeScriptの定番であるPrismaで使えない点がネックです。また、移行の場合の行数制限もあるため、本格的な選択肢としてはまだ選択しづらい内容です。

機能面やドキュメントの量も含めてバランスよく選ぶならばNeonかSupabaseでしょう。特に日本語情報に関してはSupabaseが圧倒的です。

私個人としてはCockroachDBやTiDBを新しいものとして触ってみたいと思っております。無料枠を少し溢れても安いところが大変魅力的です。