AWS DevDay 2018/11/2
COO͕ϚωʔδυαʔϏεͰ̍ਓεϐʔυ։ൃͯ͠ಘͨݟMESON COOখྛ༎थ
View Slide
খྛ༎थʢAR͓͡͞ΜʣגࣜձࣾMESON COOΤϯδχΞܦݧ༗ΓAWSࠓճ͕ॳ։ൃձࣾͰԿͰ͞Μͱͯ͠৭ΜͳۀΛߦ@AR_Ojisan
heymeshͷհͱ։ൃ࣌ͷMESONͷঢ়گ
heymesh: Search engine for 3D models13αΠτ, 50ສ݅Λ͑Δ3DϞσϧσʔλΛԣஅݕࡧ
heymesh: Search engine for 3D modelsϥΠηϯεՁ֨ɺεϖοΫͰͷϑΟϧλϦϯάɹ
ࣄۀੑͳͲΛਫ਼ࠪͨ݁͠ՌɺΫϩʔζ͢Δͱ͍͏݁ʹ20189݄ʹheymeshΫϩʔζ
ɾݕূͷͨΊͷ։ൃɹˠP/S Fitͷஹ͕͠ݟ͑ͨͷͰࢢೖͯ͠ݕূ͠Α͏ɾ͕ͬͭΓ։ൃϦιʔεׂ͕͚ͳ͍ɹˠग़དྷΔ͚ͩখྛ͕։ൃͰ͖Δ෦ΛΧόʔheymesh։ൃͷϞνϕʔγϣϯ
AWS Summit 2018ʹͯAWS SAड
ΞʔΩςΫνϟհ
heymeshΛࢧ͑ΔAWSαʔϏεFargateElasticsearchServiceDynamoDB NLB Lambda
git pushΤϯδχΞϢʔβʔheymesh όοΫΤϯυΞʔΩςΫνϟʔ
git pushΤϯδχΞϢʔβʔσʔλऩू
Scrapy Cloudgit pushΤϯδχΞϢʔβʔݕࡧΞϓϦέʔγϣϯ
git pushΤϯδχΞϢʔβʔheymesh όοΫΤϯυΞʔΩςΫνϟʔόοΫΤϯυΞʔΩςΫνϟશͯ1ਓͰ1ϲ݄Ͱߏங
1ਓͰ1ϲ݄Ͱ࡞Γ͖ΔͨΊʹҙࣝͨ̏ͭ͠ͷϙΠϯτ
1. పఈతʹϦιʔεཧ͠ͳ͍
git pushΤϯδχΞϢʔβʔϚωʔδυˍαʔόʔϨεαʔϏε
ΤϯδχΞ࠾༻͕ϓϩμΫτ։ൃ࠷େͷؔ
ਓޏ͑ͳ͍͚Ͳɺૣ͘։ൃ͠ͳ͖Ό͍͚ͳ͍ɾɾɾ
ϚωʔδυˍαʔόʔϨεαʔϏεΛ׆༻ຊʹ։ൃ͕ඞཁͳ෦ʹ͚ͩूதͰ͖Δ
ՄೳͳݶΓαʔόʔϨε߹ʹΑͬͯϚωʔδυΛ࠾༻
2. AWSαʔϏε୯ҐͰͷॲཧͷׂ
git pushΤϯδχΞϢʔβʔΫϩʔϧॲཧεΫϨΠϐϯάॲཧσʔλܗॲཧಠࣗܭࢉॲཧSQSΛͬͨύΠϓϥΠϯॲཧ
ϓϩμΫτͷ։ൃॳظ༧ଌ͕ͮ͠Β͍
git pushΤϯδχΞϢʔβʔ࣮ࡍʹى͖ͨࣄॳظఆΑΓσʔλܗॲཧ͕ෳࡶԽϘτϧωοΫʹͳͬͯ͠·ͬͨ
git pushΤϯδχΞϢʔβʔॳظఆΑΓσʔλܗॲཧ͕ෳࡶԽϘτϧωοΫʹͳͬͯ͠·ͬͨΑΓ͍ॲཧʹॊೈʹରԠͰ͖ΔFargateʹॲཧΛҠߦ࣮ࡍʹى͖ͨࣄ
AWSαʔϏε୯ҐͰͷૄ݁߹ͳॲཧׂ֤AWSαʔϏεͷڧΈΛ࠷େݶ׆༻
AWSαʔϏε୯ҐͰͷૄ݁߹ͳॲཧׂൃੜ࣌ʹมߋൣғΛ໌͔֬ͭ࠷খݶʹ
3. άϩʔόϧج४ͷٕज़બఆ
heymeshશੈքͷϢʔβʔ͕λʔήοτ
ٕज़બఆάϩʔόϧલఏͰͳ͍ͱੈքͷελʔτΞοϓͱઓ͑ͳ͍
git pushΤϯδχΞϢʔβʔଟͷՕॴͰFargateΛར༻
git pushΤϯδχΞϢʔβʔଟͷՕॴͰFargateΛར༻ΞʔΩςΫνϟશͯόʔδχΞϦʔδϣϯͰߏங
άϩʔόϧج४ͷٕज़બఆศརͳ৽αʔϏεΛҰૣ͘ར༻Մೳ
άϩʔόϧج४ͷٕज़બఆάϩʔόϧͰઓ͑ΔελʔτΞοϓʹ
ελʔτΞοϓͱʹ͔͘ૣ͘αʔϏεΛϦϦʔε͢Δ͜ͱ͕େࣄ
3݄ɿϢʔβʔΠϯλϏϡʔɺαʔϏεઃܭ4݄ɿαʔϏε։ൃ5݄ʙ8݄ɿαʔϏεӡ༻ɺվળɺݕূ9݄ɿαʔϏεΫϩʔζͷҙࢥܾఆߴʹαʔϏεͷݕূ͕Մೳʹͳͬͨ
̏ͭͷϙΠϯτΛҙࣝ͢Δ͜ͱͰগͳ͍։ൃϦιʔεͰਝͳ։ൃ͕Մೳ
heymesh։ൃ࣌ͷࣦഊஊͱ͔ͦ͜Βಘֶͨͼ
σʔλ͕ετοΫ͞ΕΔ෦ͷΞʔΩςΫνϟઃܭ৻ॏʹ
heymeshαʔϏεͷಛੑ্ॳظ͔ΒେྔͷσʔλΛѻͬͨ※13αΠτ, 50ສ݅Ҏ্ͷ3DϞσϧσʔλ
git pushΤϯδχΞϢʔβʔσʔλऩू σʔλৗʹྲྀΕΔϑϩʔܕ
git pushΤϯδχΞϢʔβʔσʔλऩूσʔλ͕ੵ͞ΕΔετοΫܕσʔλ͕ੵ͞ΕΔετοΫܕ
git pushΤϯδχΞϢʔβʔσʔλऩूόονॲཧͰҰׅܭࢉΛߦ͍ͬͯͨ
ϑϩʔܕͷΞʔΩςΫνϟͷઃܭׂͱ࣮ྃޙ༥௨͕ར͕͘…
ετοΫܕͷΞʔΩςΫνϟઃܭσʔλ૿Ճʹ͍มߋίετ͕େ͖͘ͳΔ
ॳͷ༧ఆΑΓଟ͘ͷσʔλ͕ऩू͞ΕɺDynamoDB→AthenaͷҠߦ͕ߤ
ਝʹ։ൃ͠Α͏ͱ͢Δͱઃܭͷ͕࣌ؒຬʹऔΕͳ͍ʮઃܭ͖͢ϙΠϯτʯΛԡ͑ͯ͞ઃܭͷ࣌ؒΛ͓ͯ͘͜͠ͱ͕େࣄ
ΠϯϑϥΤϯδχΞ͡Όͳͯ͘εϐʔυ։ൃΛՄೳʹ͢ΔAWSπʔϧ
ChaliceαʔόʔϨεΞϓϦέʔγϣϯΛ؆୯࡞AWSͷ෦Λҙࣝͤͣʹ࣮Մೳ
ॳظͷ։ൃՄೳͳݶΓαʔόʔϨε͕ྑ͍☺
APIαʔόʔαʔόʔϨεͰཱͯΕϦιʔεཧཁΒ͕ͣͩ…
LambdaͰAPIΛ࡞Ζ͏ͱ͢ΔͱLambdaͱAPI Gatewayͷཧ͕໘
Chaliceͷྑ͍ͱ͜ΖAWSͷͨΊͷϧʔϧจ๏Λ֮͑Δඞཁ͕΄΅ͳ͍·ΔͰWeb FrameworkͰΞϓϦΛ࡞ΔΑ͏ʹ࣮ՄೳϩʔΧϧ࣮ߦ؆୯σόοΫ͕؆୯ʹͰ͖ΔΤϥʔϨεϙϯείʔυԽՄೳσϑΥϧτͰΤϥʔϨεϙϯεͷΫϥε͕༻ҙ͞Ε͍ͯΔʢ̍ʣʢ̎ʣʢ̏ʣ
Chaliceͷྑ͍ͱ͜ΖAWSͷͨΊͷϧʔϧจ๏Λ֮͑Δඞཁ͕΄΅ͳ͍·ΔͰWeb FrameworkͰΞϓϦΛ࡞ΔΑ͏ʹ࣮ՄೳϩʔΧϧ࣮ߦ؆୯σόοΫ͕؆୯ʹͰ͖ΔΤϥʔϨεϙϯείʔυԽՄೳσϑΥϧτͰΤϥʔϨεϙϯεͷΫϥε͕༻ҙ͞Ε͍ͯΔʢ̍ʣʢ̎ʣʢ̏ʣॳظελʔτΞοϓͷεϐʔυ։ൃʹ͍͍ͯΔ
Chaliceͷྑ͍ͱ͜ΖAWSͷͨΊͷϧʔϧจ๏Λ֮͑Δඞཁ͕΄΅ͳ͍·ΔͰWeb FrameworkͰΞϓϦΛ࡞ΔΑ͏ʹ࣮ՄೳϩʔΧϧ࣮ߦ؆୯σόοΫ͕؆୯ʹͰ͖ΔΤϥʔϨεϙϯείʔυԽՄೳσϑΥϧτͰΤϥʔϨεϙϯεͷΫϥε͕༻ҙ͞Ε͍ͯΔʢ̍ʣʢ̎ʣʢ̏ʣॳظελʔτΞοϓͷεϐʔυ։ൃʹ͍͍ͯΔୠ͠1ZUIPOJTUBʹݶΔʂ
·ͱΊ
ɾॳظελʔτΞοϓAWSͷϚωʔδυΛϑϧ׆༻͖͢ɾਓΛແཧʹޏ͏ΑΓඞཁͳ෦ͷΈʹूதͯ͠εϐʔυ։ൃɾετοΫܕͷσʔλͷઃܭͳͲ৻ॏʹͳΔ෦ΛݟۃΊΔɾChaliceͳͲΛ׆༻ͯ͠Πϯϑϥ෦Λҙࣝ͠ͳͯ͘ྑ͍ঢ়ଶʹ·ͱΊ
MESONͷհ
ฐࣾUX+UIʹڧ͍AR/VR੍࡞ελδΦAR/VRࣄۀͷίϯηϓτϝΠΩϯάAR/VRΛ׆༻ͨ͠ΞϓϦιϦϡʔγϣϯ։ൃAR/VRʹ͓͚ΔUX+UIσβΠϯͷఏҊ
ARͷاըཱҊ͔Βάϩʔε·ͰαϙʔτࣄۀϓϥϯχϯάϢʔβʔମݧσβΠϯٕज़ྗ
@AR_Ojisan͓ࣄͷґཔΛ͍ͨ͠ํɾҰॹʹಇ͖͍ͨํ͓ؾܰʹ͝࿈བྷ͍ͩ͘͞ʂ
͝੩ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ʂ