Cloud Penguins

Flying penguins in the cloud.

ボランティアメンバーで大規模カンファレンスの高度なハイブリッド配信を行うためにやったこと

技術カンファレンス Advent Calendar 2023の7日目!

今回は、大規模な技術カンファレンスでボランティアスタッフの力でハイブリッドイベントを行えるようになった、これまでの過程を書いてみたいと思う。

ハイブリッドイベントを続ける理由

以前、ハイブリッドイベントを続ける理由についてのエントリーを書いた。そこそこ反響があり、関心の高さを感じた。

jaco.udcp.info

このエントリーでもしたためたように、自分が関与しているイベントではハイブリッド配信に並々ならぬ力を注いでいる。きっかけはコロナ禍でオンライン配信を余儀なくされたことだが、それによってもたらされた正の面として、住んでいる地域や自身の都合によらず、様々な場所から自由にイベントに参加できるようになった。ほぼ制限なく、以前のようにIn-personのイベントに参加できるようになった現在だが、全てを巻き戻してしまって良い面までなくなってしまうのは勿体ない。 オンサイトとオンライン、両方のいいとこ取りをするのがこれからのスタンダードであると強く信じている。

どうやってハイブリッド配信できるようになったか

とはいえ、ハイブリッドの開催は相当に大変だ。

何故大変か知りたい人は是非とも前述のエントリーを読んでいただきたいが、今回は自分が関わっているCloudNative Daysがどうやってこの大変な取り組みをやれるようになったのか、その経緯と取り組みについて紹介したい。

つまり、このエントリーを読み終わると、明日からあなたのイベントも簡単にハイブリッド配信できるノウハウが手に入r





