Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
AWSで実現する進化するWEBサービス(SaaS)の裏話
Search
Takayuki Yoshioka
January 12, 2024
0
120
AWSで実現する進化するWEBサービス(SaaS)の裏話
Takayuki Yoshioka
January 12, 2024
Tweet
Share
More Decks by Takayuki Yoshioka
See All by Takayuki Yoshioka
AWSで実現する進化する WEBサービス(SaaS)
yoshiokacb
0
50
モノリスウェブアプリケーションのクラウド最適化について - SaaSの運用 -
yoshiokacb
1
1.3k
My Redmine Gen.2を支えるインフラストラクチャー
yoshiokacb
0
2.3k
ホスティングサービスのインフラ環境を再構築!
yoshiokacb
0
4.5k
Scalable structure for AWS
yoshiokacb
1
1.2k
GDG Cloud Shimane #02
yoshiokacb
0
46
GCPUG-Shimane #04 開催レポート
yoshiokacb
0
60
EC2からECSへ移行を始めたお話
yoshiokacb
2
7.9k
Featured
See All Featured
We Have a Design System, Now What?
morganepeng
53
7.8k
Git: the NoSQL Database
bkeepers
PRO
431
66k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
48
9.7k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
188
55k
How to train your dragon (web standard)
notwaldorf
96
6.2k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
50k
Building Flexible Design Systems
yeseniaperezcruz
328
39k
Optimising Largest Contentful Paint
csswizardry
37
3.4k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
34
3.1k
How to Think Like a Performance Engineer
csswizardry
26
1.9k
Fireside Chat
paigeccino
39
3.6k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
15
1.6k
Transcript
"84Ͱ࣮ݱ͢Δ ਐԽ͢Δ8&#αʔϏεʢ4BB4ʣͷཪ 'BS&OE5FDIOPMPHJFT$PSQPSBUJPO
ΞδΣϯμ ࣗݾհɾձࣾհ αʔϏεհ αʔϏεͷมભʢ(FOFSBUJPOʣ ΠϯϑϥڥͷબαʔϏεϦϦʔε·Ͱ
ΞʔΩςΫνϟͷมભαʔϏεϦϦʔεޙ (ͷ՝ /FXδΣωϨʔγϣϯʢ(FOFSBUJPOʣ ίϯςφԽ ΦϯϘʔσΟϯάࣗಈԽ σϓϩΠͷࣗಈԽ Ϣʔβʔ͚"1*
ࣗݾհ ໊લ ٢Ԭོߦ ॴଐ ϑΝʔΤϯυςΫϊϩδʔגࣜձࣾ αʔϏε։ൃάϧʔϓϚωʔδϟʔ ۀ جຊ"84ʹؔΘΔ͜ͱશൠ Ϛωʔδϟʔۀ ͖ͳαʔϏε
4UFQ'VODUJPOTɾ$%,ɾ"NQMJGZ ίϛϡχςΟʔ +"846(4IJNBOFɺ04$4IJNBOF
ϑΝʔΤϯυςΫϊϩδʔגࣜձࣾ ॴࡏ ౡࠜݝদߐࢢ ίΞϏδωε .Z3FENJOFʢ4BB4ʣ 044 3FENJOFͷ։ൃʹίϛοτ ن ࣾһ໊ʢʣ ͦͷଞ
͕ࣾ3FENJOFͷίϛολʔ
αʔϏεհ
.Z3FENJOF w .Z3FENJOFɺΦʔϓϯιʔεͷ ʮ3FENJOFʯΛΫϥυͰఏڙ͢Δ αʔϏεɻ w "84ͷ׆༻ʹΑΓηΩϡΞ͔ͭߴ͍Մ ༻ੑɾԽΛ࣮ݱɻ w ϓϩδΣΫτཧɺλεΫཧɺ՝
ཧɺ͓͍߹ΘͤཧɺΠϯγσϯ τཧɺόάཧͳͲͷ͞·͟·ͳ༻ ్Ͱར༻ɻ
αʔϏεͷมભ ʢ(FOFSBUJPOʣ
Πϯϑϥڥͷબ αʔϏεϦϦʔε·Ͱ
αʔϏεΛఏڙ͢ΔαʔόʔΛͲ͜Ͱಈ͔͔͢ʁ ʢࠒʣ
σʔληϯλʔΛར༻ ϨϯλϧαʔόʔΛར༻ ࣗࣾʹαʔόʔߏங "84Ϋϥυ Πχγϟϧίετɾϥϯχϯάίετ͕ߴ͍ɻ ʢαʔόʔௐୡɺαʔόʔϥοΫɺωοτϫʔΫʣ ͖ͪΜͱͨ͠ωοτϫʔΫߏ͕࡞Εͳ͍ɻεέʔϧΞοϓͰ͖ͳ͍ɻ ࣄॴ͕ͳ͔ͬͨͷͰɺͦͦબࢶʹͳ͔ͬͨɻ ίετʢΠχγϟϧɾϥϯχϯάʣɺઃܭ͕ॊೈʹͰ͖Δɻ ࣮"84͋Γʹ͖ͷελʔτΞοϓͩͬͨɻ
αʔϏε͕يಓʹͬͨࠒʜ ࠃ࢈Ϋϥυͱ͍͏ର߅ྗ͕಄͖ͯ͠·ͨ͠ɻɻ ʢ͝Ζʣ
"84WTࠃ࢈Ϋϥυ ػೳൺֱ ˠ"84ʹݟྼΓ͠ͳ͍ɻʢޓੑ͕ߴ͍ʣ ྉۚൺֱ ˠ໌֬ͳ͕ࠩͳ͍ɻ Ϧʔδϣϯ ˠࠃʹαʔόʔ͕͋ΓϨΠςϯγʔ͕͍ɻ αϙʔτ ˠӦۀ୲ʹΑΔݸผରԠ͕ظͰ͖ΔɻʢަবͰ͖ΔՄೳੑ͕͋Δɻʣ ൺֱʢࠃ࢈ΫϥυͷϝϦοτʣ
ҠߦίετΛؾʹ͍ͯ͠Δ͏ͪʹ"84͕ͲΜͲΜศརʹɺ҆͘ͳͬͨɻɻ
ΞʔΩςΫνϟͷมભ αʔϏεϦϦʔεޙ
ୈظɹʢϓϨϦϦʔεແঈఏڙʣ &$ʢ8&#%#ʣ #BDLVQ "84$MPVE VTFBTU
ୈ̍ظɹʢαʔϏεΠϯʣ 1SPYZ 8&#%#YO ˞શͯ&$Ͱߏங "84$MPVE
՝ wϝϯςφϯεͷίετ͕૿͖͑ͯͨɻ wͷཧʹख͕͔͔ؒΔɻ w3FENJOFͷผαʔόʔͷҠߦʹख͕͔͔ؒΔɻ ʢ%#ͷμϯϓऔಘͯ͠ɺఴϑΝΠϧΛίϐʔͯ͠ʣ
ୈ̎ظɹ 1SPYZ 8&#YO /'4 %# ˞શͯ&$Ͱߏங ˞3%4ϕϯμʔϩοΫΠϯΛߟྀͯ͠ར༻͠ͳ͍ "84$MPVE
ετϨʔδͱ%#ΛผαʔόʔʹΓ͢͜ͱͰղܾɻ
ୈ̎ظɹ 1SPYZ 8&#YO /'4 %#ʢ&$PS3%4ʣ "84$MPVE
ΫϥγοΫΠϯελϯεऴྃͷ͓Βͤ
ୈ̏ظɹՆ w ౦ژϦʔδϣϯҾӽ w 71$ʹΑΔΑΓηΩϡΞͳઃఆʹมߋ w ϑϩϯτʹ/-#Λઃஔ w /'4Λ&'4ʹมߋ w
%#Λશʹ3%4ʹมߋ
(FOͷ՝ w αʔόʔཧͷίετ w αʔϏεཧͷଐਓԽʢखಈ࡞ۀʣ w ֤छαʔϏεʢΦϓγϣϯؚΉʣਃ͠ࠐΈରԠ w ΞϓϦέʔγϣϯͷΞοϓσʔτ࡞ۀͷίετ w
ύεϕʔεͷϧʔςΟϯάͩͬͨͷͰ αϒυϝΠϯΛར༻͔ͨͬͨ͠ɻ
/FXδΣωϨʔγϣϯ ʢ(FOFSBUJPOʣ
.Z3FENJOF (FOϦϦʔε🎉 ݄
શମਤ
3FENJOF
3FENJOF
ΞϓϦέʔγϣϯͷίϯςφԽ w Ϛϧνςφϯτ ΦϯϘʔςΟϯά σϓϩΠࣗಈԽ Ϣʔβʔ͚"1*
(FOΛϦϦʔε͢ΔͨΊʹͬͨ͜ͱ
&$ʢαʔόʔʣͷϝϯςφϯε͕େมʂ αʔόʔϨεͷαʔϏεͰӡ༻͍ͨ͠ʂ
ίϯςφԽ ΞϓϦέʔγϣϯͷεςʔτϨεԽ
ͳͥίϯςφʁ ͦͷଞɺৄ͘͠5XFMWF'BDUPS"QQʹώϯτ͕͋Γ·͢ɻ ʢΫϥυʹదͨ͠ΞϓϦέʔγϣϯͷ࡞Γํʣ IUUQTGBDUPSOFUKB &$ͷཧ͕େมʂ αʔόʔϨεͷαʔϏεΛ͏ʹ&$4ͱ͍͏αʔϏεͰίϯςφΛ ಈ͔͢ͱ͍͏ํ๏ʹͨͲΓண͍ͨɻ ίϯςφΛ্ཱͪ͛͢ͱݩͷঢ়ଶʹΔɻʢ࠶ݱੑʣ ͜ͷ͜ͱ͕σϝϦοτ͚ͩͰͳ͘ɺϝϦοτͰ͋Δ͜ͱؾ͍ͮͨɻ ʢԿ͔͕ى͖ͯ࠶ىಈͰղܾ͢Δέʔε͕ଟ͍ʣ
&$͔Β&$4 ʢΞϓϦέʔγϣϯͷίϯςφԽʣ %PDLFS fi MF࡞ ఴϑΝΠϧΛ4ʹอଘ͢ΔͨΊͷ1MVHJO࡞
ίϯςφԽʂ εςʔτϨε
Ϛϧνςφϯτ
w ΞϓϦέʔγϣϯʢίʔυʣڞ༗ͯ͠ %#ͱ4Ϣʔβʔ͝ͱʹผʹΞΫηεɻ w 8&#αʔόʔͷϓϩηε͝ͱʹ ڥมΛΓସ͑ͯଓઌΛ͚Δɻ w ίϯςφىಈ࣌ʹઃఆϑΝΠϧΛಡΈࠐΜͰ "QBDIFͷDPOGϑΝΠϧΛੜ͢Δɻ ιʔείʔυͭͰ%#ςφϯτ͝ͱ
"QBDIF7JSUVBM)PTU Ξϯνύλʔϯʁʁ
w ΞϓϦέʔγϣϯʢίʔυʣڞ༗ͯ͠ %#ͱ4Ϣʔβʔ͝ͱʹผʹΞΫηεɻ w 8&#αʔόʔͷϓϩηε͝ͱʹ ڥมΛΓସ͑ͯଓઌΛ͚Δɻ w ίϯςφىಈ࣌ʹઃఆϑΝΠϧΛಡΈࠐΜͰ "QBDIFͷDPOGϑΝΠϧΛੜ͢Δɻ ιʔείʔυͭͰ%#ςφϯτ͝ͱ
"QBDIF7JSUVBM)PTU Ξϯνύλʔϯʁʁ w "QBDIFͷόʔνϟϧϗετͰϚϧνςφϯτΛ࣮ͯ͠Δ͜ͱɻ w ͭͷίϯςφͰෳͷ3FENJOF͕ಈ͍͍ͯΔ͜ͱ w ιʔείʔυڞ௨ɻ w %# ετϨʔδϢʔβʔ͝ͱʹ͚͍ͯΔɻ
ίϯςφԽʢεςʔτϨεʣ͢Δ͜ͱͰɺ αʔόʔϨε·ͨϚωʔδυͷαʔϏεΛར༻Ͱ͖ΔΑ͏ʹͳΓɺ αʔόʔཧͷίετ͕େ෯ʹܰݮ͞Εͨʂ
৽نొɿଐਓతͰखؒͷ͔͔Δ࡞ۀΛࣗಈԽ͍ͨ͠ɻ
ΦϯϘʔσΟϯά "1*
ࣗಈԽͷͨΊͷ"1* w ৽نొ w ఀࢭ w มߋɾ࠶։ w আ 4UFQ'VODUJPOT
શମਤ
ۀγεςϜʢސ٬ɾٻཧʣ
"1*ɾόονॲཧ
৽نొ 'BSHBUF ॳظԽͷॲཧ &$44FSWJDF࠶ىಈ ઃఆϑΝΠϧొ 3PVUFʹϨίʔυొ %#࡞
खಈͰઃఆϑΝΠϧΛ࡞͍ͯͨ͠࡞ۀ͕"1*ʹΑΓࣗಈԽͰ͖ͨʂ
ίϩφՒʹΑΓ৽نొ͕ٸ૿ʂ ৽نొͷߋͳΔࣗಈԽ͕ඞཁʹͳ͖ͬͯͨʂʂ
ӡ༻։࢝ޙ ҎԼͷ࡞ۀ·ͩख࡞ۀͰߦ͍ͬͯͨɻ ొϑΥʔϜ͔Βडͱಉ࣌ʹ3FENJOFʹνέοτ͕࡞͞ΕΔͷͰɺ ͦͷ༰ΛΛۀγεςϜʹసه͢Δɻͦͷࡍʹॅॴձ͕ࣾଘࡏ͢Δ͔֬ೝ ਃ͠ࠐΈ͕͓͋ͬͨ٬༷ʹϝʔϧศͰઃఆใΛૹΔʢύεϫʔυͳͲʣ ࣾௐͷ݁ՌҎԼͷΑ͏ʹมߋ ۀγεςϜʹొ༻ͷ"1*Λ४උ
ొϑΥʔϜͷ༰ΛۀγεςϜʹࣗಈͰొ ΞΧϯτ࡞͕֬ೝͰ͖ͨΒɺϝʔϧͰ͓٬༷ͤͬͯใΛ௨͢Δɻ
ΦϯϘʔσΟϯά ొϑΥʔϜ
શମਤ
৽نొϑΥʔϜʢ"NQMJGZʣ
৽نొͷϑϩʔ ৽نొϑΥʔϜ ۀγεςϜ 3FENJOF ࣾγεςϜʹొ ࣾγεςϜʹొΛτϦΨʔʹͯ͠ 3FENJOFͷΞΧϯτ࡞
৽نొ ϨεϙϯενΣοΫ 'BSHBUF ॳظԽͷॲཧ &$44FSWJDF࠶ىಈ ઃఆϑΝΠϧొ 3PVUFʹϨίʔυొ %#࡞ ϝʔϧ௨
ొϑΥʔϜΛ৽نʹ࡞ΓɺۀཧγεςϜͱ࿈ܞͰ͖ͨ͜ͱͰ ৽نొ͕શʹࣗಈԽͰ͖ͨʂ
ΞϓϦέʔγϣϯͷΞοϓσʔτ࡞ۀͷଐਓԽɻ ࡞ۀʹ͕͔͔࣌ؒΓ͗͢ΔΛղܾ͍ͨ͠ɻ
ʹճͷσϓϩΠʹࣗಈԽඞཁ͔ʁ
σϓϩΠͷࣗಈԽ
࣮ϦϦʔε࣌ʹ1JQFMJOFଘࡏ͠ͳ͔ͬͨʜ खݩͰϏϧυͨ͠ΠϝʔδΛQVTIͯ͠ຊ൪ڥʹద༻ͱ͍͏ϑϩʔͰ։࢝ɻ
1JQFMJOF ॳظ ͔͚࣌ؒͯͨ࡞ۀ͕ఔʹॖ
ͨͩ͠ɺ%#εΩʔϚͷద༻ΛͲ͏͢Δ͔ݕ౼͕ඞཁͩͬͨɻ
1JQFMJOF վྑޙ
%#.JHSBUJPOʢ4UFQ'VODUJPOTʣ
1JQFMJOFΛඋ͢Δ͜ͱͰσϓϩΠΛࣗಈԽͰ͖ͨʂ σϓϩΠ࡞ۀͷଐਓ͔Λഉআ͠ɺϝϯςφϯεͷ࣌ؒେ෯ʹॖʂʂ
֤छࣄॲཧɺଐਓతͳॲཧΛগ͠ͰݮΒ͍ͨ͠ɻ ʢ͓ۚΛͬͯͰਓతίετΛܰݮ͍ͨ͠ʣ
ొใ֬ೝͷྫ αϙʔτ૭ޱʹ͍߹Θ͕ͤ͋Δɻ ຊʹຊਓ͔֬ೝͷͨΊʹॳظొʹ༻ͨ͠ϝʔϧʹใΛ௨͢Δɻ ϩάͷμϯϩʔυ αϙʔτ૭ޱʹ͍߹Θ͕ͤ͋Δɻ ΦϓγϣϯαʔϏεར༻ͷਃࠐॻΛهೖͯ͠ૹͬͯΒ͏ɻ
ΤϯδχΞ͕αʔόʔʹೖͬͯϩάΛμϯϩʔυ͢Δɻ ͓٬༷͕ΞΫηεͰ͖ΔετϨʔδαʔϏεʹΞοϓϩʔυ͢Δɻ ͓٬༷ʹμϯϩʔυํ๏Λ௨͢Δɻ
Ϣʔβʔ͚"1*
Ϣʔβʔ͕ར༻͢Δػೳ w ొใ֬ೝొมߋ w ٻใ֬ೝμϯϩʔυ w ΞϓϦέʔγϣϯϩάͷμϯϩʔυ
શମਤ
3FENJOFۀγεςϜ ࿈ܞ༻"1*
3FENJOFސ٬ཧγεςϜ ࿈ܞ༻"1*
3FENJOFސ٬ཧγεςϜ ࿈ܞ༻"1* ొใ
3FENJOFސ٬ཧγεςϜ ࿈ܞ༻"1* ٻॻ
3FENJOFސ٬ཧγεςϜ ࿈ܞ༻"1* ϩάऔಘ
4UFQ'VODUJPOTʢϩά࡞ͷॲཧʣ
ۀཧγεςϜͱ࿈ܞͰ͖Δ"1*ͷඋɻ ϩάͷࣗಈੜΛ࣮͢Δ͜ͱͰɺ ΦϓγϣϯαʔϏεͷҰ෦ΛࣗಈԽͰ͖ͨʂ ʢࣄॲཧͷෛ୲Λܰݮʣ
·ͱΊ w ࠷ݶͷػೳͰϦϦʔε͢Δɻ ᘳͳαʔϏεʢߏʣΛ࡞ͬͯϦϦʔε͢Δͷ͍͠ɻ w ࡞ͬͯऴΘΓ͡Όͳ͍ɻ ϦϦʔε͔ͯ͠ΒঃʑʹਓͷखΛݮΒͤΔΑ͏ʹվྑ͢Δɻ w ศརͳαʔϏε͕ͲΜͲΜग़ͯ͘Δ w
Ξϯνύλʔϯɾٕज़తෛ࠴ΛڪΕͳ͍ɻʢਪͰͳ͍ʣ ͳͥΞϯνύλʔϯͳͷ͔ߟ͑Δɻ τϨʔυΦϑͰڐ༰͢Δؾ࣋ͪɻଞ෦ॺͱަব͢Δؾ࣋ͪɻ ෛ࠴ΛڪΕͳ͍ɻʢྑ͍आۚ͋Δɻ͝ར༻ܭըతʹɻʣ
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ʂ