MisskeyをCloudflareインフラで動かすPoC公開
MisskeyをCloudflareインフラで動かすPoCを公開しました。
https://github.com/sameharukon/misskey-on-cloudflare-poc
API互換性は一部制限はあるものの100%、Postgresスキーマ互換、Cloudflare上での連合動作確認済ではあります。ちょっと連合のパフォーマンス問題は残っているものの一旦動作実証としては良しとしています。
保守を放棄したいわゆる Vibe Coding Slop と言われてもおかしくはないのであんまり大々的に宣伝したくないのですが、まあOSSなので必要ならforkしてください。
制限としてはNSFW判定用のモデルを動作させるのが難しい(Containerでいけるかもですがコストが高いのでオミット)とか、charts関連が重い(もともと重いけども)とかは残ってはいます。
DBはHyperdrive経由でsupabeseの東京リージョンと通信するなどを想定してますが、Workerのplacement設定をaws:ap-east-1にして地理的に近い位置で配置しないと遅いとかいろいろ制約があります。(デフォルトだとEUになったりして10秒とか遅延することがある)
検証してみての感想ですが、意外といけそうというところです。ioぐらいの大規模インフラでの経済性があるかはやってみないとわからんですが、おひとりさまインスタンスとか小規模インスタンスならFreeかWorkers Paid($5課金)ぐらいで済みそう。VPSとかX Serverよりも安くはなるかも。
もうちょっと最適化しようかとは当初思っていたものの、互換性破壊前提でCloudflareにガリガリに最適化したほうが面白いなと思ったので完全互換のほうはPoCにしてフリーズし、別PJで進め中。そっちは趣味的な方向になりすぎるので非公開かも。公開サーバーつくるなら公開します。
その他細かい感想
- Containersがちょっとしたサーバーレスコンテナ処理には十分使えそう。少なくともMisskeyがやってるような画像変換とかには使える。
- Hyperdriveを使う際のWorkerのplacement指定は結構罠っぽい。要注意。
- Workerのpreview機能が便利
- 最近出たTraceとIssueが便利、不審なスキャンアクセスのログがいっぱいでる……
- 管理画面は別途Accessとかで絞ったほうがいいかも