以下の記事で紹介したが現在開発中のアプリでPlanetScaleを使用していたが無料プランがなくなってしまうので、代替のDBサービスを試してみたので紹介
PlanetScaleの無料プランがなくなる件
5GBまでなら無料で使用できていましたが、4月8日からアップグレードしないと使用できなくなってしまうので個人開発は置き換えることにした
代替の条件
今回は個人開発で使用する前提なので以下の条件で調査 - 個人開発で使用する範疇なら無料で使用できるDBサービス - Prismaを使用できる
候補
以下の2つをサービスを試してみた - Neon - TiDB Serverless
Neon
概要
- サーバーレスのフルマネージドPostgres
- コードはGitHubで公開されている
- neondatabase/neon
- Rust製
- 始め方はサイトにアクセスして初期設定をすれば、即使用可能
- AWS AuroraやAlloyDBと似た機能を持ったアーキテクチャを採用(詳しくは以下の記事を参照)
Prismaでの使用方法
■ PR
基本は以下のサイトを参考に実装可能
メリット
- 無料枠が512MB
- ブランチングができるので、環境毎にDBを複製ことが可能
- Webのコンソールの機能が充実していて以下の機能が使用できる
- SQL editor
- IP制限
- 定期バックアップ
- VercelやDatadogなどの多くの既存システムとのインテグレーションの仕組み
- などなど、機能サポート面はかなり充実している
- OSSとしてGitHubで公開している
デメリット
- 東京リージョンが現状ない(なので、日本で使用する場合はシンガポールリージョンが一番近くなりそう)
TiDB Serverless
概要
- MySQL互換のあるNewSQLを使用
- 高い分散性能を持っており、大規模プロジェクトでも使用されている
- コードはGitHubで公開されている
- 詳細なアーキテクチャは以下の記事を参照
Prismaでの使用方法
■ PR
基本は以下のサイトを参考に実装可能
メリット
- 無料枠が5000万リクエストユニット(RU)/月
- NewSQLなのにPrismaが使用できる
- 自動でデータ分散管理されるためシャーディングが不要
- 柔軟なトランザクションの設定が用意されていて用途に合わせて変更可能
- Writeのスケールも可能
- 運営会社のPingCAPに日本支社ができたので日本語のドキュメントが充実している
デメリット
- MySQLは完全互換では無い(詳細は以下に記載)
- 学習コストが高い
- 複雑なアーキテクチャをしているので運用やチューニングに専門的な知識が必要
- 以下の記事を参考
まとめ
どちらもPrismaで問題なく動作したのが、やはりNeonの方は東京リージョンがないデメリットが大きいので、TiDB Serverlessの方を採用して開発することにした。 まだ使い始めたばっかりで、そこまで分かってないことが多いので開発してネタができたら、また記事を書こうと思います。