BigBlueButtonサーバーの要件:同時接続ユーザー500人向けの実用的なサイジングガイド

シナリオ例:架空のコミュニティカレッジで、約100人ずつのクラスが5つ開講され、合計500人が同時にオンラインで参加すると想定します。これは計画例であり、ベンチマーク、顧客事例、テスト結果ではありません。重要な設計上の選択は、複数のサーバーに分散された複数の会議に対応できる規模にすることです。500人規模の大規模な会議は、リスクプロファイルが異なります。

データセンターの通路に並ぶ、高さのあるサーバーラックの列。これは、BigBlueButtonクラスターをホストできるインフラストラクチャを表している。
サーバー容量計画は、専用のコンピューティングリソース、ネットワークの余裕、そして会議活動の明確な予測から始まります。

BigBlueButtonが公式に要求する要件は何ですか?

BigBlueButton の最新インストールガイドには、専用サーバーの運用に必要な最小要件として、Ubuntu 22.04 64 ビット、シングルスレッド性能の高い 8 コア CPU、スワップが有効な 16 GB メモリ、および 250 Mbit/s 以上の対称帯域幅が記載されています。録画を保持する場合は少なくとも 500 GB、録画を無効にする場合は 50 GB の空きディスク容量が必要です。また、公開 TCP ポート 80 と 443、UDP ポート 16384~32768、ホスト名と有効な SSL 証明書、および IPv4 と IPv6 のサポートも必要です。これらはサーバーの最小インストール要件であり、特定の会議構成に対応できる容量を保証するものではありません。オペレーティングシステムとパッケージの要件は変更される可能性があるため、展開予定のリリースのインストール ページを確認してください。

プロジェクトのFAQでは、これまでサーバーの最小要件を満たす目安として、同時接続ユーザー数を約200人と説明してきました。これはあくまでも大まかな計画の参考値であり、サービスレベルの保証やノードごとの普遍的な制限ではありません。BigBlueButton自身も、サーバーのCPU、メモリ、帯域幅、Webカメラと画面共有の使用状況、構成、ソフトウェアのバージョンによって結果が変わることを警告しています。200ユーザーという数値はあくまで初期仮説として捉え、ご自身のワークロードで検証する必要があります。

同時接続ユーザー500人向けの実用的な出発点

架空の大学を想定した場合、評価対象として妥当な初期アーキテクチャは、4ノード構成のBigBlueButtonクラスタです。各メディアノードは、現在の運用最小要件を満たすか、それを上回る性能を持ち、専用の高周波数CPUを使用します。参加者500人が均等に分散した場合、1ノードあたり平均125人となります。4つ目のノードは、会議の配置の偏りやメンテナンス計画に対応するための余裕を生み出すものであり、既に障害が発生したサーバー上で実行されている会議を自動的に保護するものではありません。

成分開始計画目標なぜそれが重要なのか
BigBlueButton メディアノード専用サーバー4台。各サーバーは少なくとも8つの強力なCPUコアと16GBのRAMを搭載。ライブメディアの作業を分離し、最小サイズのホスト1台よりも複数の会議を分散して行うためのスペースを確保できます。
メディアノードごとのネットワーク少なくとも1 Gbit/sの対称容量を評価することは賢明な目標であり、公式の250 Mbit/sの最小値を考慮に入れる必要がある。音声、ウェブカメラ、画面共有、参加者のダウンロードなどはすべてネットワーク容量を消費します。実際のピークスループットとパケット損失を測定してください。
ディスクと録音インストールガイドに従って、ローカルで録画する場合はノードごとに最低500GBの空き容量が必要です。それ以外の場合は、録画しない最小容量として50GBを確認してください。記録の蓄積量は、記録期間、セッション数、および保存期間によって異なります。アーカイブ容量は別途計画してください。
クラスタルーティング会議対応のスケーラーまたはロードバランサー、および必要に応じてテスト済みの共通クライアント/プロキシ設定新しい会議はノードに割り当てられる必要があり、実行中の会議はそれぞれ割り当てられたサーバー上に残ります。

4ノード構成の推奨は、公式の最小構成と従来の200ユーザーという目安から推測されるエンジニアリング上の出発点です。BigBlueButtonは、500ユーザーのワークロードごとに4台の特定のサーバーを保証する包括的な仕様を公開していません。たとえば、1台のサーバーが利用できない場合、残りの3台のサーバーは、会議の再割り当てやユーザーの再接続が可能で、残りのサーバーがテスト済みの制限内に収まっている場合に限り、500ユーザーのうち平均約167ユーザーを処理できます。障害が発生したノードでアクティブな会議は、透過的に別のノードに移行しません。ノード障害発生時の稼働時間が必須の場合は、復旧手順をテストし、この単純なモデルを超える追加容量を検討してください。

