shiguredo
Published in

shiguredo

Sora as a Service Tobi アップデート

2022 年 4 月版

現在時雨堂では現在、自社パッケージ製品「WebRTC SFU Sora」の SaaS (Software as a Service) 版となる「Tobi」を絶賛開発中です。

転送量課金ではなく帯域課金 (と同時接続数課金)

Tobi はよくある「転送量や利用時間による課金」ではなく「利用帯域による課金」というモデルをとっています。なぜ帯域課金なのかというと、 WebRTC SFU をつなぎ放題で使いたいという要望に応えるためです。

具体的には、10 同時接続まで利用できる 100 Mbps の最小プランを月額 7 万円 (税別) で提供する予定です。これが基本料金となります。

つまり 1 ヶ月まるまる 100 Mbps での配信をし続けても、 7 万円のみです。転送量による料金は一切かかりません。

なぜ帯域課金なのか

時雨堂では「WebRTC Native Client Momo」という WebRTC クライアントをオープンソースソフトウェアとして提供しています。この Momo はハードウェアアクセラレーターを利用し、4K 30fps や 1080p 60fps といった高画質な映像を配信できるようになっています。

高画質な配信ができるクライアントを提供しつつ転送量課金モデルにすると、確かに利益は出るかもしれませんが、気軽に使ってもらうことはできません。

例えば主要なクラウドサービスの転送量は 1 GiB で $ 0.1くらいが相場のようです。

もし 100 Mbps をフルで 30 日間 (720 時間) 使い続けたとすると …

100 Mbps x 720 時間 = 32.4 TiB/月

…となります。1 GiB が $ 0.1 とし、 $ 1 が 125 円とするのであれば 405,000 円/月 かかってしまいます。

$ 0.1 というのは転送量の費用だけなので、WebRTC な CPaaS とかであれば、ここに利益を出すため 2-3 倍した金額を乗せるのが普通だと思います。つまり 1 GiB あたり$ 0.2–0.3 となります。

そうなってしまうと単純計算で 100 万円前後の費用がかかってしまいます。これでは気軽に高画質の映像を配信することはできません。

そのため、時雨堂が帯域契約をしたサーバーを用意し、そこに Sora を載せて、転送量ではなく帯域による課金モデルのサービスを提供することにしました。

時雨堂が考える WebRTC SFU SaaS

時雨堂はとても小さな企業ということもあり、大企業のような「何でも入りのマネージド」なサービスを提供することはできません。

そのため、時雨堂では SaaS を提供するにあたり方針を決めました。

  • 顧客向けのダッシュボードをサービスとしては提供しない
  • Sora のマネージドに特化する
  • JWT を活用する
  • 拡張プランを提供する

ダッシュボードをサービスとして提供しない

Sora を運用するのはほとんどが技術者です。そのためサービスとしてはダッシュボードは提供せず、利用者が自分でダッシュボードを構築できる API を提供するようにしました。

以下はまだ開発中ですが、提供予定の API 一覧です。

/create-access-token
/count-connections-this-month
/count-sessions-this-month
/get-total-duration-this-month
/get-total-bandwidth-this-month
/get-bandwidths-last-month
/get-bandwidths-this-month
/get-bandwidths-last-3-days
/get-bandwidths-last-24-hours
/count-live-connections
/list-live-connections
/list-live-session
/teams/get-sessions-last-3-days
/teams/get-api-logs-last-3-days
/teams/get-webhook-logs-last-3-days
/teams/list-account

将来的にダッシュボードを開発し、OSS として公開し、利用者自身で立てたり、カスタマイズしてもらうことを考えています。そもそもダッシュボードの認証の仕組み自体は利用者に用意してもらう方が効率がいいと考えています。

Sora のマネージドに特化する

Tobi では Sora をマネージドとして提供するだけで、何か新規に便利な機能を提供したりは一切しません。あくまで Sora の運用を代行するだけです。

そのため、Tobi API と JWT 認証を利用した認証の仕組み以外は Sora のドキュメントを読んで利用してもらうという前提です。

JWT を活用する

Tobi の認証には JWT HS256 を利用しています。API キーを提供し、利用者自身ででトークンを生成することが可能です。認証や認可にはプライベートクレームを利用します。

channel_id: チャンネル ID
auth_webhook_url: 認証ウェブフックの通知先
event_webhook_url: イベントウェブフックの通知先
max_concurrent_connections: 最大同時接続数
max_bandwidth_mbps: チーム最大帯域数(Mbps)

たとえば開発者が ngrok で公開したローカルサーバーの URL を JWT クレームのウェブフック URL へ指定して通知するといったことも可能です。

帯域および同時接続数による従量課金プラン

Tobi では最大 500 Mbps / 50 同時接続まで利用できる従量課金プランを提供します。

最小となる基本料金は 月 7 万円 (税別) で、100 Mbps / 10 同時接続まで利用できます。

ここから利用帯域が 100 Mbps 増えるごとに 3.5 万円、同時接続数が 10 増えるごとに 3.5 万円がかかります。

最大で 500 Mbps / 50 同時接続数までは接続できます。最大で月 35 万円の料金となります。

同時接続数は 50 まで増やしてもいいけど、帯域は 100 Mbps で押さえたい場合は、そのような設定にすることも可能ですし、プライベートクレームを利用して max_concurrent_connections: 50 / max_bandwidth_mbps: 100 を設定して接続することで帯域が 100 Mbps を超える新規接続を拒否することが可能になります。

拡張プランを提供する

ログの保存日数を増やしたり、API の呼び出し回数やウェブフックの通知回数を増やしたりするといった拡張プランを用意する予定です。

標準で用意されている利用や保存枠を拡張したい方向けのプランです。

JWT 認証をステートフルにし、JWT の revoke へ対応する認証拡張プランも検討中です。

サービスの提供はベータ版開始を 5 月、正式版を 8 月で予定しています。s最新情報は Twitter の時雨堂コミュニティか、時雨堂の Discord にて共有しています。

もしご興味があるかた Discord の #tobi-support へお願いします。

--

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
V

V

Erlang/OTP / 時雨堂 / WebRTC / E2EE

More from Medium

Buzzing with purpose: Beewise’s meteoric rise and lessons for today’s early-stage founders

Amazon’s 57%, Apple’s Pandora’s Box, FTC: Destroy the Algorithm

Beethoven’s 9th

Like a Breath of Fresh Air: A Visit to Morocco’s Windy City