【PlanetScale】PlanetScaleから別のDBに移行するので調査しないと...
モチベーション
個人開発でDBにPlanetScaleを採用しているが2024年4月8日にHobbyプランが終了するので別のDBに移そうと思う。Scaler Proプランの東京リージョンだと月額で$47かかるのは流石に許容できないので。。。
できればPrismaが使える、日本リージョンがある、無料プランがあるの3点で選んでいきたい(他にも選定基準は設けるべきだが急いでいるのでスキップ)
候補
使ったことはないが筆者が認知しているものや添付しているPrismaのDBページから幾つか候補を見繕った
- Vercel Postgres
- Cloudflare D1
- Supabase
- Turso
- Neon
- Astro DB
Vercel Postgres
個人開発のホスティングはVercelにしているので抱き合わせで良いかと思った
Vercel Postgresは、Vercel Functionsやあなたのフロントエンドフレームワークと統合するために設計されたサーバーレスSQLデータベースです。
評価
リージョンに関しては一番近くてもシンガポールになる
Neon partnership
Vercel PostgresはNeon社とのパートナーシップによって運営されている
- Postgresの作成、削除、管理はVercelのダッシュボードで行う
- Vercel Postgresを使用するためにNeonアカウントを作成する必要はない
Neon
Vercel Postgresは、Neonによって駆動されるサーバーレスPostgresであるならばNeon自体はどうだろうか?
フルマネージドサーバーレスPostgres。ストレージとコンピューティングを分離し、オートスケール、ブランチング、ボトムレスストレージを提供します。
評価
Prismaが使えるか? → ⭕️
東京リージョンがあるか? → ❌
無料プランがあるか? → ⭕️
リージョンに関しては一番近くてもシンガポールになる。Vercel Postgresは、Neonによって駆動されるサーバーレスPostgres
ならリージョンも同じになるのは納得。
Branching
NeonがVercel Postgresと違うのはPlanetScaleと同じブランチ機能を有しているところ。PlanetScale使っている時にブランチ機能は便利だと思ったのでVercel Postgresより運用しやすいかもしれない。
Turso
知り合いがPlanetScaleからTursoに移行したとのことだったので調査。詳細は聞いていないので後日ヒアリングする予定。
Tursoは、SQLiteのオープンソース・オープンコントリビューションフォークであるlibSQLをベースとした、エッジホスト型の分散データベースです。
評価
Prismaが使えるか? → ⭕️
東京リージョンがあるか? → ⭕️
無料プランがあるか? → ⭕️
以下のコマンドで一番近いリージョンを確認することができる
$ curl https://region.turso.io
# {"server": "nrt", "client": "nrt"}
Why we migrated from PlanetScale to Turso
To achieve this, we are hosting it on the Vercel Edge Runtime, which requires an Edge Database to fully benefit from it.
PlanetScaleからTursoへの移行記事。移行背景としてEdge Databaseが取り上げられている。ホスティングをVercelにしているなら相性良さそう。TursoはSQLite使ったEdgeデータベースってことか。似ているのがCloudflare D1と最近出たAstro DB?
Cloudflare D1
新しいサーバーレス SQL データベースを作成し、Workers および Pages プロジェクトからクエリを実行します。
評価
Prismaが使えるか? → ❌
東京リージョンがあるか? → ❌(リージョンの概念がないのでスキップ)
無料プランがあるか? → ⭕️
Astro BD
3月中旬にリリースされたAstro DB。
まだ情報が足りないので見送り。
なぜAstro DBを作ったのか
WordPress has always been a huge inspiration for us. One of the things that makes WordPress so special is its built-in database. You’re not just managing your article content, you’re managing data, pages, blocks, images, and an entire ecosystem of plugins.
色々紆余曲折があってlibSQLに行き着いた(SQLiteのフォークで、古典的なSQLiteとの互換性を維持しつつ、ランタイムに改良を加えたもの)前述しているTrusoも同じlibSQLがベースになっている。
ちなみにAstro DBはビルトインORMとしてDrizzleを採用している
ドキュメント
PlanetScale・Cloudflare D1・Supabaseの比較
Neon・Supabase・PlanetScaleの比較
edgeとSQLiteの組み合わせ
Astro DB
Cloudflare D1
Turso
PostgreSQL系
Vercel Postgres
Neon
Supabase
Xata