"84ͰՃ͢ΔػցֶशΫοΫύουגࣜձࣾేછ୩༔Ұ"844UBSUVQ%BZ5PLZP
View Slide
ే ΄͠΄͘ͱ!LBOJ@C ΫοΫύουגࣜձࣾ ΠϯϑϥετϥΫνϟʔ෦෦ 43& ηΩϡϦςΟΤϯδχΞ "84ೝఆ4" %FW0QTΤϯδχΞ 1SPGFTTJPOBM
ϨγϐສҎ্ࠃͷ݄ؒར༻ऀ ສਓ
ରԠݴޠݴޠΧࠃւ֎ͷ݄ؒར༻ऀ ສਓҎ্
ΫοΫύουͱ"84 ʹ%$͔ΒશҠߦ BQOPSUIFBTU͓ΑͼVTFBTU Λओʹར༻ άϩʔόϧαʔϏεओʹ64ͰՔಇ"NB[PO&$Πϯελϯεd ఔ"NB[PO4ΦϒδΣΫτԯҎ্ SFRTҎ্ϐʔΫ࣌ಉ࣌ϦΫΤετ
IUUQTTQFBLFSEFDLDPNLBOOZNJBPKJBOTIVNPGBMTFSPHVXPJJHBO[JOJTVSVBLJUFLVUJZBIUUQTTQFBLFSEFDLDPNBZFNPTNBDIJOFMFBSOJOHPQTBUDPPLQBE
"84SF*OWFOUIUUQTXXXTMJEFTIBSFOFU"NB[PO8FC4FSWJDFTDPODPOUBJOFSJ[FENBDIJOFMFBSOJOHPOBXT
"84ͰՃ͢Δػցֶश
ྉཧ͖Ζ͘ΈࠐΈχϡʔϥϧωοτϫʔΫʹΑΔྉཧը૾ͷࣗಈೝࣝεϚʔτϑΥϯͷࣸਅͷɺྉཧࣸਅΛࣗಈతʹऩूه
%&.0
৽͍͠ઓ ॳͷػցֶशϓϩμΫτ ηϛϦΞϧλΠϜͳը૾ೝࣝ 8FCΞϓϦέʔγϣϯͱҧ͏ϫʔΫϩʔυ ඞཁͩͬͨͷ ৽͍͠ϫʔΫϩʔυʹରͯ͠εέʔϧ͢ΔΠϯϑϥ ࣦഊͯ͠طଘͷڥʹӨڹΛ༩͑ͳ͍ಠཱͨ͠ڥ ૉૣ͘ࢼߦࡨޡΛ܁Γฦ͢ͷʹద࣮ͨ͠ݧڥ
৽͍͠ઓ ॳͷػցֶशϓϩμΫτ ηϛϦΞϧλΠϜͳը૾ೝࣝ 8FCΞϓϦέʔγϣϯͱҧ͏ϫʔΫϩʔυ ඞཁͩͬͨͷ ৽͍͠ϫʔΫϩʔυʹରͯ͠εέʔϧ͢ΔΠϯϑϥ ࣦഊͯ͠طଘͷڥʹӨڹΛ༩͑ͳ͍ಠཱͨ͠ڥ ૉૣ͘ࢼߦࡨޡΛ܁Γฦ͢ͷʹద࣮ͨ͠ݧڥ৽͍͠αʔϏε࡞ΓΛlՃz͢Δڥ
εέʔϥϏϦςΟͷ֬อ ༧ଌͰ͖ͳ͍τϥϑΟοΫ େྔͷը૾ΞοϓϩʔυͳͲ ಥવ57ʹհ͞ΕΔ͜ͱ͋Δ͔͠Εͳ͍ ࣮ࡍ͋ͬͨ ը૾ͷΞοϓϩʔυఆʹ͕͔͔࣌ؒΔ dඦNT ಉظॲཧͯ͠͠·͏ͱϢʔβମݧΛѱ͘͢Δ
ඇಉظͳΞʔΩςΫνϟ ը૾Ξοϓϩʔυͱը૾ఆΛݸผʹॲཧ ͦΕͧΕΛεέʔϧ͍͢͠Α͏ͳߏʹ "NB[PO4ͷQSFTJHOFE63-ͰΞοϓϩʔυ 4OPUJpDBUJPOΛར༻͠ॲཧ͖͢ը૾ͷใ "NB[PO424
ڥͷ ͜Ε·Ͱͷ8FCαʔόڥͱҧ͏ڥ͕ٻΊΒΕͨ ҧ͏ݴޠ ҧ͏ϫʔΫϩʔυ ҧ͏ϋʔυΣΞ (16 ίϯςφڥΛར༻ ϥϯλΠϜ(16υϥΠόɺઃఆΛ "NB[PO&$4Λར༻ͯ͠ཧ طʹଟ͘ͷαʔϏε͕ίϯςφڥͰՔಇ
API Server"1*αʔόʹ 4QSFTJHOFE63-Λཁٻ
API Server"1*αʔόʹ 4QSFTJHOFE63-Λཁٻখ͍͞αϜωΠϧΛ 4όέοτʹΞοϓϩʔυ
API Server"1*αʔόʹ 4QSFTJHOFE63-Λཁٻখ͍͞αϜωΠϧΛ 4όέοτʹΞοϓϩʔυTUIVNCOBJMTKQH4OPUJpDBUJPO͕ 424ʹೖ͞ΕΔ{ bucket: thumbnailskey: 123.jpg }
API Server"1*αʔόʹ 4QSFTJHOFE63-Λཁٻখ͍͞αϜωΠϧΛ 4όέοτʹΞοϓϩʔυTUIVNCOBJMTKQH4OPUJpDBUJPO͕ 424ʹೖ͞ΕΔ{ bucket: thumbnailskey: 123.jpg }ϝοηʔδΛ 424͔ΒऔΓग़͢ECS Cluster
API Server"1*αʔόʹ 4QSFTJHOFE63-Λཁٻখ͍͞αϜωΠϧΛ 4όέοτʹΞοϓϩʔυTUIVNCOBJMTKQH4OPUJpDBUJPO͕ 424ʹೖ͞ΕΔ{ bucket: thumbnailskey: 123.jpg }ϝοηʔδΛ 424͔ΒऔΓग़͢ECS ClusterαϜωΠϧͷμϯϩʔυ
API Server"1*αʔόʹ 4QSFTJHOFE63-Λཁٻখ͍͞αϜωΠϧΛ 4όέοτʹΞοϓϩʔυTUIVNCOBJMTKQH4OPUJpDBUJPO͕ 424ʹೖ͞ΕΔ{ bucket: thumbnailskey: 123.jpg }ϝοηʔδΛ 424͔ΒऔΓग़͢ECS ClusterαϜωΠϧͷμϯϩʔυը૾ͷఆΛߦ͍݁ՌΛ "1*αʔόʹ௨
API Server"1*αʔόʹ 4QSFTJHOFE63-Λཁٻ{ bucket: thumbnailskey: 123.jpg }ϝοηʔδΛ 424͔ΒऔΓग़͢ECS ClusterαϜωΠϧͷμϯϩʔυը૾ͷఆΛߦ͍݁ՌΛ "1*αʔόʹ௨খ͍͞αϜωΠϧΛ 4όέοτʹΞοϓϩʔυ4OPUJpDBUJPO͕ 424ʹೖ͞ΕΔಛผͳίʔυΠϯϑϥΛ༻ҙͤͣ εέʔϥϒϧͳߏʹ
API Server"1*αʔόʹ 4QSFTJHOFE63-Λཁٻখ͍͞αϜωΠϧΛ 4όέοτʹΞοϓϩʔυTUIVNCOBJMTKQH4OPUJpDBUJPO͕ 424ʹೖ͞ΕΔ{ bucket: thumbnailskey: 123.jpg }αϜωΠϧͷμϯϩʔυը૾ͷఆΛߦ͍݁ՌΛ "1*αʔόʹ௨ϝοηʔδΛ 424͔ΒऔΓग़͢ECS ClusterECS Cluster424ͷΩϡʔʹԠͯ͡&$4λεΫεέʔϧ
"1*αʔόʹ 4QSFTJHOFE63-Λཁٻখ͍͞αϜωΠϧΛ 4όέοτʹΞοϓϩʔυTUIVNCOBJMTKQH4OPUJpDBUJPO͕ 424ʹೖ͞ΕΔ{ bucket: thumbnailskey: 123.jpg }ϝοηʔδΛ 424͔ΒऔΓग़͢ECS ClusterαϜωΠϧͷμϯϩʔυը૾ͷఆΛߦ͍݁ՌΛ "1*αʔόʹ௨API ServerAPI Server&$4λεΫ͔Βͷఆ݁ՌΛ͚ͭͩ
&$4্Ͱͷࣸਅఆ ࣸਅఆʹ(16Λ༻͍ͯ͠Δ ఆॲཧʹ(16ΞΫηϥϨʔγϣϯ͕ར༻Ͱ͖Δ ಉՁ֨ଳͷ$16Πϯελϯεͱൺͯdഒͷੑೳࠩ HΠϯελϯεͰࣸਅఆ༻ͷ&$4$MVTUFSΛߏ
IBLPʹΑΔΞϓϦέʔγϣϯఆٛ IBLPIUUQTHJUIVCDPNFBHMFUNUIBLP &$4ޓͷίϯςφσϓϩΠπʔϧ ZBNMKTPOOFUܗࣜͰͷΞϓϦέʔγϣϯఆٛ "VUP4DBMFɺ-#ͷࢦఆͳͲՄೳ શ։ൃऀ͕ࣗͰఆٛΛॻ͍ͯσϓϩΠՄೳscheduler:type: ecsregion: ap-northeast-1cluster: hako-production-g2desired_count: 1app:image: food-photo-classifiercpu: 128memory: 3072memory_reservation: 2048env:AWS_REGION: ap-northeast-1COOKPADNET_ENV: production...
ӡ༻࣮ ը૾ೝࣝϞσϧΛҰΞοϓσʔτ ΞοϓσʔτΓӽ͑ɺେ͖ͳͳ͘ӡ༻Ͱ͖͍ͯΔສਓҎ্ͷྉཧࣸਅΛهͷϢʔβʔ͕ར༻ ສຕҎ্݄ݱࡏ
৽͍͠ઓ ॳͷػցֶशϓϩμΫτ ηϛϦΞϧλΠϜͳը૾ೝࣝ 8FCΞϓϦέʔγϣϯͱҧ͏ϫʔΫϩʔυ ඞཁͩͬͨͷ ৽͍͠ϫʔΫϩʔυʹରͯ͠εέʔϧ͢ΔΠϯϑϥ✅ طଘͷڥʹӨڹΛ༩͑ͳ͍ಠཱͨ͠ڥ✅ ࢼߦࡨޡΛ܁Γฦ͢ͷʹద࣮ͨ͠ݧڥ
࣮ݧڥͮ͘Γ खΛಈ͔ͯ͠ػցֶशͷݟΛಘΔඞཁ͕͋ͬͨ "84ڥશͯΠϯϑϥ෦͕ཧ͍͕ͯͨ͠ʜ Ϧιʔεͷ༻ҙ͕͍͔ͭͳ͍ ͍ΘΏΔຊ൪ڥͷӡ༻ʹ߹Θͳ͍ ٻΊΒΕΔͷαʔϏεʹඞཁͳ࣮ݧ݁Ռ தԝཧʹݶք͕๚Ε֤ͨࣄۀ෦Πϯϑϥ෦ٕज़ج൫ܥ෦ॺݚڀ։ൃ෦
ݚڀ։ൃج൫ ʮ͔ͤͬ͘৮ΕΔͷ͔ͩΒউखʹਐΊΒΕΕྑ͍ʯ ݚڀ։ൃ෦ͷΤϯδχΞ͕ࣗ༝ʹखΛಈ͔ͤΔॴ ຊ൪ڥͱ͞Ε͍ͯΔ ཧ͖͢෦͚͓ͩ͑͞ɺଟ͘Λ։ൃऀҠৡ
ΞΧϯτ "84ΞΧϯτΛผʹ࡞ͯ͠ "840SHBOJ[BUJPOΛར༻ͯ͠ଞͷ༻్ʹ࡞ *".6TFSຊ൪ڥͷݸਓϢʔβ͔Β"TTVNF3PMFPS440 $MPVE5SBJM$POpHΛ༗ޮʹͯ͠PVUQVUઌΛอޢ lى͜Δલʹ͙zͰͳ͘l͙͢ؾ͚ͮΔzlޙ͔Β͑Δz
ωοτϫʔΫڥ ౿Έ44)αʔόຊ൪ΞΧϯτͷ71$ Πϯϑϥ෦ཧ 71$1FFSJOHͰଓͯ͠ू /BNFλάΛͬͨ%/4ਖ਼Ҿ͖ɺٯҾ͖Λఏڙ "84$POpH3VMFTͰηΩϡϦςΟάϧʔϓͷΠϯλʔωοτղ์ΛνΣοΫ
ίετཧ ࡉ͔͍ཧ͠ͳ͍͕͋ΔఔѲ ৵ೖͳͲͷΞϥʔτʹͳΔ #VEHFUTػೳΛར༻ ༧ଌֹͳͲͰ4/4/PUJpDBUJPOΛड͚औΓରԠ
αϙʔτͷ׆༻ σϕϩούʔαϙʔτ͔ΒΤϯλʔϓϥΠζαϙʔτͷҠߦ ࣌ؒͱࣝΛങ͏ ։ൃऀ͕ࣗͰΛղܾͰ͖ΔΑ͏ʹ ར༻نʹΑͬͯϏδωεͰͳ͍ͷͰཁݟੵΓ
։ൃऀΞΧϯτ ݚڀ։ൃ༻ͱಉ༷͕ͩશ։ൃऀ͕ࣗ༝ʹར༻Մೳ ৭ʑͳ"84αʔϏεΛձࣾ࣋ͪͰݕূͰ͖Δ
ར༻࣮ "84ΛࣗͰ৮ͬͯΈΔਓ͕ͱͯ૿͑ͨ ༷ʑͳ"84αʔϏεͷར༻ͱऔΓࠐΈ "1*(BUFXBZ -BNCEB $PHOJUP %ZOBNP%# &MFNFOUBM.FEJB4FSWJDF (MVF ,JOFTJT 1PMMZ 4BHF.BLFS 93BZ -FY 1JOQPJOU "QQ4ZODFUDʜ ৽ػೳɺαʔϏεͷग़ΛՃ ྉཧ͖Ζ͘ "MFYB4LJMM DPPLQBE57 FUD
ֶΜͩ͜ͱ ৽͍͜͠ͱΛૉૣ͘খ࢝͘͞ΊΔͨΊʹݖݶͱ͕ཁΔ ҆৺ͯࣗ͠༝ʹ͑Δڥͮ͘Γ͕ͦ͜ॏཁ "84ʹ࣮ݱ͢ΔͨΊͷπʔϧ͕ἧ͍ͬͯΔ
Ͳ͏͍ͬͯͨͷ͔ʁ
ࣗݾհ છ୩༔Ұ<:VJDIJSP4PNFZB> ΫοΫύουגࣜձࣾݚڀ։ൃ෦ ϦαʔνΤϯδχΞ݄d ʰػցֶशʹඞཁͳج൫Λ "84্ʹߏங͢ΔʱUXJUUFSDPN!BZFNPT@ZHJUIVCDPNBZFNPTIUUQTXXXBZFNPTNF
εϞʔϧελʔτͰεέʔϧ͢Δ(16࣮ݧڥΛ"84্ʹߏங͢Δ
എܠΫοΫύουݚڀ։ൃ෦ ݄ʹൃ ॳظϝϯόʔ໊ ݄ݱࡏ ࠃʹ໊ւ֎ʹ໊ ෳͷਂֶशϓϩδΣΫτ (16࣮ݧڥ͕ඞཁϢʔβʔϑΟʔυόοΫͷࣗಈλά͚ը૾ੳʹΑΔϨγϐͷྨϨγϐࡐྉ໊ͷࣗಈਖ਼نԽ
(16࣮ݧڥͷཁ݅ ෳਓ͕ෳͷ࣮ݧΛߦ͏͜ͱ͕ग़དྷΔ
&$ΠϯελϯεΛ࣮ݧڥͱͯ͠͏ ΦϯσϚϯυΠϯελϯεͷར͕͋Δ σϕϩούʔλεΫʹԠͯ͡ඞཁͳͱεϖοΫ͕มԽ͢Δ 1/7*%*"(16࠷৽Ϟσϧͷαϙʔτ ઐ༗Πϯελϯεͷར (16λεΫجຊతʹഉଞͰɺଞͷ։ൃऀͱಉ࣌ʹར༻ͮ͠Β͍ ݚڀ։ൃతͰɺࡶʹTVEPग़དྷΔಠཱͨ͠ڥ͕ศར
(16࣮ݧڥ &$͕ग़དྷΔ·Ͱ &$ΠϯελϯεΛ্ཱͪ͛ɺTTIΛૄ௨ͤ͞Δ ඞཁͳιϑτΣΞͷΠϯετʔϧʗઃఆ OWJEJBESJWFS $6%" DV%//ͳͲ݁ߏେม ".* "NB[PO.BDIJOF*NBHFͷར༻
ιϑτΣΞɺϛυϧΣΞͷ Πϯετʔϧͱઃఆ".*࡞ͱཧ
ιϑτΣΞɺϛυϧΣΞͷ Πϯετʔϧͱઃఆεφοϓγϣοτ ".*ͷ࡞".*࡞ͱཧ
ιϑτΣΞɺϛυϧΣΞͷ ΠϯετʔϧͱઃఆίʔυԽͯ͠όʔδϣϯཧεφοϓγϣοτ ".*ͷ࡞".*࡞ͱཧ
IUUQTEPDTBXTBNB[PODPNKB@KQEMBNJMBUFTUEFWHVJEFXIBUJTEMBNJIUNM"84%FFQ-FBSOJOH".* ਂֶशʹ ຆͲͷ߹ڞ௨ͯ͠ඞཁͳιϑτΣΞ͕ηοτΞοϓ͞ΕͨϚωʔδυͳ".*l/7*%*"$6%"ɺ/7*%*"DV%//ɺ͓Αͼ࠷ਓؾ͕ߴ͍σΟʔϓϥʔχϯά ϑϨʔϜϫʔΫͷ࠷৽ϦϦʔεΛ༻͢ΔΑ͏ʹࣄલʹઃఆ͞Εͯఏڙ͞Ε·͢ɻz
ࣗ࡞".*ίʔυԽͯ͠όʔδϣϯཧεφοϓγϣοτ ".*ͷ࡞"84%FFQ-FBSOJOH".*FD3VO*OTUBODFT
ࣗ࡞".*ίʔυԽͯ͠όʔδϣϯཧεφοϓγϣοτ ".*ͷ࡞"84%FFQ-FBSOJOH".*FD3VO*OTUBODFT".*Λར༻ͯ͠ɺڥΛؚΊͯΦϯσϚϯυͳ (16࣮ݧڥΛ࣮ݱ
".*Λར༻͢Δ͜ͱʹΑΓιϑτΣΞͷΠϯετʔϧͱઃఆ࡞ۀΛল͘͜ͱ͕ग़དྷͨ 71$ 4FDVSJUZ(SPVQͳͲͷઃఆ߲͕͍ͬͯΔ $IBUCPUӽ͠ʹطఆΛར༻ͯ͠ΠϯελϯεΛ࡞Δ͏ͻͱʙ$IBUCPU "84-BNCEBʹΑΔ&$ͷૢ࡞ʙ
͏ͻͱʙ$IBUCPU "84-BNCEBʹΑΔ&$ͷૢ࡞ʙ
DSFBUFXPSLCFODI0VUHPJOH8FCIPPLT͏ͻͱʙ$IBUCPU "84-BNCEBʹΑΔ&$ͷૢ࡞ʙ
DSFBUFXPSLCFODI0VUHPJOH8FCIPPLTTMBDL@VJE6 DPNNBOEDSFBUFXPSLCFODIMBNCEB*OWPLFFD3VO*OTUBODFT71$ 4VCOFU /BNFλά ڥಛ༗ͷઃఆ͜͜ͰΔ͏ͻͱʙ$IBUCPU "84-BNCEBʹΑΔ&$ͷૢ࡞ʙ
*ODPNJOH8FCIPPLTATTIBZFNPTXPSLCFODIEOTDPNQBOZATTI͏ͻͱʙ$IBUCPU "84-BNCEBʹΑΔ&$ͷૢ࡞ʙ
͞Βʹ͏ͻͱʙ"84-BNCEBΛར༻ͨ͠ΞΠυϧΠϯελϯεͷࢹʙ ͍ͬͯͳ͍Πϯελϯεͷམͱ͠ΕͳͲ͕ൃੜ අ༻໘Ͱେ͖ͳͰͳ͍͕ɺ͍ۙকདྷ৫֦େͷোนʹ ͳΓ͔Ͷͳ͍ ར༻୯Ձͷߴ͍Πϯελϯεʹ͍ͭͯɺΞΠυϧঢ়ଶΛࢹ
͞Βʹ͏ͻͱʙ"84-BNCEBΛར༻ͨ͠ΞΠυϧΠϯελϯεͷࢹʙ;[[
͞Βʹ͏ͻͱʙ"84-BNCEBΛར༻ͨ͠ΞΠυϧΠϯελϯεͷࢹʙIPVSMZFD4UPQ*OTUBODFT;[[
͞Βʹ͏ͻͱʙ"84-BNCEBΛར༻ͨ͠ΞΠυϧΠϯελϯεͷࢹʙIPVSMZFD4UPQ*OTUBODFT;[[ར༻ऀʹ௨ʗࣗಈͰ4UPQ
(16࣮ݧڥ·ͱΊ ".*ͷར༻ʹΑΔଈ࣌ར༻Մೳͳ &$ΠϯελϯεΛ4MBDL͔Βૢ࡞͢Δ ΠϯελϯεΛ্ཱͪ͛ΔࡍͷઃఆΛڞ௨Խ 4MBDLͷ*ODPNJOH8FCIPPL0VUHPJOH8FCIPPLͱ "NB[PO"1*(BUFXBZ"84-BNCEBͷΈ߹Θͤ ҆ՁͰαʔόʔϨεͳ$IBU#PU͕࣮Ͱ͖Δ
࣮ݧ͔Βຊ൪
ػցֶशϞσϧͷ։ൃͱσϓϩΠ ػցֶशϞσϧσϓϩΠ͞ΕͯॳΊͯՁΛੜΉ FHྉཧ͖Ζ͘ ϞσϧͱΞϓϦέʔγϣϯຖʹઃܭͱσϓϩΠ༻։ൃ࡞ۀ͕ੜ͡Δ ʮػցֶशΞϓϦέʔγϣϯઃܭ։ൃ୭͕Δͷ͔ʁʯ εϞʔϧελʔτ৫ͷεέʔϥϏϦςΟʹڞʹࢧো͕ग़Δ
"NB[PO4BHF.BLFS "84ͷϚωʔδυػցֶशϓϥοτϑΥʔϜ "84SF*OWFOUͰൃද ػցֶशϞσϧͷֶशͱσϓϩΠΛαϙʔτ ϓϥοτϑΥʔϜͤͰεέʔϥϒϧͳσϓϩΠख๏ ϞχλϦϯά"#ςετͳͲϓϥοτϑΥʔϜͳΒͰͷ ػೳࠓޙʹظ
·ͱΊ
͘͢खΛಈ͔͠αʔϏεΛͭ͘ΔͨΊʹηϧϑαʔϏεԽશͯΛཧ͢ΔͷͰͳ͘ τϨʔεͰ͖ΔΈͮ͘Γ$MPVE5SBJM $POGJHΤϯλʔϓϥΠζαϙʔτͷ׆༻ྉཧ͖Ζ͘ͷެ։
(16࣮ݧڥ".*Λར༻ͨ͠(16࣮ݧڥͷඋ".*Πϯελϯεͷ མͱ͠ΕࢹΠϯελϯεཧ$IBU#PU-BNCEB $MPVE8BUDIΦϯσϚϯυͳ(16࣮ݧڥΛ࣮ݱ
8F`SFIJSJOHIUUQTDPPLQBEKPCT