そんなものはない (画像略





正直明日からいきなりハイブリッドを自力でやろうっていうのは難易度が高すぎる。我々も色々挑戦し、なんとか省力化できないか試みたものの、これさえやれば完璧という答えにはたどり着いていない。なので、今回は明日から実践できるノウハウではなく、「どういう背景のもとでこうなったのか」という点について解説したい。

また、ハイブリッドのうちオンサイト参加側のオペレーションについてはあえて省いている。残り半分のオンライン配信向けの試行錯誤についてのみ解説している点にご留意いただきたい。

CloudNative Days Tokyo 2020 - 業者任せの配信

まず2020年。CNDT2020では、自分たちもオンライン配信に挑戦してはいたものの、6トラックに渡る大規模カンファレンスをやり切るほどの力や知識はなかった。そこで、専門業者にお願いして開催することになった。その分実行委員に時間の余裕があったので、それそれで良かったのだが。 配信会場の様子をコンテンツにした動画が以下。

www.youtube.com

専門業者に依頼しただけあってイベントも無事終えることができたのだが、どうしても自分たちのコントロール出来ない領域が多くなるのが気がかりだった。たとえば突発的な企画もできないし、ちょっとした遊び要素をいれるのも難しかった。自分たちのイベントなのに、自分たちではなにも出来ないというもどかしさを感じるものになった。

CloudNative Days Online 2021 Spring - 自前配信初挑戦

そして開催したのがCNDO2021。これは「どうせコロナ禍なら、今しか出来ないイベントをやろう」と考えて開催したカンファレンスだ。コンセプトは「誰もが登壇できるカンファレンス」。CFPはなく、応募したら全員が登壇出来る形にしてみたのだ。登壇時間も5分から40分の間で自由に選ぶことができる。

今考えるとよくやったなこんな企画。タイムテーブルも、時間スロットみたいなのはなく完全にバラバラのタイミングでセッションが始まったり終わったりする。しかも7トラック平行。

こんなトンチキな企画を受け入れてくれる専門業者はあるはずもなかった。予算の制限もあり、であれば自分たちで配信まで含めてやり切るしかない。こうして発足したのが、CloudNative Daysのbroadcastチーム ”EMTEC" だ。 現在もリーダーを務める @kameneko が中心になって仕組み作りをしていった。

”Cloud Native” を冠する以上、クラウドの力とソフトウェアで仕組みを作り上げたい。そう考え、AWS上にGPU付きインスタンスをトラック数分ならべ、そこに対して遠隔地から複数人でVNCやWebSocketでOBSをコントロールしてVimeoに配信する。そういう仕組みを作り上げて、イベントを完遂した。

CI/CD Conference 2021 - 安定したオンラインイベント

次に開催したのがこのイベント。確か4トラック平行だったかな? この会は登壇・視聴ともにオンラインのみの純粋オンラインイベントだったので、StreamYardを使って配信をやりきった。当時はそれほどユーザーが多くなかったように思うが、今となってはスタンダードな仕組みだ。特段のトラブルもなく、実に平和にイベントを終わらせることができた。ちょっと物足りなかったけど

CloudNative Days Tokyo 2021 / Observability Conference 2022 - 挑戦と挫折

だいぶ配信技術について知識がついてきた我々が次に挑戦したのが、NDIだ。Network Device Interfaceという、ネットワークを経由して映像と音声を伝送できる技術である。普段から業務でインフラに触れるメンバーが多い我々からすると、伝送距離の稼げないHDMIや機器が高額になりやすいSDIに比べて、汎用的なEthernetで環境が組めるNDIはとても魅力的に映った。

CloudNative Days Tokyo 2021では、都内の某スタジオをレンタルし、登壇者はスタジオかリモートかで登壇出来るようにした。6部屋借りた登壇部屋からNDIで転送されてくる映像を中央のコントロールルームから打ち上げるという構成を組んだのだ。

rental.pandastudio.tv

しかしこれは大失敗に終わった。肝心のNDIが異常なほど不安定となり、映像がブツブツ切れるわ音声との同期が激しくズレるわで、イベントが成り立たないほどの荒れ具合となってしまった。

結果としてスタジオに頭をさげてSDIの機器をかき集めていただき、NDIの部分をすべてSDIに置き換えることでなんとかイベントを完遂させることができた。

続くObservability Conference 2022でもNDIに再挑戦したがやはり不安定さが発生してしまい、予め用意していた光HDMIのバックアップ経路を利用することでリカバリーをした。

インフラエンジニアが使い慣れているEthernetで完璧なプロダクション環境を組むという夢は実現できないまま終わったのである。

このままだとNDIが悪いように聞こえてしまうが、悪いのは我々の知識不足だ。今思うと、トラフィック量がまともに見積もれていなかったのだ。Catalystのスイッチを2台置いて捌いていたのだが、今改めて計算するとそりゃー無理だよというくらいの雑な設計だった。

あとNetgearがNDIに向けたスイッチを出しているので、こういうものの導入も考えたほうが良い。

10917_NDI | NETGEAR

CloudNative Security Conference 2022 / CloudNative Days Tokyo 2022 - Remote Production 2.0

NDIで大失敗をした我々は、改めてアーキテクチャを見直した。かつて取り組んだRemote Productionの仕組みをより洗練させ、安定性と省力化を図ることにした。

さくらのクラウド上に、GPUを積んだ高火力インスタンスを作成しそこにOBSを設置。WebSocket経由で操作するかつての仕組みを復活させた。また、Internet-facingな場所にNginx-rtmp拡張を入れたingestサーバーを作成した。 現地登壇の場合は現地から映像と音声をRTMPで打ち上げ。リモート登壇の場合はStreamYardからRTMPで打ち上げることによって、リモートであっても現地であっても同じようなオペレーションでスイッチングを行えるようにしたのだ。

ユーザーへの配信はAWSのIVSやElemental Media Live, Media Packageを利用。これらの環境の構成はTerraformからほぼ全自動で行えるようにし、IVS/Elemental Mediaの操作はAPIで行えるようにした。

WebSocket経由のOBSコントロールも cndctl というCLIを作成して、コマンドラインで行えるようにした。

後にはNginx-rtmpの代わりにSRSを投入するなど細かなブラッシュアップも行い、トラック数に依存しないスケーラブルな仕組みを構築することができた。

こうして、クラウドネイティブ技術を活用したスケーラブルな配信構成が完成したのである。 ・・・とはならなかった

実際のところは、オペレーションをしてから視聴者に届くまでに30秒から50秒ほどの遅延が発生したことによりオペレーションが非常に困難になったり、エンコーダーの種類によっては大幅な音声の遅れが発生する(NVENCだと死ぬけどQuick Sync VideoだとOKみたいな)など、H264の深いところまで理解していないと解決出来なさそうなトラブルが多発。直前の徹夜に近いワークアラウンドの模索でなんとかイベントは開催できたものの、一部の登壇者のアーカイブ公開が遅れるなどの影響が出た。そして何よりも疲れた

CI/CD Conference 2023 / CloudNative Days Fukuoka 2023 / CloudNative Days Tokyo 2023 - 結局は物理

2年間、クラウド技術とソフトウェア、ネットワークの知識を駆使して低コストでスケーラブルな配信環境を目指した我々。2023年現在ではどうなったかというと・・・

めちゃくちゃ物理。

いろんな技術を試して、いろんな構成を試みて、いろんなオペレーションを実施した結果、結局のところ最も安定して質の良い配信ができるのは、出来る限り物理機材に構成を寄せることだという考えに落ち着いてしまった。

「やっぱりなんだかんだで物理が最強だよ」 

配信を始めて以降、たくさんの人の仕事を見てきたが、こういう意見を持つプロが多かった。だが、オンプレのサーバーがクラウドになり、フィーチャーフォンがスマホになり、ソフトウェアの力によって大きく価値が変化する様を目の当たりにしてきた自分たちからは、「本当にそうなのか? 過去の慣習に囚われているだけなのでは?」 との気持ちが拭えず、自分たちならばソフトウェアでどうにか出来るんじゃないかと思っていたこの2年。

自分たちで手を動かした結果「少なくとも2023年現在においては物理機材が最強」という結論に至った。

もちろんソフトウェアのほうが柔軟性が高かったり、ケーブルを減らしシンプルな構成が可能だったりというメリットはある。しかし、最も重要視すべき安定性や質という観点では、どうやっても物理機材を超えることはできない。

また、思ったよりもハードウェアが着実に進化しているという点も、自分たちが考えを変える一因となった。

最近のCloudNative Daysは、ローランドのVR-6HDというビデオスイッチャーをコアに据えているのだが、これは今年出たばかりの機材だ。1台でビデオスイッチャーにも、オーディオミキサーにも、エンコーダーにもなる全部入り機器で、ほぼこれ1台で完結してしまう。

proav.roland.com

決して安い機材ではないのだが、これによりもたらされる効果は絶大。個人で購入し、CloudNative DaysだけでなくPlatform Engineering Meetupでもこれを使った構成を組むようになった。

なので、当面はこの機材を中心としたイベント設計を行っていくつもりだ。

クラウドの活用やソフトウェアでの運用も諦めたわけではない。たとえば、VR-6HDのコントロールはBitfocus CompanionのVR-6HD向けプラグインを自分たちで用意し、StreamDeckのボタンでスイッチングを行えるようにしたり、OBSの操作と同時に自動化して現地配信から幕間動画への切り替えをスムーズに、ワンボタンで行えるようにしたりしている。

幕間動画も、これまではAfterEffectsでトラック数分作成していたが今回からはReactで作られたWebアプリを作成し、それをOBSのブラウザソースで読み込むことで幕間動画として機能するような仕組みも開発した。

それ以外の補助システムも、AWS、さくらのクラウド、NextCloud、HashiCorp Vault、Tailscaleなどを活用して自動化、効率化を図っている。

ブラッシュアップできる余地はたくさん残されており、今後も積極的に改善していく予定だ。

どういう人たちがやっているのか

CNDO2021で初めて配信を行った時、チームメンバーは仕組みを作るコアメンバーは3人だった。本番はスイッチングを行うボランティアをトラック数分募るという形だった。

その後しばらくは3人から4人のコアメンバーという状態が続いたが、CNDT2022ごろから徐々に増え始め、現在は10人を超えるチームになっている。

リーダーの@kamenekoや、ライブ配信に関する情報を積極的に発信されている松井さん、学生時代にCNDOのスイッチングボランティアとして参加してそのままコアメンバーになったGakuくん、クリエイティブ能力が高く、お絵かきからデザインまで出来るTanayan、CNDだけでなくSRE NEXTやPFEMなどさまざまなカンファレンスで活躍しているBuzzさん、自鯖系YouTuberでもあるうんちゃま。実務能力最強tsukamanや本番の作業に無類のパワーを発揮してくれるcapsmalt、革新的な幕間システムのベースを作り上げてくれたKawamuraさん、今回からジョインしてくれたShuzoNさん。 あとは何でも手を出しすぎて首が回らなくなってきている自分。

稼働のかけ具合は人によって異なるものの、とてもスキルが高くバラエティ豊かなチームになってきていると感じる。

今後どうしたいか

今後は、自分たちが得たノウハウを積極的に外部に提供して、配信を担える人材を増やしていきたい。

おなじく技術系カンファレンスの配信に力を注がれていて、密かに尊敬していた東雲さんMaryさんと話したときも同じ課題感を持たれていたが、需要に対して如何せんやれる人材が不足している。

どうしても機材のコストや知識面で最初のハードルが高い。ハードルが高いのでなかなか人が増えないという状況だ。最初のハードルを越えるには、たとえば我々EMTECチームに勉強がてら参加してもらうとか、EMTECチームが他のイベントの配信を後方支援してスキルトランスファーするなどして、仕組みに触れることのできる機会を提供していく必要があるのではないかと考えている。

今年設立した、一般社団法人クラウドネイティブイノベーターズ協会 (※EMTECチームの資金的な下支えもしている) の活動としてもハイブリッドイベントの支援を考えており、様々な形で協力が出来るのではないかと考えている。

もしイベントの配信に興味がある、あるいはハイブリッドイベントをやりたいが敷居が高く困っているという方がいれば、ご相談いただきたい。