Slide 1

Slide 1 text

ϥΠϒࢹௌΛࢧ͑Δ ഑৴ج൫ͷ࿩Λ ͬ͘͟Γͱ

Slide 2

Slide 2 text

ࣗݾ঺հ ኍ੉ ଠ࿠ @ CyberZ ▸ OPENRECࣄۀ෦ ▸ Πϯϑϥ & αʔόαΠυΤϯδχΞ ▸ લ৬: IT Consulting Firm / SIer ▸ ಘҙྖҬ: ߏ੒؅ཧ/ࣗಈԽ, ؂ࢹ ▸ Twitter: @uorat ▸ Blog: http://uorat.hatenablog.com/

Slide 3

Slide 3 text

OPENREC.tv ήʔϜʹಛԽͨ͠ಈը഑৴αʔϏε https://www.openrec.tv/ ϓϨΠಈըͷ౤ߘɺϥΠϒ഑৴ / ॴҦe-sportsࢢ৔ 3

Slide 4

Slide 4 text

OPENREC.tv ഑৴ྫ: Shadowverse 4

Slide 5

Slide 5 text

ຊ೔ͷ಺༰ ͜ͷ෦෼ 5

Slide 6

Slide 6 text

Live Streaming ಈը഑৴ج൫

Slide 7

Slide 7 text

ϥΠϒ഑৴ͷجຊ ετϦʔϛϯά഑৴ ▸ ϑΝΠϧͷμ΢ϯϩʔυΛඇಉظͰ ߦ͍ͳ͕Βɺಈըͷ࠶ੜΛߦ͏ ▸ ܰྔͳϑΝΠϧΛ഑৴͢Δ͜ͱͰɺ࠶ੜ· Ͱͷ଴ͪΛ୹͘͢Δ ▸ ΦϯσϚϯυ΋ϥΠϒ΋جຊతʹετϦʔ ϛϯάͰ഑৴͢Δͷ͕σϑΝΫτ ▸ ख๏ʢϓϩτίϧʣ͸৭ʑ ▸ ϥΠϒ഑৴ͷ؊ ▸ ม׵ͱ഑৴ʹཁ͢Δ࣌ؒͷ୹ॖ ▸ ෛՙରࡦ

Slide 8

Slide 8 text

ϥΠϒ഑৴ͷجຊ RTMP ▸ AdobeʹΑΓ։ൃ͞ΕͨFlash Video༻ͷετϦʔϛϯάϓϩτ ίϧ ▸ ࣋ଓ઀ଓͰಈըσʔλΛ഑৴͢Δ ͨΊɺҰൠతʹ͸EdgeΛେྔʹ ༻ҙ͢Δඞཁ͕͋Δ ▸ Statelessͳ௨৴Ͱͳ͍ͨΊ഑৴ଆ ͷScaling͕େมɺඅ༻΋͔͔Δ ▸ ࠶ੜʹ͸Flash Player͕ඞཁ

Slide 9

Slide 9 text

ϥΠϒ഑৴ͷجຊ HLS (HTTP Live Streaming) ▸ AppleʹΑΓ։ൃ͞ΕͨHTTP ϕʔεͷετϦʔϛϯάϓϩτ ίϧ ▸ ಈըσʔλΛ਺ඵʙॏ਺ඵͷϑΝ Πϧʹ෼ׂ͠ஞ࣍Download͠ ͯ࠶ੜ͢Δ ▸ HTTPͷԸܙΛڗडͰ͖Δ ▸ ಛघͳPlayerෆཁ ▸ Caching͠΍͍͢ ▸ Scaling͠΍͍͢

Slide 10

Slide 10 text

ϥΠϒ഑৴ͷجຊ HLSͳϥΠϒ഑৴γεςϜྫ ▸ ਤΛషΓ෇͚Δ

Slide 11

Slide 11 text

Live Streaming ߏ੒঺հ

Slide 12

Slide 12 text

͏ͪͷετϦʔϛϯάᶃ CloudFront + Wowza Streaming Engine + ElasticTranscoder ▸ ਤΛషΓ෇͚Δ

Slide 13

Slide 13 text

͏ͪͷετϦʔϛϯάᶃ ϙΠϯτ: ʮ͋͑ͯʯAWSʹ࠷దԽ ▸ CloudFrontʹΑΔHLS഑৴ͷলΤωԽ ▸ CacheઓུʹΑΔOriginαʔόͷෛՙݮ ▸ EC2 + CloudFrontͷ૊Έ߹ΘͤʹΑΔԸܙ ▸ CDN Edge - OriginؒͷLatency࠷খԽ ▸ Origin → CDN Edgeؒͷσʔλసૹૹ৴ྉ Free ▸ GPUΠϯελϯεͷ׆༻ ▸ EC2 API ʹΑΔෛՙʹԠ֦ͨ͡ுॖୀ੍ޚ

