Oracle Cloudへの低レイテンシ・ウォッチ・パーティ・ビデオ・ストリーミング・プラットフォームの導入

近年、ライブストリーミングウォッチパーティーの需要が高まってきており、Red5 Proのようなストリーミングプラットフォームに成長市場が生まれています。

ストリーミング・プロバイダ間の激しい競争にもかかわらず、すべてのプラットフォームが同じように作成されるわけではありません。実際、多くのストリーミング・サービスには、30-120s以上のレイテンシが付属しています。そのようなラグは、何人かのメンバーがホームラン、スラムダンク、またはノックアウトの興奮を体験し、他のメンバーは、アクション自体を見る前に、彼らの共同ウォッチャーの何秒かのチアを通して苦しむように、ウォッチパーティーを台無しにすることができます。しかし、Red5 Proは、Webリアルタイム通信(WebRTC)に基づいてメディア・サーバー・システムを開発し、待機時間が500ms未満、または約0.5秒でライブ・ストリーム・ビデオを提供し、ウォッチ・パーティのすべてのユーザーが同時にアクションを参照できるようにします。

Red5 Proは、Oracle Cloud Infrastructure(OCI)上でプラットフォームを実行し、KeepBoxingFree.comでウォッチ・パーティをサポートします。各Red5 Proデプロイメントでは、ウォッチ・パーティごとに50,000人のユーザー、6,250人のウォッチ・パーティ、8人のユーザーをサポートしています。Red5 Proは、小さい単位でスケーリングできます。単一ノード(スケーリング可能な最小ノード)は、300-1000ユーザーの容量を追加します。小さい単位でスケーリングすると、Red5 Proでは、アイドル・インスタンスなしでオンデマンドでスケーリングできます。監視している人の数および監視する時間に応じて、エグレス・トラフィックが生成されると推定されます:

  • 最大50,000ユーザー用の4.5 Mbpsのビットレート
  • ピーク・キャパシティ中でも500ミリ秒未満のレイテンシ

Red5 Proは、Oracle Cloud Infrastructureでプラットフォームを実行することを選択したため、次のメリットを活用できます。

  • AMD E4 Flexコンピュート・シェイプを使用して、バースト中にすばやくスケールアウトできる柔軟性
  • データ転送コストの削減

    インバウンド・データ転送には課金されません。アウトバウンド・データ転送の場合、1か月当たりの最初の10TBは無料です。

  • Red5 Proノードの起動時の一貫した時間(インスタンス)

    他のハイパースカラーでは、打ち上げに要する時間は8~10時間でした。OCIを使用すると、起動時間が2時間に短縮されます。これにより、Red5 Proは、数百のノード/インスタンスを迅速に必要とするときに容量を拡張できます。

アーキテクチャ

Red5 Proウォッチ・パーティには、イベントのライブ・ビデオ・フィードを提供する責任がある一般公開者、有名人、およびブロードキャスターがアクセスできます。

アーキテクチャは、ストリーム・マネージャによって管理されるOracle Cloud Infrastructure (OCI)の異なるリージョンにあるRed5 Proサーバーのクラスタで構成されます。これらのストリーム・マネージャは、Red5 Proエコシステムへの主要なエントリ・ポイントであり、ストリームを公開またはサブスクライブするための適切なサーバー・インスタンスを割り当てます。ストリーム・マネージャもロード・バランシングされ、ノードのライフサイクルを監視および管理します。

ユーザーは、ウォッチ・パーティWebサーバーにアクセスしてアカウントを登録します。ユーザー・アカウント情報およびイベント詳細は、会議データベースをホストする完全管理型のOracle MySQL Database Serviceクラスタに格納されます。次に、アカウント所有者はイベントに登録し、友人をウォッチ・パーティに参加するよう招待できます。認証後、ユーザー・トラフィックは一連のロード・バランサを通過し、OCI自動スケーリングを使用してユーザー・トラフィックの急増を処理することでスケーリングされたパーティWebサーバーを監視します。