100人規模のクラス5つと500人規模の会議1つの違い

BigBlueButton クラスターは、会議を複数のサーバーに分散します。単一の会議のために複数のノードを 1 つの共有メディアプロセッサに統合することはありません。100 名ずつのクラスを 5 つまとめて 4 台のサーバーに分散して会議として配置できますが、500 名のクラスを 1 つだけ実行する場合は、1 台の BigBlueButton サーバーで実行されます。プロジェクトのバージョン管理された FAQ では、200 名を超える単一の会議を通常のサポート対象の使用方法と同様に扱うことは推奨していません。要件が 500 人の単一の参加者である場合は、BigBlueButton チームまたは資格のあるプロバイダーと正確な設計を確認してください。イベントをより小さなインタラクティブ ルームに分割できるか、または参加者のインタラクションを制限した別のブロードキャストとして配信できるかを検討してください。

架空のクラス構成も重要です。ほとんどの学生が音声を聞いてスライドを見るだけで、講師だけがウェブカメラを共有する場合、多くの参加者がカメラと画面共有を公開する会議よりもメディア負荷ははるかに低くなります。BigBlueButton の FAQ では、解像度別のウェブカメラのビットレートの例と、公開するウェブカメラとビューアの数からサーバーの受信と送信を推定する方法が示されています。このモデルを使用して最初の帯域幅の見積もりを作成しますが、音声、シグナリング、画面共有、再送信、プロトコルのオーバーヘッドを含めてください。500 に推測したビットレートを掛けて、その結果を容量計画と呼ぶのはやめてください。

設計に含めるネットワーク、会議室、録音機能

メディアトラフィックに直接的な経路を提供する

ブラウザクライアントが、必要なTCPおよびUDPポートを介して各メディアノードにアクセスできるようなネットワーク設計を使用してください。BigBlueButtonのクラスタプロキシのドキュメントによると、メディアストリームとWebSocket接続は会議をホストするサーバーと直接交換され、共通プロキシは主にクライアントインターフェイスと関連するWebアセットを中継します。誤ってすべてのメディアを1つの小さなゲートウェイに流してしまうリバースプロキシは、ボトルネックになる可能性があります。負荷テストの前に、ファイアウォールルール、パブリックアドレス、DNS、証明書、および双方向の帯域幅を確認してください。

サイズ記録ストレージは、出席者数ではなく、保持期間に基づいて決定されます。

例の大学の場合、1日あたりの録画授業数と録画時間を推定し、実際のリリースと設定に基づいて代表的な録画ファイルのサイズを測定します。予想される1日あたりの出力数に保持日数を掛け、運用上の余裕を加算します。インストールガイドに記載されている500GBの空き容量は、あくまでも最低限の目安であり、特定の保持ポリシーに適合することを保証するものではありません。空き容量と録画処理キューを監視し、アーカイブファイルはテスト済みのワークフローを通してのみ移動してください。

発売前に見積もりを検証する方法

  1. ワークロードについて説明してください。同時接続ユーザー数、会議数、会議あたりのユーザー数、ウェブカメラのパブリッシャーとビューアー数、画面共有数、音声使用量、録画ポリシー、セッション期間、参加バースト数を記録してください。5つのクラスの例は、実際のパターンと類似している場合にのみ使用してください。
  2. 本番環境と同等のノードを選択してください。CPU世代とクロック動作、メモリ、オペレーティングシステム、ネットワークパス、ストレージ、およびBigBlueButtonのリリースバージョンを一致させてください。共有インスタンスまたはCPUスロットリングされたインスタンスは、専用コンピューティングとは動作が異なる場合があります。
  3. 段階的な負荷テストを実施します。まずは少人数グループから始め、リアルなカメラ、音声、スライド、画面共有、録画機能を活用しながら、同時参加人数を段階的に増やしていきます。定常状態のミーティングだけでなく、同期参加期間も設けるようにしましょう。
  4. ユーザーが認識できるシグナルとサーバーのメトリクスをまとめて監視します。CPUの飽和度と実行キュー、メモリ負荷とスワップ、ネットワークスループットとパケット損失、ディスク容量とI/O、サービスの再起動、そして音声の遅延や途切れ、ビデオのフリーズ、共有の失敗、再接続ループなどの会議の不具合を追跡します。
  5. ピーク時と回復時のテストを繰り返します。想定されるピーク状態を十分に長く維持して、熱負荷やメモリ負荷を顕在化させた後、ノードが利用不能になった場合に何が起こるかをテストします。新しいミーティングが正常なノードにルーティングされることを確認し、影響を受けたユーザーがどのように再参加するかを記録します。
  6. 安全な運用上限を設定してください。同時接続ユーザー数の上限は、最初の成功実行結果ではなく、余裕のある容量を用いた繰り返し可能なテストに基づいて設定してください。ソフトウェアのアップグレード、ウェブカメラのポリシー変更、録画設定の変更、またはホスティングハードウェアの変更後には、必ず再テストを実施してください。

