cloudflareソリューション 単体フルスタック

単体でのフルスタックでできる範囲までを記述します。

フルスタック = フロントエンド(pages)+faas(workers)+RDB構成
workersで無理な事例については扱わない。

共通項目(リバースプロキシ)

リバースプロキシのサービスはどのような運用形態でも共通で使用できます。

jamstack + DB

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に相当するものが必要になる。
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互換

Fly.io

  • Fly.io は無料でpostgresを提供してる。
    • 頑張れば使えるかも?
    • リンク先の記事で個人開発のコストはDB次第という、興味深い記事が内容が書かれている。
© 2023 Dev Blog