単体でのフルスタックでできる範囲までを記述します。
フルスタック = フロントエンド(pages)+faas(workers)+RDB構成
workersで無理な事例については扱わない。
共通項目(リバースプロキシ)
リバースプロキシのサービスはどのような運用形態でも共通で使用できます。
jamstack + DB
- no sqlはKV等幾つか選択肢あり、Cloudflare単体でフルスタック可能。
jamstack + RDB
現在(2022/5/9)Cloudflare自体にRDBサービスは無い。
-
Cloudflare D1 : 2022/6〜 よりCDN エッジ sql liteが使えるようになっている?
- CDN エッジ sql lite
- 2022/6〜 よりβテストが始まるらしい
- Durable Objectsの基礎技術が使われているかもしれない?
- もっともアクセスが多いエッジにマスターノードができる?
- sql liteだけどスケール(レプリケーション)できる?
- CloudflareならではのCDN エッジで動作するメリットがあるかもしれない。
-
litestream + R2
- Cloudflare D1があるから、まずはCloudflare D1でいいかもしれない。
- S3でできるからできるかもしれない。
- ベンダーロック無し、他に移植しやすい
- お手軽にビッグデータ解析できるかもしれない。
Cloudflare D1は最初のと言われてるので、今後もRDB製品がCloudflareから出てくるかもしれない。
faas proxy
faas(Cloudflare works)でRDB接続する際Amazon RDS Proxyに相当するものが必要になる。
RDB自体がAmazon RDS Proxy相当品を用意している可能性もあります。
faas proxy::エコシステム : Prisma Data Proxy
Prisma.jsにはAmazon RDS Proxyに相当する、Prisma Data Proxyがあり、
faasでの利用に適している、Prismaに対応したDBはfaasで使える可能性が高い。
Amazon RDS Proxyと違ってベンダーロックされず、他のfaasへの移行が容易。
Prisma.js はRDB ORMであり、Prisma.js経由で対応DBに対して同じ操作でProxyを使える。
サーバレスDB
サーバーレスDB : サーバ管理が不要
Prisma.jsがサポートしているDB
現在(2020/5/10)Prisma公式対応サーバーレスDB
- CockroachDB : Preview
- PlanetScale : Preview
planetscale : サーバレスRDB::MySQL
- AWS上でK8s実装のサービス
- 無料planあり。
- PlanetScale年表
- Vitess.ioをサーバレスDBとして提供している
- YouTube・Slackで利用されていいる。
- MySQL8を速くて簡単にスケーラブルに利用できるサービス
- MySQLの水平スケーリングシステムを利用しており、ノンブロッキングでスキーマ変更できる
- TablePlusなどのDBを確認できるツールと連携も可能
- SQLはダッシュボード上か、CLI上で動かせてすぐ確認ができる
- ブランチ機能があり、GitのようにDBを管理できる
- wiki
- Vitessについて
- Prisma.js対応
- Rails / Laravel / Node.js 向けのチュートリアルも充実している
- 自動でバックアップも取る
Cloudflare + planetscale 実装例
CockroachDB Serverless : サーバレスRDB::Postgress互換
- CockroachDB : Google Spannerクローンを目指したオープンソースのRDB
- 高いスケーラビリティと高い可用性、そして高速な処理を実現
- SQLの互換性はv21.1:公式ではPostgreSQL 13相当
- Unsupported Features の項目があり、完全互換ではない
- 強い一貫性を持つトランザクション処理も実現
- Spannerはサーバが原子時計などを備えるなど、ハードウェア側にも大きな設備があるがCockroachDBはそういったものが必要ない。
- Cockroachの意味は、障害に対してコックローチのようなしぶとさを象徴して付けられたようです。
- Cockroach Serverless
- Cockroachの開発元が提供しているServerless db
- 無料planあり。
- Prisma.js対応→faasで使える可能性が高い。
CockroachDB資料
YugabyteDB : サーバレスRDB::Postgress互換
- Prisma公式未対応、使えるか不明
- GCP上でK8s実装のサービス
- wiki
- 楽天モバイルが認めた、新基準のオープン・ソース分散SQLデータベース「YugabyteDB」〜高可用性、パフォーマンス等、妥協なきプラットフォームの実現
Fly.io
- Fly.io は無料でpostgresを提供してる。
- 頑張れば使えるかも?
- リンク先の記事で個人開発のコストはDB次第という、興味深い記事が内容が書かれている。