・勉強不足のためLinuxとかEC2とかLBとかよくわからなかった ・短期間で構築する必要があった ・数日間しか使わないサービスだった ・認証・決済は必須だったけど、自分では無理だった
上記の理由のため、結果的にタイトルのような構成でライブ配信サービスを構築してみましたので、どんな感じでやったのかをお話したいと思います。
https://jft2019.jaws-ug.jp/session/484/
#jft2019
KBXTVHKGUKGU@DαʔόϨε༗ྉϥΠϒ৴αʔϏεߏஙϑϧϚωʔδυ4BB4࿈ܞ××ೝূɾܾࡁ̏ؒͰ͍ࣺͯʂ
View Slide
KBXTVHKGUKGU@DπΠʔτ͠Α͏ʂKBXTVHKGUKGU@D
KBXTVHKGUKGU@D*".
KBXTVHKGUKGU@DࡾӜҰथίϯςϯπϏδωεہωοτσδλϧࣄۀ෦݉ฤہฤ෦ٕ݉ज़ہ์ૹɾ*5γεςϜ෦+"846(ࡳຈ .FEJB+"84+1@4USJQFTࡳຈίϛϡχςΟӡӦ
KBXTVHKGUKGU@DΤϯδχΞϦϯάͰίϯςϯπΛ̍ਓ̍ਓʹಧ͚͍ͨ
KBXTVHKGUKGU@D5PEBZ`TUIFNF
KBXTVHKGUKGU@D
KBXTVHKGUKGU@DͬͯΈΑ͏ʂ
KBXTVHKGUKGU@DԿΛͬͨͷ͔
KBXTVHKGUKGU@D˟儗כ✮㹀דׅկ鿪さח״㢌刿ׅ㜥さָ֮תֿׅה✮׀✪䪫ְֻׁկ ꆃ 㕼 傈 㜥⳿䏄ـ٦أ䏄ىصٓ؎ـװ⳿䏄13ة؎يזו⼯⚥ַ嚂׃ְ؎كٝزֻׁ׀欽䠐׃גתׅԒ ً؎ٝ؎كٝز儎ך鿇ؔ٦فصؚٝإٌٖص٦⳿怴罏ز٦ؙءّ٦չ痥㔐וֲדى٦颣պ涪邌խקַ أز،٦ذ؍أز-*7&ىص⟰歗갫♶ずཁ݅ʻனͷ෦ʼΛର̏ؒ ̎࣌ؒͣͭ༗ྉϥΠϒ৴ΞʔΧΠϒແ̍͠ສਓདྷͯ͑ΒΕΔ
KBXTVHKGUKGU@Dαʔόʁ%#ʁษڧ͢Δ͔
KBXTVHKGUKGU@D̍͘Β͍લ
KBXTVHKGUKGU@D&$ָ͘͠ͳ͔ͬͨɻɻɻ͜ΕΛ࠷ޙʹ৮ͬͯͳ͍
KBXTVHKGUKGU@D%#Կʹ͏ͷ͔Θ͔Βͳ͍ɻɻ42-#JH2VFSZ͕ॳ
KBXTVHKGUKGU@Dඞཁͳͷ͚ͩΓ͍ͨ
KBXTVHKGUKGU@DαʔόϨεϑϧϚωʔδυ4BB4࿈ܞ××
KBXTVHKGUKGU@DHTB ओௐࣨDirect Connect MediaLive MediaPackage CloudFrontVPCDRM SaaSUsersΠϕϯτձjsonXMLoctet-streamCloudFrontS3Lambda API GatewayLambda ProxyLambda API GatewayElementsLambda API GatewayRoute 53ACMSecrets Managerதܧंߪೖঢ়ଶ֬ೝLockiOS༻ϦΫΤετ
KBXTVHKGUKGU@DHTB ओௐࣨDirect Connect MediaLive MediaPackage CloudFrontVPCDRM SaaSUsersΠϕϯτձjsonXMLoctet-streamCloudFrontS3Lambda API GatewayLambda ProxyLambda API GatewayElementsLambda API GatewayRoute 53ACMSecrets Managerதܧंߪೖঢ়ଶ֬ೝLock͜͜΄΅ίϐϖάάΕͳΜͱ͔ͳΔ/P$PEF-PX$PEFiOS༻ϦΫΤετ
KBXTVHKGUKGU@DʮTJUFEFWDMBTTNFUIPEKQ\αʔϏε໊^ʯυϝΠϯࢦఆݕࡧʂࠂग़ͯ͜ͳ͍͠Φεεϝʂ
KBXTVHKGUKGU@DAWS ElementalMediaLiveVPCInputAWS ElementalMediaPackageCloudFrontVPCಈ࡞֬ೝ༻MP4Amazon S3AWS ElementalMediaLiveCloudFrontYouTubeςετ࠶ੜϖʔδຊ൪࠶ੜϖʔδίϯςϯπIDΛར༻ͨ͠ෆਖ਼ΞοϓϩʔυରࡦDRM SaaSߪೖલͷςετ࠶ੜຊ൪࠶ੜόοΫΞοϓෆਖ਼ରࡦ.1&(%"4))-4
KBXTVHKGUKGU@D࠶ੜຖʹDRM֬ೝLambdaProxyLambdaAPI GatewayEndpointSPAs3AWSSecrets ManagerKey/token ֨ೲAPI GatewayLambdaAPI GatewayEndpointAPI Gatewayܾࡁ࣌ॻ͖ࠐΈಡΈࠐΈuser_metadataܾࡁLock checkSession()DRM SaaSjsonXMLoctet-streamAPI GatewayEndpointAPI GatewayiOS͑ͳ͍
KBXTVHKGUKGU@D࠶ੜຖʹDRM֬ೝLambdaProxyLambdaAPI GatewayEndpointSPAs3API GatewayDRM SaaSjsonXMLoctet-stream%3.Ͱ෮߸ϓϨΠϠʔ͔ΒͷΈ࠶ੜՄೳ࡞ͬͯΒ͍·͚ͨͩ͜͜͠ײँʂʂ
KBXTVHKGUKGU@DSPAs3AWSSecrets ManagerKey/token ֨ೲAPI GatewayLambdaAPI GatewayEndpointܾࡁ࣌ॻ͖ࠐΈಡΈࠐΈuser_metadataܾࡁLock checkSession()ܾࡁɾೝূ̍ͭͷ-BNCEBʹ٧ΊࠐΈ͗͢
KBXTVHKGUKGU@D͜ΕJ04ͩͱ͏͔͝ͳ͍
KBXTVHKGUKGU@Dߪೖఆ͕Ͱ͖ͳ͍
KBXTVHKGUKGU@DJ04ແࢹͰ͖ͳ͍
KBXTVHKGUKGU@D-BNCEB૿ͦ͏
KBXTVHKGUKGU@DSPAs3ಡΈࠐΈuser_metadataLock checkSession()API GatewayEndpointAPI GatewayiOS͑ͳ͍ߪೖใ͕ը໘ʹө͞Εͳ্͍ݶ؇௨Δ͔͍͋͠
KBXTVHKGUKGU@DSPAs3ಡΈࠐΈuser_metadataLock checkSession()API GatewayEndpointAPI GatewayiOS͑ͳ͍($1$MPVE'VODUJPOTCloud Functions೦ͷͨΊ݁Ռ্ݶ؇௨ͬͨະ༻
KBXTVHKGUKGU@DHTB ओௐࣨDirect Connect MediaLive MediaPackage CloudFrontVPCDRM SaaSUsersΠϕϯτձjsonXMLoctet-streamCloudFrontS3Lambda API GatewayLambda ProxyLambda API GatewayElementsLambda API GatewayiOS༻ϦΫΤετRoute 53ACMSecrets Managerதܧंߪೖঢ়ଶ֬ೝLock
KBXTVHKGUKGU@DظؒͲΕ͘Β͍ʁ
KBXTVHKGUKGU@D̍ϲ݄͘Β͍
KBXTVHKGUKGU@DɾXௐࠪɾX࣮ɾ୯ମɾX࣮ɾ݁߹ɾX֤छςετɾXυΩυΩͷϦϦʔε
KBXTVHKGUKGU@D݄ Ր ਫ ۚ 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ࠂ ϦϦʔε ຊ൪ᶃ ຊ൪ᶄ ຊ൪ᶅௐࠪɾυΩϡϝϯτಡΜͰ৮ͬͯΈΔ࣮ɾ୯ମςετ࣮ɾ݁߹ςετࣾεςʔδϯάςετɾमਖ਼ νΣοΫνΣοΫνΣοΫόοΫΞοϓߏங
KBXTVHKGUKGU@D݄ Ր ਫ ۚ 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ࠂ ϦϦʔε ຊ൪ᶃ ຊ൪ᶄ ຊ൪ᶅௐࠪɾυΩϡϝϯτಡΜͰ৮ͬͯΈΔ࣮ɾ୯ମςετ࣮ɾ݁߹ςετࣾεςʔδϯάςετɾमਖ਼ νΣοΫνΣοΫνΣοΫόοΫΞοϓߏஙνΣοΫग़ग़ग़ग़ ग़ ग़ग़ ग़
KBXTVHKGUKGU@DԿਓͰͬͨͷʁ
KBXTVHKGUKGU@Dࣾௐ߹ͤରԠAWSA B ࢲ
γεͷͻͱ͕ɹؒʹɹ͘ΘΘͬͨʂ
KBXTVHKGUKGU@Dࣾௐ߹ͤରԠAWSA B ࢲC
σβΠϯͷͻͱ͕ɹؒʹɹ͘ΘΘͬͨʂ
KBXTVHKGUKGU@Dࣾௐ߹ͤରԠAWSA B ࢲσβΠϯC D
KBXTVHKGUKGU@DࣾςετڠྗΞΧϯτҎ্ʂ͜Μͳʹଟ͘ͷਓʹॿ͚ͯΒ͑ΔͳΜͯ
KBXTVHKGUKGU@D2"ίϯαϧ"84ͱ"VUIຊʹຊʹ͋Γ͕ͱ͏͍͟͝·ͨ͠
KBXTVHKGUKGU@D͓͍߹ΘͤରԠ
KBXTVHKGUKGU@DSPAs3AWSSecrets ManagerKey/token ֨ೲAPI GatewayLambdaAPI GatewayEndpointܾࡁ࣌ॻ͖ࠐΈಡΈࠐΈuser_metadataܾࡁLock checkSession()ങ͚ͬͨͲݟΕͳ͍ɻखಈରԠͰ͖Δ༷ʹ"VUIʹίϐϖ͢Ε͍͚ΔςΩετΛ࡞ͬͯૹ৴Ұ൪ࠔΔͷ͕
KBXTVHKGUKGU@DϑΟʔυόοΫϧʔϓप͚ͩ͠·ͨ͠X
KBXTVHKGUKGU@DϓϦϖΠυܥ/(ͦͷͰ2"Ճೖྗ࣌ͷςΩετՃιʔείʔυ৮͔ͬͯͨΒܾͦ͜ࡁͰ͍߹Θͤ
KBXTVHKGUKGU@D͜Ε͕ɺᷚʹฉ͍͍ͯͨ%FW0QTʁ
KBXTVHKGUKGU@Dࠓޙͷల
KBXTVHKGUKGU@D)5#ͷશͯΛͭͳ͍͛ͨ
KBXTVHKGUKGU@DIUCTIPQKQ&$IUCDPKQ70%IPEIUCDPKQࢹௌσʔλ0"ϥΠϒ৴ΦϑϥΠϯΠϕϯτάοζγϣοϓ*%౷߹ԣஅϨίϝϯυ
KBXTVHKGUKGU@D͜ͷωλ͜͢Γ·͢
KBXTVHKGUKGU@DΠγοτɾϰΝγϡϥδϟʔχ ࢯΞϚκϯΣϒαʔϏεΤϯλʔϓϥΠζετϥςδετϑδςϨϏͷ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#&&Ͱొஃ͠·͢ʂ์ૹۀք͚ΧϯϑΝϨϯε!ນு
KBXTVHKGUKGU@Dே̍ൃΊʂʂ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
KBXTVHKGUKGU@DҾ͖ଓ͖ษڧଓ͚·͢JAWS-UGͳͲͰձ͍·͠ΐ͏
KBXTVHKGUKGU@DTHANK YOU!Don't be concerned ! Think !Just Do IT!