$30 off During Our Annual Pro Sale. View Details »
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
ライブ視聴を支える配信基盤の話をざっくりと / livestreaming-dogenzak...
Search
Taro Hirose
October 19, 2016
Technology
2
1.6k
ライブ視聴を支える配信基盤の話をざっくりと / livestreaming-dogenzakabeerbash
道玄坂BeerBash#2 秋のLT収穫祭
「ライブ視聴を支える配信基盤の話をざっくりと」
http://dogenzaka-beerbash.connpass.com/event/39352/
Taro Hirose
October 19, 2016
Tweet
Share
More Decks by Taro Hirose
See All by Taro Hirose
令和の時代におけるライブ動画サービスの作り方 / How to build your Live video streaming service in Reiwa era
uorat
0
120
Amazon IVS ROCKS!
uorat
1
350
ECS Events & Lambda でカジュアルにはじめるコンテナスケジューラー / 20171212_jawsug-container-lt
uorat
2
1.4k
OPENREC.tv におけるライブ動画およびメッセージ配信基盤の全貌 / 20170601_aws_devday_tokyo_openrec
uorat
4
5k
AWS re:Invent 2016 参加レポート / reinvent2016_report
uorat
0
2k
構成管理ツール Ansible 実践 / ansible-seminar-20160715
uorat
0
1.1k
ライブ視聴を支えるリアルタイムメッセージ配信基盤の話 / GunosyBeerBash #6
uorat
0
4.5k
Ansible 入門 #01 (初心者向け) / ansible-entry
uorat
1
220
Other Decks in Technology
See All in Technology
AWS CLIの新しい認証情報設定方法aws loginコマンドの実態
wkm2
4
530
今年のデータ・ML系アップデートと気になるアプデのご紹介
nayuts
1
130
Karate+Database RiderによるAPI自動テスト導入工数をCline+GitLab MCPを使って2割削減を目指す! / 20251206 Kazuki Takahashi
shift_evolve
PRO
1
540
pmconf2025 - 他社事例を"自社仕様化"する技術_iRAFT法
daichi_yamashita
0
790
生成AI・AIエージェント時代、データサイエンティストは何をする人なのか?そして、今学生であるあなたは何を学ぶべきか?
kuri8ive
2
2.1k
エンジニアリングマネージャー はじめての目標設定と評価
halkt
0
250
Uncertainty in the LLM era - Science, more than scale
gaelvaroquaux
0
810
法人支出管理領域におけるソフトウェアアーキテクチャに基づいたテスト戦略の実践
ogugu9
1
210
プロダクトマネジメントの分業が生む「デリバリーの渋滞」を解消するTPMの越境
recruitengineers
PRO
3
720
Kubernetes Multi-tenancy: Principles and Practices for Large Scale Internal Platforms
hhiroshell
0
110
【CEDEC+KYUSHU2025】学生・若手必見!テクニカルアーティスト 大全 ~仕事・スキル・キャリアパス、TAの「わからない」を徹底解剖~
cygames
PRO
0
150
バグハンター視点によるサプライチェーンの脆弱性
scgajge12
3
1k
Featured
See All Featured
Java REST API Framework Comparison - PWX 2021
mraible
34
9k
Optimizing for Happiness
mojombo
379
70k
Designing Experiences People Love
moore
143
24k
YesSQL, Process and Tooling at Scale
rocio
174
15k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
34
2.5k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
34k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.1k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
1.8k
How to Think Like a Performance Engineer
csswizardry
28
2.4k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
7.8k
Rebuilding a faster, lazier Slack
samanthasiow
84
9.3k
Reflections from 52 weeks, 52 projects
jeffersonlam
355
21k
Transcript
ϥΠϒࢹௌΛࢧ͑Δ ৴ج൫ͷΛ ͬ͘͟Γͱ
ࣗݾհ ኍ ଠ @ CyberZ ▸ OPENRECࣄۀ෦ ▸ Πϯϑϥ &
αʔόαΠυΤϯδχΞ ▸ લ৬: IT Consulting Firm / SIer ▸ ಘҙྖҬ: ߏཧ/ࣗಈԽ, ࢹ ▸ Twitter: @uorat ▸ Blog: http://uorat.hatenablog.com/
OPENREC.tv ήʔϜʹಛԽͨ͠ಈը৴αʔϏε https://www.openrec.tv/ ϓϨΠಈըͷߘɺϥΠϒ৴ / ॴҦe-sportsࢢ 3
OPENREC.tv ৴ྫ: Shadowverse 4
ຊͷ༰ ͜ͷ෦ 5
Live Streaming ಈը৴ج൫
ϥΠϒ৴ͷجຊ ετϦʔϛϯά৴ ▸ ϑΝΠϧͷμϯϩʔυΛඇಉظͰ ߦ͍ͳ͕Βɺಈըͷ࠶ੜΛߦ͏ ▸ ܰྔͳϑΝΠϧΛ৴͢Δ͜ͱͰɺ࠶ੜ· ͰͷͪΛ͘͢Δ ▸ ΦϯσϚϯυϥΠϒجຊతʹετϦʔ
ϛϯάͰ৴͢Δͷ͕σϑΝΫτ ▸ ख๏ʢϓϩτίϧʣ৭ʑ ▸ ϥΠϒ৴ͷ؊ ▸ มͱ৴ʹཁ͢Δ࣌ؒͷॖ ▸ ෛՙରࡦ
ϥΠϒ৴ͷجຊ RTMP ▸ AdobeʹΑΓ։ൃ͞ΕͨFlash Video༻ͷετϦʔϛϯάϓϩτ ίϧ ▸ ࣋ଓଓͰಈըσʔλΛ৴͢Δ ͨΊɺҰൠతʹEdgeΛେྔʹ ༻ҙ͢Δඞཁ͕͋Δ
▸ Statelessͳ௨৴Ͱͳ͍ͨΊ৴ଆ ͷScaling͕େมɺඅ༻͔͔Δ ▸ ࠶ੜʹFlash Player͕ඞཁ
ϥΠϒ৴ͷجຊ HLS (HTTP Live Streaming) ▸ AppleʹΑΓ։ൃ͞ΕͨHTTP ϕʔεͷετϦʔϛϯάϓϩτ ίϧ ▸
ಈըσʔλΛඵʙॏඵͷϑΝ Πϧʹׂ͠ஞ࣍Download͠ ͯ࠶ੜ͢Δ ▸ HTTPͷԸܙΛڗडͰ͖Δ ▸ ಛघͳPlayerෆཁ ▸ Caching͍͢͠ ▸ Scaling͍͢͠
ϥΠϒ৴ͷجຊ HLSͳϥΠϒ৴γεςϜྫ ▸ ਤΛషΓ͚Δ
Live Streaming ߏհ
͏ͪͷετϦʔϛϯάᶃ CloudFront + Wowza Streaming Engine + ElasticTranscoder ▸ ਤΛషΓ͚Δ
͏ͪͷετϦʔϛϯάᶃ ϙΠϯτ: ʮ͋͑ͯʯAWSʹ࠷దԽ ▸ CloudFrontʹΑΔHLS৴ͷলΤωԽ ▸ CacheઓུʹΑΔOriginαʔόͷෛՙݮ ▸ EC2 +
CloudFrontͷΈ߹ΘͤʹΑΔԸܙ ▸ CDN Edge - OriginؒͷLatency࠷খԽ ▸ Origin → CDN Edgeؒͷσʔλసૹૹ৴ྉ Free ▸ GPUΠϯελϯεͷ׆༻ ▸ EC2 API ʹΑΔෛՙʹԠ֦ͨ͡ுॖୀ੍ޚ
Messaging νϟοτ
νϟοτͷجຊ ۭؒڞ༗ ▸ ؍ઓ࣌ͷྟײΛΦϯϥΠϯͰମݧ ▸ ྫ: RAGE ▸ ίϛϡχέʔγϣϯखஈ ▸
ϓϨΠϠʔɿࢹௌऀ ▸ ࢹௌऀɿࢹௌऀ ▸ ྫ: ϚΠϯΫϥϑτ ग़య: http://tappli.org/column-detail.php?id=1166
νϟοτͷجຊ ࣄྫ: Minecraft
νϟοτͷجຊ ϦΞϧλΠϜϝοηʔδ৴ج൫ ▸ ϦΞϧλΠϜ ▸ Ԇ = e-sportsಛ༗ͷྟײΛڞ༗Ͱ͖ͳ͍ ▸ ৴ऀɿࢹௌऀؒͷରखஈͰ͋Δ
▸ શࢹௌऀʹରͯ͠Ұ੪ʹϝοηʔδ৴͢Δඞཁ͋Γ ▸ ߴ֦ுੑ ▸ ಉ࣌ࢹௌऀ͕૿͑ͯεέʔϧΞτͰ͖Δ ▸ ਓؾ৴ສਓҎ্ͷϢʔβ͕ࢹௌ͢Δ ▸ ෳ৴͋Γɺ৴ʹूத͢Δ ▸ ࢹௌऀ͕ेສ, ඦສਓͱ૿͑ͯϝοηʔδ৴ʹࢧো Λ͖ͨ͞ͳ͍͜ͱ
ࠓ 2िؒͰ࡞ͬͨνϟοτج൫ ▸ Node.js + Socket.IOϕʔεͷ WebSocketΞϓϦέʔγϣϯ ▸ MessageHubʹRedis (Pub/Sub)
▸ ELB(Classic) ͕WebSocketඇରԠͷ ͨΊɺΞϓϦέʔγϣϯଆͰόϥϯ γϯάॲཧ࣮
ࠓ 2िؒͰ࡞ͬͨνϟοτج൫ ▸ Node.js + Socket.IOϕʔεͷ WebSocketΞϓϦέʔγϣϯ ▸ MessageHubʹRedis (Pub/Sub)
▸ ELB(Classic) ͕WebSocketඇରԠͷ ͨΊɺΞϓϦέʔγϣϯଆͰόϥϯ γϯάॲཧ࣮
None
Messaging 改
͏ͪͷετϦʔϛϯάᶄ ઈࢍϦϓϨʔεத
͏ͪͷετϦʔϛϯάᶄ ઈࢍϦϓϨʔεத ▸ WebSocketରԠͨ͠ELB - ALBΛಋೖ ▸ ϑϧϚωʔδυʹΑΔӡ༻ෛՙݮΛૂ͏ ▸ Nginx
+ SerfͰྑ͍Μ͚ͩͲ ▸ Content-Based RoutingΛ׆༻ͨ͠खܰͳγϟʔσΟϯά ▸ ͦͷଞॾʑͷϝεೖΕ ▸ Node.js / Socket.IO version up ▸ AutoScaling
Summary ·ͱΊ
·ͱΊ ϓϥοτϑΥʔϜ࠷దԽ ≠ ϩοΫΠϯ ▸ ʮ͋͑ͯʯͦ͜ʹ࠷దԽ͢Δ͜ͱͰੜ·ΕΔϝϦοτ͋Δ ▸ අ༻ ▸ ӡ༻༰қੑ
▸ ϨΠςϯγ ▸ γϯϓϧ ▸ దࡐదॴͳٕज़࠾ͱઃܭ େࣄ ▸ ϑϧϚωʔδυ or ࣗྗ࣮ ▸ େࣄͳ͜ͱ ϏδωεඪΛୡ͢ΔͨΊͷಓےΛඳ͘͜ͱ ▸ εϐʔυ ▸ ίετ
ࠂ RAGE vol.3 Shadowverse ▸ ༧બ: 2016/10/22 () - 10/23
() ▸ ܾউ (GRAND FINAL): 2016/11/23 (ਫɾॕ) https://rage-esports.jp/