無料で時雨堂の WebRTC SFU Sora を検証することができる主に個人向けのサービス Sora Labo をリニューアルしました。ドメインも shiguredo.app を新たに取得しました。今後自社サービスにはこのドメインを利用していきます。
https://sora-labo.shiguredo.app/
といってもほぼ外見も機能も変わっていませんが中身はドラスティックに変更しました。
なぜそもそもリニューアルしたのか
リニューアル理由は WebRTC SFU Sora as a Service の試験環境として利用するためです。
現在時雨堂では転送量無制限の WebRTC SFU Sora as a Service を開発中です。いきなり商用サービスを作っていくよりも、そもそも検証用サービスがあるのだから、まずはこれでやりたいことができるかいろいろ検証したらよいのでは?という所から始まりました。
Sora Labo は手弁当で雑に作られていたのをほぼ 1 から基盤を組み直しました。
基本方針
- 急がば回れ
- サービスをできるだけ Vultr + Cloudflare で完結させる
アプリ構成
Sora Labo アプリサーバは前段に Cloudflare がおり、その後ろに Vultr FW (ファイアーウォール)、そして Vultr LB (ロードバランサー)、そして Vultr FW を得て、Vutlr の月 6ドルインスタンスです。
構成は以下の通りです。
Cloudflare -> Public Vultr FW -> Vultr LB -> Private Vultr FW -> Vultr Instance
- まずは Cloudflare に Proxy されて Vultr FW へ届きます
- Public Vultr FW は Cloudflare IP からのみアクセス可能です
- Vultr LB は Cloudflare DNS API を利用して Let’s Encrypt で証明書を定期的に突っ込んでいます
- Praivate Vutlr FW は LB の IP かつ特定ポートのみアクセス可能です
費用は以下の通りです。
- Cloudflare 証明書マネージャー 月 10 ドル
- Vultr LB 月 10 ドル
- Vutlr Instance 月 6 ドル、今後冗長構成予定なので月 12 ドル
データベースはマネージド TimescaleDB を利用しています。
月 150 ドル程度です。これは複数サービスで共有しています。
アプリ実装
- アプリサーバは Go で書いています
- gin + sqlc + pgx という構成です
Sora 構成
Sora は 2 つのクラスターを提供しています。
一つは開発スナップショット版である Canary クラスターです。これは定期的にアップデートされて、開発中の機能が利用可能です。
もう一つは正式リリース版である Stable クラスターです。これは正式版がアップデートしない限りは更新されません。最長で半年間更新しない可能性があります。
- Sora 無料
- Vultr インスタンス月 6 ドルを 5 つなので月 30 ドル
- Cloudflare Workers 月 5 ドル
ウェブフック通知
この機能は一部の協力者にのみ公開しています。
今回はアカウント毎にウェブフックを利用可能にする仕組みを追加するため、 Sora のウェブフックは Cloudflare Workers 経由で Sora Labo サーバへ送られます。
その後 Cloudflare Workers は指定されたエンドポイント URL へウェブフックを通知します。その際にホーム画面にあるウェブフックキーを Bearer 認証のトークンとして付与して飛ばします。
今のところはセッションとイベントウェブフックのみを通知する予定です。
Sora -> Cloudflare Workers -> Sora Labo -> Cloudfalre Worekrs -> 指定エンドポイント
API
この機能は一部の協力者にのみ公開しています。
Sora の一部の HTTP API を利用できる仕組みを追加しました。Sora の HTTP API はまずは Cloudflare Workers で認証され、それが問題無ければ Sora へと送られます。
この機能は Canary クラスターでのみ提供しています。HTTP API は channel_id を指定できる API のみが対象となります。
ユーザ -> Cloudflare Workers -> Sora HTTP API
ウェブフック通知と API をユーザが気軽に利用できる仕組みを追加しました。
今後は Sora Labo へ以下の仕組みを追加していく予定です
一部の協力者にのみ提供する機能も含まれています。
- Discord 連携
- Stable での API とウェブフック通知の利用
- 利用枠 一週間 100 分を一ヶ月 1000 分 へ拡大
- 同時接続数の制限の緩和
- ダッシュボードでの Sora 監視情報の閲覧
- ダッシュボードでの Sora HTTP API 回数閲覧
- ダッシュボードでの Sora HTTP ログ閲覧
- ダッシュボードでの Sora 統計情報閲覧
- ダッシュボードでの Kohaku 統計情報閲覧
- ダッシュボードでのクライアント問題解析機能
- ダッシュボードでの Sora ログ閲覧
- Sora Labo ダッシュボードの Cloudflare Workers + Remix 化
- 録画合成機能
- デザインの Bootstrap 化
- Sora Prebuild UI 組み込み機能
- チャネル ID 事前設定機能
- チケット機能
SaaS で実現したい機能をすべて無償で提供します。
WebRTC SFU Sora as a Service Tobi
Sora Labo の機能提供が落ち着いたタイミングで Tobi の開発も進めていきます。Sora Labo で提供している機能はすべて提供予定です。
制限が「接続数」と「利用可能帯域」のみとなります。
プランは 10 接続 100 Mbps 使い放題で月 5 万円からです。サポートは Discord のみです。
今年はパッケージ製品である Sora 、そのパッケージ製品のSaaS である Tobi の二つを主軸に行ければと思います。