Slide 14

Slide 14 text

Messaging νϟοτ

Slide 15

Slide 15 text

νϟοτͷجຊ ۭؒڞ༗ ▸ ؍ઓ࣌ͷྟ৔ײΛΦϯϥΠϯͰମݧ ▸ ྫ: RAGE ▸ ίϛϡχέʔγϣϯखஈ ▸ ϓϨΠϠʔɿࢹௌऀ ▸ ࢹௌऀɿࢹௌऀ ▸ ྫ: ϚΠϯΫϥϑτ ग़య: http://tappli.org/column-detail.php?id=1166

Slide 16

Slide 16 text

νϟοτͷجຊ ࣄྫ: Minecraft

Slide 17

Slide 17 text

νϟοτͷجຊ ϦΞϧλΠϜϝοηʔδ഑৴ج൫ ▸ ϦΞϧλΠϜ ▸ ஗Ԇ = e-sportsಛ༗ͷྟ৔ײΛڞ༗Ͱ͖ͳ͍ ▸ ഑৴ऀɿࢹௌऀؒͷର࿩खஈͰ΋͋Δ ▸ શࢹௌऀʹରͯ͠Ұ੪ʹϝοηʔδ഑৴͢Δඞཁ͋Γ ▸ ߴ֦ுੑ ▸ ಉ࣌ࢹௌऀ਺͕૿͑ͯ΋εέʔϧΞ΢τͰ͖Δ ▸ ਓؾ഑৴͸਺ສਓҎ্ͷϢʔβ͕ࢹௌ͢Δ ▸ ෳ਺഑৴͋Γɺ഑৴͸໷ʹूத͢Δ ▸ ࢹௌऀ͕਺ेສ, ਺ඦສਓͱ૿͑ͯ΋ϝοηʔδ഑৴ʹࢧো Λ͖ͨ͞ͳ͍͜ͱ

Slide 18

Slide 18 text

ࠓ 2िؒͰ࡞ͬͨνϟοτج൫ ▸ Node.js + Socket.IOϕʔεͷ WebSocketΞϓϦέʔγϣϯ ▸ MessageHubʹRedis (Pub/Sub) ▸ ELB(Classic) ͕WebSocketඇରԠͷ ͨΊɺΞϓϦέʔγϣϯଆͰόϥϯ γϯάॲཧ࣮૷

Slide 19

Slide 19 text

ࠓ 2िؒͰ࡞ͬͨνϟοτج൫ ▸ Node.js + Socket.IOϕʔεͷ WebSocketΞϓϦέʔγϣϯ ▸ MessageHubʹRedis (Pub/Sub) ▸ ELB(Classic) ͕WebSocketඇରԠͷ ͨΊɺΞϓϦέʔγϣϯଆͰόϥϯ γϯάॲཧ࣮૷

Slide 20

Slide 20 text

No content

Slide 21

Slide 21 text

Messaging 改

Slide 22

Slide 22 text

͏ͪͷετϦʔϛϯάᶄ ઈࢍϦϓϨʔεத

Slide 23

Slide 23 text

͏ͪͷετϦʔϛϯάᶄ ઈࢍϦϓϨʔεத ▸ WebSocketରԠͨ͠ELB - ALBΛಋೖ ▸ ϑϧϚωʔδυʹΑΔӡ༻ෛՙݮΛૂ͏ ▸ Nginx + SerfͰ΋ྑ͍Μ͚ͩͲ ▸ Content-Based RoutingΛ׆༻ͨ͠खܰͳγϟʔσΟϯά ▸ ͦͷଞॾʑͷϝεೖΕ ▸ Node.js / Socket.IO version up ▸ AutoScaling

Slide 24

Slide 24 text

Summary ·ͱΊ

Slide 25

Slide 25 text

·ͱΊ ϓϥοτϑΥʔϜ࠷దԽ ≠ ϩοΫΠϯ ▸ ʮ͋͑ͯʯͦ͜ʹ࠷దԽ͢Δ͜ͱͰੜ·ΕΔϝϦοτ΋͋Δ ▸ අ༻ ▸ ӡ༻༰қੑ ▸ ϨΠςϯγ ▸ γϯϓϧ ▸ దࡐదॴͳٕज़࠾୒ͱઃܭ େࣄ ▸ ϑϧϚωʔδυ or ࣗྗ࣮૷ ▸ େࣄͳ͜ͱ͸ Ϗδωε໨ඪΛୡ੒͢ΔͨΊͷಓےΛඳ͘͜ͱ ▸ εϐʔυ ▸ ίετ

Slide 26

Slide 26 text

ࠂ஌ RAGE vol.3 Shadowverse ▸ ༧બ: 2016/10/22 (౔) - 10/23 (೔) ▸ ܾউ (GRAND FINAL): 2016/11/23 (ਫɾॕ) https://rage-esports.jp/