前回、書いた下記のサイトを試しにD1を使ってリプレイスしてみました。

Cloudflare Workers + AWS Lambda + SQLite3 でメディアサイトを作成する

構成

graph TD; Browser((Browser))-->Frontend[Frontend on Pages]; Frontend-- Authenticated -->UserApi[UserApi on Workers]; UserApi-->Database[(D1)]; UserApi-->Storage[(R2)]; UserApi-->Cache[(KV)]; ExternalSystem[Cloud Run]-- Authenticated -->AdminApi[AdminApi on Workers]; AdminApi-->Database[(D1)]; AdminApi-->Storage[(R2)];

フレームワーク

  • Frontend
  • Api(UserApi, AdminApi)

D1を触ってみて

D1と通信(読み取り)するたびに300ms程度かかっている印象でした。

まだアルファ版なのでなんとも言えませんが今回触ってみた感想としては正式版が楽しみでしかありません。

バックアップ

バックアップが自動で行われているのも嬉しいですがダウンロードするとsqlite3ファイルがそのまま落とせます。

なので落としたファイルを普通に手元で開くことが可能です。

wrangler d1 execute で一部のクエリしか実行されない場合がある

wrangler d1 execute でsqlファイルを指定した時になぜか一部のクエリしか実行されないという現象があり、回避方法がよくわからなかったためデータ移行用のAPIを作成して対応しました。

他の方も報告されていたのでそのうち修正されるんじゃないかと思います。

まとめ

D1の正式版が出たら小中規模程度のシステムだったらこれでいいんじゃないかと思わせてくれるくらいの印象でした。

また、Hono.jsも人気があるだけあって非常に使いやすかったです。