・勉強不足のためLinuxとかEC2とかLBとかよくわからなかった ・短期間で構築する必要があった ・数日間しか使わないサービスだった ・認証・決済は必須だったけど、自分では無理だった
上記の理由のため、結果的にタイトルのような構成でライブ配信サービスを構築してみましたので、どんな感じでやったのかをお話したいと思います。
https://jft2019.jaws-ug.jp/session/484/
#jft2019
[email protected]αʔόϨε༗ྉϥΠϒ৴αʔϏεߏஙϑϧϚωʔδυ4BB4࿈ܞ××ೝূɾܾࡁ̏ؒͰ͍ࣺͯʂ
View Slide
[email protected]πΠʔτ͠Α͏ʂKBXTVHKGU[email protected]
[email protected]*".
[email protected]ࡾӜҰथίϯςϯπϏδωεہωοτσδλϧࣄۀ෦݉ฤہฤ෦ٕ݉ज़ہ์ૹɾ*5γεςϜ෦+"846(ࡳຈ .FEJB+"84[email protected]ࡳຈίϛϡχςΟӡӦ
[email protected]ΤϯδχΞϦϯάͰίϯςϯπΛ̍ਓ̍ਓʹಧ͚͍ͨ
[email protected]5PEBZ`TUIFNF
[email protected]
[email protected]ͬͯΈΑ͏ʂ
[email protected]ԿΛͬͨͷ͔
[email protected]˟儗כ✮㹀דׅկ鿪さח״㢌刿ׅ㜥さָ֮תֿׅה✮׀✪䪫ְֻׁկ ꆃ 㕼 傈 㜥⳿䏄ـ٦أ䏄ىصٓ؎ـװ⳿䏄13ة؎يזו⼯⚥ַ嚂׃ְ؎كٝزֻׁ׀欽䠐׃גתׅԒ ً؎ٝ؎كٝز儎ך鿇ؔ٦فصؚٝإٌٖص٦⳿怴罏ز٦ؙءّ٦չ痥㔐וֲדى٦颣պ涪邌խקַ أز،٦ذ؍أز-*7&ىص⟰歗갫♶ずཁ݅ʻனͷ෦ʼΛର̏ؒ ̎࣌ؒͣͭ༗ྉϥΠϒ৴ΞʔΧΠϒແ̍͠ສਓདྷͯ͑ΒΕΔ
[email protected]αʔόʁ%#ʁษڧ͢Δ͔
[email protected]̍͘Β͍લ
[email protected]&$ָ͘͠ͳ͔ͬͨɻɻɻ͜ΕΛ࠷ޙʹ৮ͬͯͳ͍
[email protected]%#Կʹ͏ͷ͔Θ͔Βͳ͍ɻɻ42-#JH2VFSZ͕ॳ
[email protected]ඞཁͳͷ͚ͩΓ͍ͨ
[email protected]αʔόϨεϑϧϚωʔδυ4BB4࿈ܞ××
[email protected]HTB ओௐࣨDirect Connect MediaLive MediaPackage CloudFrontVPCDRM SaaSUsersΠϕϯτձjsonXMLoctet-streamCloudFrontS3Lambda API GatewayLambda ProxyLambda API GatewayElementsLambda API GatewayRoute 53ACMSecrets Managerதܧंߪೖঢ়ଶ֬ೝLockiOS༻ϦΫΤετ
[email protected]HTB ओௐࣨDirect Connect MediaLive MediaPackage CloudFrontVPCDRM SaaSUsersΠϕϯτձjsonXMLoctet-streamCloudFrontS3Lambda API GatewayLambda ProxyLambda API GatewayElementsLambda API GatewayRoute 53ACMSecrets Managerதܧंߪೖঢ়ଶ֬ೝLock͜͜΄΅ίϐϖάάΕͳΜͱ͔ͳΔ/P$PEF-PX$PEFiOS༻ϦΫΤετ
[email protected]ʮTJUFEFWDMBTTNFUIPEKQ\αʔϏε໊^ʯυϝΠϯࢦఆݕࡧʂࠂग़ͯ͜ͳ͍͠Φεεϝʂ
[email protected]AWS ElementalMediaLiveVPCInputAWS ElementalMediaPackageCloudFrontVPCಈ࡞֬ೝ༻MP4Amazon S3AWS ElementalMediaLiveCloudFrontYouTubeςετ࠶ੜϖʔδຊ൪࠶ੜϖʔδίϯςϯπIDΛར༻ͨ͠ෆਖ਼ΞοϓϩʔυରࡦDRM SaaSߪೖલͷςετ࠶ੜຊ൪࠶ੜόοΫΞοϓෆਖ਼ରࡦ.1&(%"4))-4
[email protected]࠶ੜຖʹDRM֬ೝLambdaProxyLambdaAPI GatewayEndpointSPAs3AWSSecrets ManagerKey/token ֨ೲAPI GatewayLambdaAPI GatewayEndpointAPI Gatewayܾࡁ࣌ॻ͖ࠐΈಡΈࠐΈuser_metadataܾࡁLock checkSession()DRM SaaSjsonXMLoctet-streamAPI GatewayEndpointAPI GatewayiOS͑ͳ͍
[email protected]࠶ੜຖʹDRM֬ೝLambdaProxyLambdaAPI GatewayEndpointSPAs3API GatewayDRM SaaSjsonXMLoctet-stream%3.Ͱ෮߸ϓϨΠϠʔ͔ΒͷΈ࠶ੜՄೳ࡞ͬͯΒ͍·͚ͨͩ͜͜͠ײँʂʂ
[email protected]SPAs3AWSSecrets ManagerKey/token ֨ೲAPI GatewayLambdaAPI GatewayEndpointܾࡁ࣌ॻ͖ࠐΈಡΈࠐΈuser_metadataܾࡁLock checkSession()ܾࡁɾೝূ̍ͭͷ-BNCEBʹ٧ΊࠐΈ͗͢
[email protected]͜ΕJ04ͩͱ͏͔͝ͳ͍
[email protected]ߪೖఆ͕Ͱ͖ͳ͍
[email protected]J04ແࢹͰ͖ͳ͍
[email protected]-BNCEB૿ͦ͏
[email protected]SPAs3ಡΈࠐΈuser_metadataLock checkSession()API GatewayEndpointAPI GatewayiOS͑ͳ͍ߪೖใ͕ը໘ʹө͞Εͳ্͍ݶ؇௨Δ͔͍͋͠
[email protected]SPAs3ಡΈࠐΈuser_metadataLock checkSession()API GatewayEndpointAPI GatewayiOS͑ͳ͍($1$MPVE'VODUJPOTCloud Functions೦ͷͨΊ݁Ռ্ݶ؇௨ͬͨະ༻
[email protected]HTB ओௐࣨDirect Connect MediaLive MediaPackage CloudFrontVPCDRM SaaSUsersΠϕϯτձjsonXMLoctet-streamCloudFrontS3Lambda API GatewayLambda ProxyLambda API GatewayElementsLambda API GatewayiOS༻ϦΫΤετRoute 53ACMSecrets Managerதܧंߪೖঢ়ଶ֬ೝLock
[email protected]ظؒͲΕ͘Β͍ʁ
[email protected]̍ϲ݄͘Β͍
[email protected]ɾXௐࠪɾX࣮ɾ୯ମɾX࣮ɾ݁߹ɾX֤छςετɾXυΩυΩͷϦϦʔε
[email protected]݄ Ր ਫ ۚ 9/2 9/3 9/4 9/5 9/6 9/7 9/8ٳ ٳ9/9 9/10 9/11 9/12 9/13 9/14 9/15ٳ9/16(ॕ) 9/17 9/18 9/19 9/20 9/21 9/22ٳ9/23(ॕ) 9/24 9/25 9/26 9/27 9/28 9/29ٳ9/30 10/1 10/2 10/3 10/4 10/5 10/6ࠂ ϦϦʔε ຊ൪ᶃ ຊ൪ᶄ ຊ൪ᶅௐࠪɾυΩϡϝϯτಡΜͰ৮ͬͯΈΔ࣮ɾ୯ମςετ࣮ɾ݁߹ςετࣾεςʔδϯάςετɾमਖ਼ νΣοΫνΣοΫνΣοΫόοΫΞοϓߏங
[email protected]݄ Ր ਫ ۚ 9/2 9/3 9/4 9/5 9/6 9/7 9/8ٳ ٳ9/9 9/10 9/11 9/12 9/13 9/14 9/15ٳ9/16(ॕ) 9/17 9/18 9/19 9/20 9/21 9/22ٳ9/23(ॕ) 9/24 9/25 9/26 9/27 9/28 9/29ٳ9/30 10/1 10/2 10/3 10/4 10/5 10/6ࠂ ϦϦʔε ຊ൪ᶃ ຊ൪ᶄ ຊ൪ᶅௐࠪɾυΩϡϝϯτಡΜͰ৮ͬͯΈΔ࣮ɾ୯ମςετ࣮ɾ݁߹ςετࣾεςʔδϯάςετɾमਖ਼ νΣοΫνΣοΫνΣοΫόοΫΞοϓߏஙνΣοΫग़ग़ग़ग़ ग़ ग़ग़ ग़
[email protected]ԿਓͰͬͨͷʁ
[email protected]ࣾௐ߹ͤରԠAWSA B ࢲ
γεͷͻͱ͕ɹؒʹɹ͘ΘΘͬͨʂ
[email protected]ࣾௐ߹ͤରԠAWSA B ࢲC
σβΠϯͷͻͱ͕ɹؒʹɹ͘ΘΘͬͨʂ
[email protected]ࣾௐ߹ͤରԠAWSA B ࢲσβΠϯC D
[email protected]ࣾςετڠྗΞΧϯτҎ্ʂ͜Μͳʹଟ͘ͷਓʹॿ͚ͯΒ͑ΔͳΜͯ
[email protected]2"ίϯαϧ"84ͱ"VUIຊʹຊʹ͋Γ͕ͱ͏͍͟͝·ͨ͠
[email protected]͓͍߹ΘͤରԠ
[email protected]SPAs3AWSSecrets ManagerKey/token ֨ೲAPI GatewayLambdaAPI GatewayEndpointܾࡁ࣌ॻ͖ࠐΈಡΈࠐΈuser_metadataܾࡁLock checkSession()ങ͚ͬͨͲݟΕͳ͍ɻखಈରԠͰ͖Δ༷ʹ"VUIʹίϐϖ͢Ε͍͚ΔςΩετΛ࡞ͬͯૹ৴Ұ൪ࠔΔͷ͕
[email protected]ϑΟʔυόοΫϧʔϓप͚ͩ͠·ͨ͠X
[email protected]ϓϦϖΠυܥ/(ͦͷͰ2"Ճೖྗ࣌ͷςΩετՃιʔείʔυ৮͔ͬͯͨΒܾͦ͜ࡁͰ͍߹Θͤ
[email protected]͜Ε͕ɺᷚʹฉ͍͍ͯͨ%FW0QTʁ
[email protected]ࠓޙͷల
[email protected])5#ͷશͯΛͭͳ͍͛ͨ
[email protected]IUCTIPQKQ&$IUCDPKQ70%IPEIUCDPKQࢹௌσʔλ0"ϥΠϒ৴ΦϑϥΠϯΠϕϯτάοζγϣοϓ*%౷߹ԣஅϨίϝϯυ
[email protected]͜ͷωλ͜͢Γ·͢
[email protected]ΠγοτɾϰΝγϡϥδϟʔχ ࢯΞϚκϯΣϒαʔϏεΤϯλʔϓϥΠζετϥςδετϑδςϨϏͷCloud StrategyʙNowˍFutureʙۚ ݈ ࢯגࣜձࣾϑδςϨϏδϣϯٕज़ہ ܭը෦ σεΫ୲෦αʔόϨεΞʔΩςΫνϟʹΑΔ༗ྉϥΠϒ৴αʔϏεͷߏஙࡾӜ Ұथ ࢯւಓςϨϏ์ૹגࣜձࣾʢHTBʣίϯςϯπϏδωεہ ωοτσδλϧࣄۀ෦U-NEXTͷϚϧνCDNઓུʹ͓͚ΔCloudFrontͷ׆༻ࣄྫͱɺࣗࣾ։ൃϑΝΠϧసૹγεςϜʮSnowpumpʯͷ͝հ֟ݩ ਸར ࢯגࣜձࣾU-NEXTࣄۀاը ୲෦AlexaʹΑΔTVࢹௌͷະདྷ#SP-142! 11݄14ʢʣ! 13:00ʙ15:00" ʮࠃࡍձٞࣨʯϝσΟΞۀքʹ͓͚ΔΫϥυ׆༻࠷৽ࣄྫ2019Ϋϥυ͕Մೳʹ͢ΔϝσΟΞۀքͷΠϊϕʔγϣϯΠγοτɾϰΝγϡϥδϟʔχ ࢯΞϚκϯΣϒαʔϏεΤϯλʔϓϥΠζετϥςδετϑδςϨϏͷCloud StrategyʙNowˍFutureʙۚ ݈ ࢯגࣜձࣾϑδςϨϏδϣϯٕज़ہ ܭը෦ σεΫ୲෦αʔόϨεΞʔΩςΫνϟʹΑΔ༗ྉϥΠϒ৴αʔϏεͷߏஙࡾӜ Ұथ ࢯւಓςϨϏ์ૹגࣜձࣾʢHTBʣίϯςϯπϏδωεہ ωοτσδλϧࣄۀ෦ӳಉ࣌௨༁"#ENٕज़ہ ܭը෦ σεΫ୲෦αʔόϨεΞʔΩςΫνϟʹΑΔ༗ྉϥΠϒ৴αʔϏεͷߏஙࡾӜ Ұथ ࢯւಓςϨϏ์ૹגࣜձࣾʢHTBʣίϯςϯπϏδωεہ ωοτσδλϧࣄۀ෦U-NEXTͷϚϧνCDNઓུʹ͓͚ΔCloudFrontͷ׆༻ࣄྫͱɺࣗࣾ։ൃϑΝΠϧసૹγεςϜʮSnowpumpʯͷ͝հ֟ݩ ਸར ࢯגࣜձࣾU-NEXTࣄۀاը ୲෦AlexaʹΑΔTVࢹௌͷະདྷഭ ਗ਼܇ ࢯΞϚκϯδϟύϯ߹ಉձࣾΞϨΫαϏδωε౷ׅຊ෦ɹ ٕज़ຊ෦ɹຊ෦/ϓϦϯγύϧιϦϡʔγϣϯΞʔΩςΫτΫϥυϝσΟΞϫʔΫϩʔυ࠷৽ࣄྫۚɹ݈ೋ ࢯΞϚκϯΣϒαʔϏεδϟύϯגࣜձࣾιϦϡʔγϣϯΞʔΩςΫτ#*OUFS#&&Ͱొஃ͠·͢ʂ์ૹۀք͚ΧϯϑΝϨϯε!ນு
[email protected]ே̍ൃΊʂʂ4FSWFSMFTTEBZT5PLZPָ͗ͯ͢͠$G1ͩͪ͠Όͬͨ!Ԭ!"✔✔✔✔TicketsOne Day. One Track. One CommunityGet Tickets2019/11/02 13:051 / 1ϖʔδAgendaΧϯϑΝϨϯε12݄14()ɺLINE FukuokaͰ։࠵͞Ε·͢ɻ※λΠϜςʔϒϧௐͷՄೳੑ͕͋Γ·͢Registration͡Ίʹ / ॾઆ໌3ؒͰ͍ࣺͯʂΠϕϯτ༻༗ྉϥΠϒ৴αʔϏεͷߏஙࡾӜ ҰथbreakKeynoteKeisuke Nishitani (AWS)breakB2Bاۀ͕CloudFunctionsͰC2CαʔϏεΛ্ཱͪ͛ͨWATANABE KENICHIRO08:0009:0009:1009:5010:0010:4010:45
[email protected]Ҿ͖ଓ͖ษڧଓ͚·͢JAWS-UGͳͲͰձ͍·͠ΐ͏
[email protected]THANK YOU!Don't be concerned ! Think !Just Do IT!