アーキテクチャ内のすべての仮想インスタンスは、AMD E4 Flex仮想マシン(VM)で実行されます。イベントの日に、ブロードキャスタはイベントフィードをトランスコーダに送信し、フィードを異なるバリアント(さまざまな解像度のアダプティブビットレートストリーム)に変換するか、トランスコーディングが不要な場合はオリジンサーバーに直接変換します。Red5 Proでは、ブロードキャスタによって生成されるライブ・ストリームと、Webカメラを介してビデオ・チャットに参加しているウォッチ・パーティ・サブスクライバによって生成されるWebストリームの2種類のストリームがサポートされています。

ストリーム・マネージャは、ブロードキャスタ・トラフィックをオリジン・サーバーに転送し、サブスクライバ・トラフィックをエッジ・サーバーに転送します。ストリーム・マネージャは、WebRTC接続内のピア間でWebソケットをプロキシするシグナリング・サーバーとしても機能します。ストリーミング情報は、ストリーム・マネージャによって保持され、会議データベースを表すOracle MySQL Database Serviceクラスタに格納されます。低レイテンシを確保するために、Red5 Proにはオリジン・サーバーとエッジ・サーバーのロード・バランサがないため、パブリッシャとサブスクライバ間のホップを最小限に抑えることができます。ネットワーク・セキュリティ・グループ(NSG)は、リソース間のネットワーク・トラフィックを制御します。

次の図は、Webパーティおよびブロードキャスト接続プロセスを示しています。



red5-oci-data-flow-oracle.zip

Webインタフェースの高可用性は、3つのフォルト・ドメインにわたる可用性ドメイン内のロード・バランシング・サーバーによって維持されます。両方のOracle MySQL Database Serviceデータベースが高可用性クラスタにあります。プライマリ・データベースに書き込まれるデータもスタンバイ・データベースにレプリケートされます。ストリーム・マネージャは、ロードの変更をサポートするために、オリジン・サーバーおよびエッジ・サーバーを自動スケールします。ストリーム・マネージャはterraformコードを使用して、自動スケーリングのためにノードを動的にプロビジョニングおよびプロビジョニング解除します。スケーリングは、オリジンおよびエッジ・ノードへの接続数に基づくRed5 Proポリシーによって構成およびトリガーされます。たとえば、デフォルトでは、各コンポーネントに対して60%のアラームがトリガーされます。エッジ・サーバーに400接続というポリシーが設定されている場合、241接続があると、追加のユーザーに対応するために新しいエッジ・サーバーがデプロイされます。必要に応じてスケーリングするかわりに、サーバーを事前にステージングするようにポリシーを設定できます。Oracle Cloud Infrastructure Domain Name Serviceは、サポート・イベントのDNSゾーンを管理するために使用します。OCI Email Deliveryサービスは、Red5 Proシステムから登録済ユーザーに電子メールを送信するために使用されます。

次の図は、このリファレンス・アーキテクチャを示しています。



red5-oci-architecture-oracle.zip

Red5 Proの将来の状態アーキテクチャに対するビジョンには、次のものが含まれます。

  • Red5 Proプラットフォームを世界中の複数のOCIリージョンにデプロイ
  • サーバーごとに多数のブロードキャスト・チャネルをサポートするマルチテナント・アーキテクチャの作成
  • Oracle人工知能の音声と言語サービスを統合して、音声とテキストの文字変換および言語翻訳を行い、ブロードキャスタとユーザーの両方に対して多言語オプションを有効にする

