クラウドを使った堅牢なインターネットライブ配信を実現する

2020-07-02
デベロッパーのためのクラウド活用方法

Author : 沼口 繁

AWS を利用するユーザーコミュニティの JAWS-UG (Japan AWS User Group) は、全国に支部が存在し、各地で IT 勉強会を開催しています。また、春と秋にはそれぞれ JAWS DAYS および JAWS FESTA といったイベントを開催して、全国からユーザーが集まり、情報交換を行います。

これらの勉強会やイベントは基本的に対面タイプの「オフラインイベント」の形態でした。しかし、昨今は、Web 会議・TV 会議といった仕組みを使った「オンラインイベント」(またはバーチャルイベントとも呼ばれます) の開催が必須となりました。2020 年 3 月下旬に開催予定だった JAWS DAYS 2020 も、視聴者のみならず、登壇者やスタッフも自宅から参加する「フルリモート」方式に急遽変更しインターネットでライブ配信を行いました。

本稿では、この数か月で JAWS-UG のオンラインイベントや勉強会の開催支援を通して蓄積したライブ配信方法の事例を紹介いたします。


勉強会をインターネットでライブ配信したい

Web / TV 会議の利用が一般的になり、この数ヶ月で PC / スマートフォンを使った Web / TV 会議参加へのハードルが下がったことも寄与し、距離や場所の物理的制約がなくなったオンライン勉強会への参加人数は 200 人を越えるものも散見されるようになりました。

AWS も Web / TV 会議システムの Amazon Chime を提供しており、現在は 250 人までオンライン会議室への同時参加が可能です。Chime の機能である Event Mode を設定することで、画面共有やマイクの利用の許可を登壇者と視聴者で分けて運用し、大規模の会議開催も可能にしています。

JAWS-UG の勉強会も Web / TV 会議システムをつかったオンライン勉強会を開催するようになりました。支部によっては Amazon Chime の上限の 250 名を余裕で超えるお申込みをいただくようになりました。JAWS-UG では昨年の中旬から Chime 上限やセミナールームの収容人数を超えるお申込みに対応するため、Twitch.tv や YouTube Live を使った配信を行ってきましたが、その形態はあくまでセミナールームから「オフライン勉強会の模様をライブ配信する」ものでした。

img_cloud_robust_livestream_01

セミナールームから Amazon Chime、Twitch / YouTube Live を使ってライブ配信を行う

フルリモート方式は、これから一歩進んで、登壇者そして運営スタッフさえもリモートから参加する形態です。これまで、専用のハードウェア機材を必要としていたライブ配信が、今はソフトウェアで実現できることも多くなり、Web カメラなどの最小限のハードウェアとWeb / TV 会議システムを使って、オンラインの Web / TV 会議の模様を、配信ソフトウェアを使ってライブ配信を行い、視聴者にお届けします。

img_cloud_robust_livestream_02

登壇者は Chime で参加・プレゼンし、その模様を Twitch / YouTube を使って配信する

この方式は、すべての関係者がリモート参加で勉強会 / イベントを開催でき、とても魅力的ですが、図の真ん中に位置する配信ソフトを操作するスタッフの役割と環境はシビアになります。事実、JAWS DAYS 2020 ONLINE では、配信の役割を担っていた私の PC が最後にハングアウトして、配信が一時止まる事態となりました。この時、別の支部の運営スタッフの PC を「セカンダリーサーバー」として設定していたことにより、配信サーバーの自動切換え (フォールオーバー) によって、短時間の停止はあったものの、事なきを得ました。

このことより、規模が大きい勉強会のライブ配信において、配信設備の二重化は可能な限り行うべきであることは理解できますが、ライブ配信サーバーの二重化は、配信サーバーだけでなく、ネットワークやルータに至り、これは物理的に別の場所で、複数の配信サーバーにそれぞれの担当が張り付くことを意味します。単純に 2 台の PC が手元にあればいいわけではありません。

バックアップ配信サーバーの必要性に気が付いても、配信時にしか使わない PC の購入には躊躇しますし、さらに、購入した PC の管理や、実際のバックアップ配信サーバーのオペレーションを行うことができるスタッフの育成や手順の共有を考えると、プライマリー、セカンダリーサーバーの設定は簡単でも、なかなか手が出しづらいものでした。

その悩みを仮想デスクトップの Amazon WorkSpaces により解決しました。


Amazon WorkSpaces とは

仮想サーバーというと AWS のサービスでは Amazon Elastic Compute Cloud (以下 EC2) を思い浮かべますが、EC2 を構成するよりも、もっと簡単に、わずか数十分で Windows や Linux が稼働する「仮想デスクトップ」を使うことができます。それが Amazon WorkSpaces です。このまっさらなデスクトップ環境に必要なソフトウェアをインストールして利用することができます。

バンドルと呼ばれる CPU、メモリ、ストレージ、GPU の組み合わせから必要なパフォーマンスサイズの仮想デスクトップを選択することができます。利用料金は「月額課金」か「従量課金」のどちらかを選べます。バーチャル勉強会の配信時のみに利用するのであれば従量課金がおすすめです。

