前編では、ユーザーのライブ配信を支えるシステムの構成について解説を行いました。後編では実際のライブ配信の裏側を解説します。
ライブ配信の裏側
前編で紹介したようなサーバ構成でライブ配信とその周辺機能は構築されています。ここからは、その裏側で運用されている機能のうち、ライブ終了処理とサービスを管理するための機能について紹介します。
ヘルスチェック
ライブ配信を開始したとき、配信者のユーザーIDなどのライブに関わる情報はAPIサーバを経由してAmazon RDS上に保存され、配信動画そのものはライブサーバを経由してストレージサーバに保存されます。こうして開始した配信は通常、配信者本人がアプリ内のボタンをタップすることで終了します。このとき、配信停止のリクエストはAPIサーバによって処理されます(図1)。
しかし、配信中にアプリ自体が終了したり、通信状況が悪化するなどのトラブルが発生したりした場合、アプリ側では配信の終了を表す画面に切り替わるため終了したように見えますが、APIサーバ側ではこれを認識できません。配信データは送られてこないものの、APIサーバでは配信中として処理が続けられます。
そこで、ライブに対するヘルスチェックを行います。一般的なヘルスチェックは、サーバが正常に稼働してアクセス可能な状態であることを確認するための機能です。MixChannelでは、配信データが正常に送られていることを確認するためにこれを適用しています。
図1のようにヘルスチェックを行うサーバを用意し、配信中のすべてのライブに対して定期的に配信状況の確認を行います。ヘルスチェックによって配信データが送られてきていないことがわかったときには、終了済みの配信と見なし、終了処理を行います。これにより、終了済みのライブがあたかも配信中であるかのように扱われてアプリ内に表示されるといった不具合を防いでいます。
ライブとコメントの監視
配信中のライブに対して終了処理を行うのはヘルスチェックだけではありません。多くの視聴者に提供されるライブの質を担保するため、誹謗中傷や法令違反が見られる場合や、内容が公序良俗に反している場合など、利用規約に違反している配信に対処できるようにライブの監視を行っています(図2)。
監視には専用の管理画面を用い、不適切な配信を行うユーザーに対してチャットによる警告や配信の制限といった措置を取っています。
監視対象には、チャットサーバを通して送られる配信中のコメントも含まれます(図2)。投稿されたコメントに対してその良し悪しを判断し、不適切なコメントを投稿したユーザーに対してペナルティを課すという一連の作業を自動で行えるようにしています。
このように、配信者と視聴者の両方に対する監視を行い、ユーザーが利用しやすい環境を保っています。
ユーザーの行動計測
ここでは、おもにサービスの新規機能開発を目的として行っているユーザーのログデータの保存方法について紹介します。MixChannelでは、ログ収集の基盤としてAmazon CloudWatchとGoogle BigQueryを利用しています。
CloudWatchとは、Amazon EC2(Elastic Compute Cloud)などほかのサービスから送られてくるログの監視と保存を行うためのサービスです。ログの形式は独自にカスタマイズできます。
BigQueryは、SQLを用いてTB単位のデータセットから高速にデータを取得できる大規模な解析に適したサービスです。
これらを結び付け、図3のようにCloudWatchにログデータを集約したあとでBigQueryに保存することで、収集したログデータを計測・分析しています。
ここまで前編で紹介したライブに関するログも、このフローに沿って収集されています。このログには、「配信タイトル」「配信開始時刻」「配信時間」「コメント数」「累計視聴者数」「最大同時視聴者数」などが含まれています。
第1回で紹介したレコメンドシステムmarbleは、各ユーザーの趣味・嗜好に合わせてお勧めのライブを表示させるものでした。その開発の一環として表示結果を確認する際にもライブのログを利用しました。
その他、ユーザーの行動ログを収集するサービスであるAdjust、Firebase Analyticsも利用しています。インストールなどユーザーがアプリを利用するまではAdjust、アプリ使用中はFirebase Analyticsを計測に使います。Adjustによって収集されるログはCloudWatchを経由して、Firebase Analyticsによって収集されるログは直接BigQueryに送られます。
収集したデータは、各種KPIの計測に利用し、新規機能の企画・開発に役立てています。Firebaseによって収集されるデータは、MixChannelの主要なKPIの1つであるライブ視聴回数の計測にも活用されています。
おわりに
今回は連載の第3回、第4回と2回に分けて、MixChannelの根幹を成すライブ配信を構成するシステムとそれを裏側で支える機能について紹介しました。次回は、MixChannelのユーザーに最も近い部分であるクライアント側のアプリ開発に関する記事を予定しています。
- 特集1
イミュータブルデータモデルで始める
実践データモデリング
業務の複雑さをシンプルに表現!
- 特集2
いまはじめるFlutter
iOS/Android両対応アプリを開発してみよう
- 特集3
作って学ぶWeb3
ブロックチェーン、スマートコントラクト、NFT