アーキテクチャには、次のコンポーネントがあります。

  • テナント

    テナンシは、Oracle Cloud Infrastructureへのサインアップ時にOracleがOracle Cloud内で設定するセキュアで分離されたパーティションです。テナンシ内のOracle Cloudでリソースを作成、整理および管理できます。テナンシは、会社または組織と同義です。通常、会社は単一のテナンシを持ち、そのテナンシ内の組織構造を反映します。通常、単一のテナンシは単一のサブスクリプションに関連付けられ、単一のサブスクリプションには1つのテナンシのみが含まれます。

  • リージョン

    Oracle Cloud Infrastructureリージョンは、可用性ドメインと呼ばれる1つ以上のデータ・センターを含むローカライズされた地理的領域です。リージョンは他のリージョンから独立しており、広大な距離で(複数の国または複数の大陸にまたがる)リージョンを分離できます。

  • コンパートメント

    コンパートメントは、Oracle Cloud Infrastructureテナンシ内のリージョン間論理パーティションです。コンパートメントを使用して、Oracle Cloudでリソースを編成、リソースへのアクセスを制御および使用割当てを設定します。特定のコンパートメント内のリソースへのアクセスを制御するには、誰がリソースにアクセスできるか、どのアクションを実行できるかを指定するポリシーを定義します。

  • 可用性ドメイン

    アベイラビリティ・ドメインは、リージョン内の独立したスタンドアロン・データ・センターです。各可用性ドメイン内の物理リソースは、他の可用性ドメイン内のリソースから分離されるため、耐障害性が提供されます。可用性ドメインは、電源や冷却、内部可用性ドメイン・ネットワークなどのインフラストラクチャを共有しません。そのため、ある可用性ドメインでの障害がリージョン内の他の可用性ドメインに影響することはほとんどありません。

  • Bastionサービス

    Oracle Cloud Infrastructure Bastionは、パブリック・エンドポイントがなく、ベア・メタルや仮想マシン、Oracle MySQL Database ServiceAutonomous Transaction Processing (ATP)、Oracle Container Engine for Kubernetes (OKE)、およびSecure Shell Protocol (SSH)アクセスを許可するその他のリソースなど、厳密なリソース・アクセス制御を必要とするリソースへの制限および時間制限付きのセキュア・アクセスを提供します。Oracle Cloud Infrastructure Bastionサービスでは、ジャンプ・ホストをデプロイおよび保守せずにプライベート・ホストへのアクセスを有効にできます。さらに、アイデンティティ・ベースの権限と集中管理された監査済および期限付きSSHセッションにより、セキュリティ・ポスチャが向上します。Oracle Cloud Infrastructure Bastionを使用すると、要塞アクセス用のパブリックIPが不要になり、リモート・アクセスを提供する際の手間や潜在的な攻撃対象領域が排除されます。

  • DNS

    Oracle Cloud Infrastructure Domain Name System (DNS)サービスは、拡張性に優れたグローバル・エニーキャスト・ドメイン・ネーム・システム(DNS)・ネットワークであり、エンド・ユーザーがどこからでも、可能なかぎり迅速に顧客のアプリケーションに接続できるように、DNSのパフォーマンス、自己回復性およびスケーラビリティを提供します。

  • ポリシー

    Oracle Cloud Infrastructure Identity and Access Managementポリシーでは、誰がどのリソースにどのようにアクセスできるかを指定します。アクセス権はグループ・レベルおよびコンパートメント・レベルで付与されます。つまり、特定のコンパートメント内またはテナンシへの特定のアクセスのタイプをグループに付与するポリシーを記述できます。

  • 電子メール配信

    Oracle Cloud Infrastructure Email Deliveryは、スケーラビリティ、コスト効率および信頼性に優れた電子メール配信サービスです。ミッション・クリティカルなマーケティング、通知、および領収書、不正検知アラート、多要素による本人確認、パスワードのリセットなどのトランザクション通信用の大量のアプリケーション生成電子メールを送信できます。

  • Terraform

    Oracle Cloud Infrastructure Resource Managerでは、Terraformリソースのプロビジョニング処理を自動化できます。これは、infrastructure-as-codeモデルを使用したリソースのインストール、構成および管理に役立ちます。

  • 仮想クラウド・ネットワーク(VCN)およびサブネット

    VCNは、Oracle Cloud Infrastructureリージョンで設定する、カスタマイズ可能なソフトウェア定義のネットワークです。従来のデータ・センター・ネットワークと同様に、VCNによってネットワーク環境を完全に制御できます。VCNには、VCNの作成後に変更できる、重複しない複数のCIDRブロックを含めることができます。VCNをサブネットにセグメント化して、そのスコープをリージョンや可用性ドメインに設定できます。各サブネットは、VCN内の他のサブネットと重複しない連続した範囲のアドレスで構成されます。サブネットのサイズは、作成後に変更できます。サブネットはパブリックにもプライベートにもできます。

  • セキュリティ・リスト

    サブネットごとに、サブネットの内外で許可する必要があるトラフィックのソース、宛先およびタイプを指定するセキュリティ・ルールを作成できます。

  • ルート表

    仮想ルート表には、サブネットからVCN外部の宛先(通常はゲートウェイ経由)へのトラフィックをルーティングするルールが含まれます。

  • インターネット・ゲートウェイ

    インターネット・ゲートウェイにより、VCN内のパブリック・サブネットとパブリック・インターネットの間のトラフィックが許可されます。

  • サービス・ゲートウェイ

    サービス・ゲートウェイは、VCNからOracle Cloud Infrastructure Object Storageなどの他のサービスへのアクセスを提供します。The traffic from the VCN to the Oracle service travels over the Oracle network fabric and never traverses the internet.

  • ネットワーク・セキュリティ・グループ(NSG)

    ネットワーク・セキュリティ・グループ(NSG)は、クラウド・リソースの仮想ファイアウォールとして機能します。Oracle Cloud Infrastructureのセキュリティ・モデルにより、すべてのトラフィックが拒否され、VCN内のネットワーク・トラフィックを制御できます。NSGは、単一のVCN内の指定されたVNICセットにのみ適用されるイングレスおよびエグレス・セキュリティ・ルールのセットで構成されます。

  • ロード・バランサ

    Oracle Cloud Infrastructure Load Balancingサービスは、単一のエントリ・ポイントからバックエンドの複数のサーバーへの自動トラフィック分散を提供します。

  • コンピュート

    Oracle Cloud Infrastructure Computeサービスを使用すると、クラウド内のコンピュート・ホストをプロビジョニングおよび管理できます。CPU、メモリー、ネットワーク帯域幅およびストレージのリソース要件を満たすシェイプを使用してコンピュート・インスタンスを起動できます。コンピュート・インスタンスを作成したら、インスタンスに安全にアクセスして再起動し、ボリュームをアタッチおよびデタッチして、不要になったら終了できます。

  • Oracle MySQL Database Service

    Oracle MySQL Database Serviceは、開発者がセキュアなクラウド・ネイティブ・アプリケーションを迅速に開発およびデプロイできるフルマネージドのOracle Cloud Infrastructure (OCI)データベース・サービスです。OCI用に最適化され、OCIで排他的に利用可能になるOracle MySQL Database Serviceは、OCIおよびMySQLエンジニアリング・チームによって100%構築、管理、サポートされています。

    Oracle MySQL Database Serviceには、運用MySQLデータベースに対して高度なリアルタイム分析を直接実行するための高パフォーマンス分析エンジン(HeatWave)が統合されています。

組込みとデプロイにご注目ください

Oracle Cloud Infrastructureで構築したものを表示しますか。学んだ教訓、ベスト・プラクティス、参照アーキテクチャをクラウド・アーキテクチャのグローバル・コミュニティと共有することを検討していますか?ご利用の開始をお手伝いします。

  1. テンプレート(PPTX)のダウンロード

    サンプル ワイヤフレームにアイコンをドラッグ アンド ドロップして、独自のリファレンス アーキテクチャを説明します。

  2. アーキテクチャ・チュートリアルを見る

    リファレンス・アーキテクチャの作成方法に関するステップバイステップの手順をご覧ください。

  3. ダイアグラムを発行します

    ダイアグラムを含むEメールを送信してください。オラクルのクラウド・アーキテクトは、ダイアグラムを確認し、お客様に連絡してアーキテクチャについて話し合います。

承認

  • 著者: Robert Huie氏、Sasha Banks-Louie氏
  • 貢献者: Praveen Coca、Bill Wimsatt、Robert Lies