Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
AWSを使ったカンファレンスの 配信アーキテクチャ - 吉祥寺.pm37
Search
Ryo Takaishi
January 31, 2025
2
250
AWSを使ったカンファレンスの 配信アーキテクチャ - 吉祥寺.pm37
Ryo Takaishi
January 31, 2025
Tweet
Share
More Decks by Ryo Takaishi
See All by Ryo Takaishi
どうやればインシデント対応能力を鍛えられるのか? / SRE Kaigi 2025
takaishi
11
7.4k
Podcastを3年半続ける技術と得た物 / ya8-2024
takaishi
5
1.7k
入門!ClusterAPI 〜 k8s クラスターも k8s API で管理したい 〜 / k8s_meetup_31
takaishi
3
4.5k
CloudNativeへの道 リーダーシップとフォロワーシップ / 201911-cndjp13
takaishi
2
880
ClusterAPI v1alpha1 → v1alpha2 / k8s_meetup_23
takaishi
1
1.5k
実録!CloudNativeを 目指した230日 / cloud-native-days-tokyo-2019
takaishi
2
2.5k
Consul Connect and Kubernetes Integration / cloud native meetup tokyo 7
takaishi
2
2.2k
ソフトウェアエンジニア の楽しみ / 2018-pepaboudon
takaishi
0
220
Ansible、Terraform、Packerで作るSelf-Hosted Kubernetes / JKD1812
takaishi
5
4.1k
Featured
See All Featured
The Pragmatic Product Professional
lauravandoore
32
6.4k
Git: the NoSQL Database
bkeepers
PRO
427
64k
Unsuck your backbone
ammeep
669
57k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
Build The Right Thing And Hit Your Dates
maggiecrowley
33
2.5k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
20
2.4k
BBQ
matthewcrist
85
9.4k
Art, The Web, and Tiny UX
lynnandtonic
298
20k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
30
2.1k
Raft: Consensus for Rubyists
vanstee
137
6.7k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
174
51k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
3
370
Transcript
AWSを使ったカンファレンスの 配信アーキテクチャ 髙石 諒 / @r_takaishi 吉祥寺.pm37
None
自己紹介 • 髙石 諒 / @r_takaishi • ソフトウェア エンジニア /
ポッドキャスター • 現所属は株式会社フライル ◦ クラウドインフラ中心にいろいろ • 副業でスタートアップのクラウドインフラ・基盤整備 • CloudNative Daysのシステム開発
None
こういうの作ってます • tfclean (https://github.com/takaishi/tfclean) ◦ terraformの import/moved/removed ブロックを削除するツール • terraform-j2md
(https://github.com/reproio/terraform-j2md) ◦ terraform planの結果をMarkdownとして整形するツール • batron (https://github.com/takaishi/batron) ◦ AWS Batchのジョブ定義をデプロイするツール
時はコロナ禍
カンファレンスも 「密」回避が求められ た
オンライン開催
オンラインカンファレンスで 快適な視聴環境を提供する
アーキテクチャの 試行錯誤を紹介します
CloudNativeDaysが目指した体験 • 前提として、複数トラック開催 • シームレスにセッションを切り替えられる体験 • セッション終了後のアーカイブ公開
第一世代
第一世代アーキテクチャ • Vimeoを使用 ◦ 記憶が曖昧なので割愛 • ライブ配信用のリソースをVimeoに作ったりするのが大変だった気がする
第二世代
AWSが配信・動画系サービスを提供している • Amazon Interactive Video Service (Amazon IVS) ◦ 低レイテンシー配信のためのマネージドサービス
◦ RubyKaigiでも使用された • AWS Elemental MediaLive ◦ ライブストリーミングのエンコードサービス ◦ 変換して複数の宛先に送ることも可能 • AWS Elemental MediaPackage ◦ エンコードされたデータの動画配信及びVODパッケージングサービス
第二世代アーキテクチャ MediaLive IVS Channel S3 Bucket CloudFront Rails React OBS
オペレーター 参加者 RTMP(push) RTMP(Pull) トラック毎にリソースを用意 ライブ配信を視聴 アーカイブ配信を視聴 アーカイブを保存 起動・停止
第二世代の課題 • 高コスト ◦ IVSを複数トラック分、複数日使うのはかなりお金がかかる • アーカイブの作成が大変 ◦ MediaLiveチャンネルの起動・停止が職人技 ◦
タイムラグ問題
第三世代
AWSが配信・動画系サービスを提供している • Amazon Interactive Video Service (Amazon IVS) ◦ 低レイテンシー配信のためのマネージドサービス
◦ RubyKaigiでも使用された • AWS Elemental MediaLive ◦ ライブストリーミングのエンコードサービス ◦ 変換して複数の宛先に送ることも可能 • AWS Elemental MediaPackage ◦ エンコードされたデータの動画配信及びVODパッケージングサービス
第三世代アーキテクチャ MediaLive IVS Channel MediaPackageChannel Endpoint S3 Bucket CloudFront Rails
MediaPackage HarvestJob React OBS オペレーター 参加者 RTMP(push) RTMPS HLS トラック毎にリソースを用意 ライブ配信を視聴 アーカイブ配信を視聴 アーカイブを保存 アーカイブ作成 HarvestJob作成
第三世代アーキテクチャ • アーカイブ作成にMediaPackageを使用 • HarvestJob ◦ VOD用の機能 ◦ バッファされたストリーミングデータの任意の範囲を切り出してS3バケットに保存 •
Rails上で範囲指定・プレビューしてHarvestJobを作成する機能を実装
第三世代の課題 • 高コスト ◦ IVSを複数トラック分、複数日使うのはかなりお金がかかる
第四世代
第四世代アーキテクチャ • MediaPackage V2登場 ◦ 低レイテンシーに対応 [速報] low-latency HLSにも対応したMediaPackage v2がリリースされました![NEW]
| DevelopersIO https://dev.classmethod.jp/articles/aws-elemental-mediapackage-v2/
第四世代アーキテクチャ MediaLive MediaPackage v2 Channel Endpoint MediaPackageChannel Endpoint S3 Bucket
CloudFront Rails MediaPackage HarvestJob React OBS オペレーター 参加者 RTMP(push) RTMP HLS トラック毎にリソースを用意 ライブ配信を視聴 アーカイブ配信を視聴 アーカイブを保存 アーカイブ作成 HarvestJob作成
第四世代アーキテクチャ • IVSを止めて大幅にコストダウンに成功 • MediaPackageのHarvestJobを使い、セッション終了後数十分でアーカイブ 作成・公開
第四世代アーキテクチャの課題 • MediaPackageとMediaPackageV2の両方を使っている ◦ MediaPackage V2がHarvestJobに対応していなかった
まとめ
まとめ • 2020年以降のコロナ禍で、CloudNativeDaysはオンライン配信をかなり作 り込んだ ◦ シームレスなトラック切り替え、迅速なアーカイブ公開 • インパーソン開催に戻った2025年以降、このノウハウをどう活用するか ◦ オンライン開催のイベントもあるけど大規模じゃないとペイしない
• 全然分からない領域について試行錯誤するのは楽しい
コロナ禍の 知見忘れず 活用したい