500ユーザー規模の展開における結論

複数の通常会議で同時に500人が参加する場合、公式の運用最小要件を満たす専用のBigBlueButtonメディアノード4台と、堅牢な会議対応クラスタ構成で評価を開始してください。ネットワーク容量は余裕をもって予算を確保し、録画ストレージは測定された保持要件に基づいて計画し、会議室とメディアの正確な組み合わせをテストしてください。この設計はサイジングの仮説であり、特定のクラウドインスタンスが500人のユーザーをサポートできることを証明するものではありません。500人規模の会議室1室はワークロードが異なるため、クラスタ全体のワークロードから推測すべきではありません。

公式資料

コメントを残す

クライアントブラウザでのJitsi MeetにおけるCPU使用率の高さを修正する

クライアントブラウザでのJitsi MeetにおけるCPU使用率の高さを修正する

Jitsi MeetブラウザのCPUスパイクを診断し、ビデオタイル、カメラエフェクト、ブラウザグラフィック、ホスト設定をチェックすることで、クライアントの負荷を軽減します。

PrometheusとGrafanaを使用してJitsi Videobridgeのメトリクスを監視する方法

PrometheusとGrafanaを使用してJitsi Videobridgeのメトリクスを監視する方法

Jitsi Videobridgeに内蔵されたPrometheusエンドポイントを使用して、Jitsi Videobridgeの状態、会議の負荷、トラフィックを追跡し、Grafanaでデータを探索およびグラフ化できます。

Jitsi Meet Docker のカスタムドメイン名の設定方法

Jitsi Meet Docker のカスタムドメイン名の設定方法

Jitsi Meet Docker 用のカスタムドメインを、DNS、PUBLIC_URL、HTTPS、Let's Encrypt、ファイアウォールポート、NAT 設定、エンドツーエンド検証とともに構成します。

SSL更新後にZimbra管理コンソールで発生する404 Not Foundエラーを修正する

SSL更新後にZimbra管理コンソールで発生する404 Not Foundエラーを修正する

SSL更新後に発生するZimbra管理コンソールの404エラーを修正するには、正しいURLとポート、プロキシルーティング、サービスステータス、デプロイ済みの証明書、およびログを確認してください。

Nextcloudの「PHP OPcacheが正しく設定されていません」という警告を修正する

Nextcloudの「PHP OPcacheが正しく設定されていません」という警告を修正する

アクティブなPHP SAPI、サイズ制限、コメント、および再検証設定を確認することで、NextcloudのPHP OPcache構成警告を診断および修正する方法を学びましょう。

MySQLバージョンアップグレード後のKopanoデータベース移行エラーを修正する

MySQLバージョンアップグレード後のKopanoデータベース移行エラーを修正する

MySQLまたはMariaDBのアップグレード後にKopanoデータベースの移行が失敗した場合は、バックアップ、サーバーバージョン、SQLモード、文字セット、スキーマ状態、およびログを確認してトラブルシューティングを行います。

NextcloudでLDAPとActive Directory認証を設定する方法

NextcloudでLDAPとActive Directory認証を設定する方法

セキュアなトランスポート、ユーザーおよびグループフィルタ、ログイン属性、そしてテスト済みの展開機能を使用して、NextcloudをLDAPまたはActive Directoryに接続します。

GoogleサービスなしでElement Android通知を修正する方法:UnifiedPushガイド

GoogleサービスなしでElement Android通知を修正する方法:UnifiedPushガイド

UnifiedPush、Androidの権限設定、バッテリー設定、および信頼性の高い検証テストを設定することで、Googleサービスを削除した端末におけるElement Android通知の問題を修正します。

Nextcloudの「データベースに一部のインデックスが欠落しています」という警告を修正する

Nextcloudの「データベースに一部のインデックスが欠落しています」という警告を修正する

Nextcloudのデータベースインデックス不足警告を、公式のoccコマンドでクリアします。まずバックアップを作成し、変更内容をプレビューしてから修復を実行し、結果を確認してください。

Element WebでKeycloakを使用してシングルサインオン(SSO)を設定する方法

Element WebでKeycloakを使用してシングルサインオン(SSO)を設定する方法

Element Web 用の Keycloak SSO を設定するには、OIDC を Synapse に接続し、正確なコールバック URL を設定し、ユーザー クレームをマッピングし、ログアウトをテストします。