ライブ配信のみの目的であれば、PowerPro バンドルタイプで CPU 70 % 前後での運用が可能になります。この目的であれば、PowerPro バンドルタイプで十分だと思います。その上の Graphics タイプは余裕で運用できますが、料金もかなり高くなるので、ご注意ください。また、利用するリージョンによっても料金が違います。レイテンシーも変わりますので、東京リージョンを利用する前提で、料金をご確認ください。

詳細や料金については Amazon WorkSpaces のページを参照ください

フルリモート方式で二重化されたライブ配信構成を図とともに見てみましょう。

Amazon WorkSpaces では WorkSpace を複数作成し、手元の PC / Mac から同時に接続することが可能です。これにより、1 台の PC から複数の WorkSpace を使い、配信用のプライマリーサーバーとセカンダリーサーバーを 1 人で運用することが可能になります。プライマリーとセカンダリーの WorkSpace をそれぞれ別のリージョンで立てることも可能ですが、ユーザーグループの勉強会レベルであれば必要ないと思います。

img_cloud_robust_livestream_03

Amazon WorkSpaces を使った YouTube Live 配信構成例 


ライブ配信のための Tips

手元のローカル PC を使った配信と、WorkSpaces を使った配信の環境の違いによる考慮点がいくつかあります。今回、配信で利用した Open Broadcaster Software Studio (OBS Studio) は、多くの YouTuber やライブ配信の実績があるソフトウェアですので、トラブルや Tips についてはネット検索し確認が可能です。その中でも押さえておきたいポイントが以下になります。

ウィンドウキャプチャと画面キャプチャの違い

Chime で取り込んだ共有画面やカメラ映像を「ソース」として OBS Studio に取り込むとき、[ウィンドウキャプチャ] または [画面キャプチャ] を指定します。基本的にウィンドウキャプチャを指定することで、他のウィンドウが重なっていても、重なっているウィンドウに影響されずに対象のウィンドウにある画像や画面を取り込むことができます。しかし、カメラ映像を取り込む場合、ウィンドウキャプチャで取り込めないケースがあります。Windows 10 端末であれば、OBS Studio のウィンドウキャプチャのプロパティの [キャプチャ方法] で [Windows Graphics Capture (Windows 10 バージョン 1903以降)] を選択することで、キャプチャできることがありますが、WorkSpaces は Windows Server 2016 Datacenter ベースなので、OBS Studio のこのオプションが使えません。これはバンドルタイプ Graphics を選んでも使えません。
この場合、デスクトップの配置を工夫し、画面キャプチャとソースフィルタの [クリップ/パッド] を使って、画面全体をキャプチャし、必要なところだけを切り取るフィルタをかけて OBS Studio に取り込むことができます。
 

Web ブラウザのハードウェア アクセラレーションの利用をオフにする

OBS Studio に取り込むソースは Web ブラウザを含めさまざまなものが可能です。Web ブラウザをソースに指定した場合、ソースを認識しているにもかかわらず、画面が真っ黒になることがあります。この場合は、Web ブラウザの [ハードウェア アクセラレーションが使用可能な場合は使用する] のオプションをオフにすることでキャプチャが可能になります。

超低遅延でも遅延することに注意する

YouTube Studio 側の設定ですが、ライブ配信の設定項目で [ライブ配信の遅延] があり、そこで [超低遅延] を選択して配信をしてきました。超低遅延は字幕や 4K 解像度に対応しませんが、遅延の間隔を短くすることができます。ただし、経験上、それでも 5 秒から 8 秒の遅延は発生します。

この遅延が発生することを念頭において、QA などを行う必要があります。どうしても遅延の解消は難しいので、リアルタイムな状況での双方向コミュニケーションの QA をするのではなく、視聴している間に共有のスプレッドシートや、質問収集サービスを利用して記入してもらい、最後にまとめて回答するなどの工夫が必要になります。

どのサーバーの配信を利用しているかわかるように工夫する

YouTube Studio のライブ管理画面やストリームの状態から、フェールオーバーが発生しサーバーが切り替わったかどうかがわかりづらい仕様となっているようです。プライマリーとセカンダリーの配信画面の色などを変更して、どのサーバーから配信されているか容易に確認できるようにしておくことをお勧めします。


最後に

Amazon WorkSpaces では 2020 年 9 月 30 日まで、無料利用枠を拡大したテレワーク向けオファーをご用意しています。詳細はこちら »

参考 Web ページ

Amazon WorkSpaces »
Amazon Chime »
OBS Studio »

筆者プロフィール

photo_numaguchi_shigeru

沼口 繁 (ぬまぐち しげる)
アマゾン ウェブ サービス ジャパン株式会社
コミュニティプログラムマネージャー

AWS のユーザーグループ JAWS-UG (Japan AWS User Group) の活動を支援し、より多くの人が AWS に接する機会を増やすことをミッションとしています。高い熱意をもって活動されている JAWS-UG の運営の皆さんには感謝しかありません。いつも本当にありがとうございます。

さらに最新記事・デベロッパー向けイベントを検索

下記の項目で絞り込む
絞り込みを解除 ≫
フィルタ
フィルタ
1

AWS のベストプラクティスを毎月無料でお試しいただけます

AWS を無料でお試しいただけます

AWS 無料利用枠の詳細はこちら ≫
5 ステップでアカウント作成できます
無料サインアップ ≫
ご不明な点がおありですか?
日本担当チームへ相談する