仕事の実装する。あんまり集中できなかった・・・。ぼんやりネットサーフィンしてたら夜になっていた。
- Lambda は実行が終わるとすべての状態が失われるステートレスなイメージがあるが、AWS EFS という NFS をマウントすればデータの永続化が可能。格安 DB を求める旅の中で、EFS に SQLite を置いて激安データベースとして使う試みをちょくちょく見かけた。
- 巷では分散型の SQLite(D1, LiteFS, Turso…)が流行っているが、どのように実現されているのだろうか。上のドキュメントには別解として、複数の端末からの読み書きをすべてプロキシし、単一のホストマシンで WAL モードの SQLite に読み書きすることも薦められている(WAL モードだと読み/書き同時にできる)。 LiteFS はこうした方法を採用しているようだ。
- 同じく分散型 SQLite の Turso は libsql という OSS を提供している。SQLite をクライアント/サーバ型のように扱えるようにしてるのが特徴 。どこかの仮想マシンにマスターとなる SQLite とそれを提供するサーバを置いて、実際にアプリケーションが動作するサーバレス環境にリードレプリカを配置する世界観。
- LiteFS もレプリカを手元に置く構成になってる。エッジで動く関数ならエッジにレプリカが置かれるから高速で嬉しいってことなのだろう。libsql は OSS なので DB サーバをセルフホストすることもできそうだが、情報がないのでよくわからない。
- Run SQLite As A Server with LibSQL Step By Step - YouTube めっちゃ動画あったわ、テンション高くてウケる
- まあ Supabase とか Neon が使えるならそれでいいと思う、、、
- 今知ったけど Node に sqlite のドライバー入ってたのか、Bun への対抗意識?