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
GunosyのMicroServicesとOpsWorks / よくわかる AWS OpsWorks
Search
koid
March 26, 2015
18
6k
GunosyのMicroServicesとOpsWorks / よくわかる AWS OpsWorks
2015/03/26 よくわかるAWS OpsWorks
koid
March 26, 2015
Tweet
Share
More Decks by koid
See All by koid
新しい技術の導入時に大切にしていること / IVS CTO Night 2018 LT
koid
2
7.2k
GunosyでのKinesis Analytics利用について / AWS Solution Days 2017 -AWS DB Day-
koid
0
260
GunosyでのKinesis Analytics利用について / BigData JAWS 6 Kinesis Analytics
koid
1
980
re:Inventに行ってきました - 気になった新サービス / AWS re:Invent2016 Participants LT
koid
0
2k
AWS Lambda - ピーキーなアクセスに備える / Gunosy Beer Bash #8
koid
0
2.2k
AWS Lambdaで複数アカウント間でアレコレする / Gunosy Beer Bash #7
koid
1
2.2k
サーバにログインしない・させないサービス運用 / AWS Summit 2015 Devcon
koid
6
9.2k
Featured
See All Featured
[RailsConf 2023] Rails as a piece of cake
palkan
56
5.7k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
110
19k
We Have a Design System, Now What?
morganepeng
53
7.7k
Done Done
chrislema
185
16k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
34
5.9k
Documentation Writing (for coders)
carmenintech
73
4.9k
StorybookのUI Testing Handbookを読んだ
zakiyama
30
5.9k
Building Better People: How to give real-time feedback that sticks.
wjessup
367
19k
Why You Should Never Use an ORM
jnunemaker
PRO
58
9.5k
The Invisible Side of Design
smashingmag
301
51k
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
The World Runs on Bad Software
bkeepers
PRO
70
11k
Transcript
(VOPTZͷ.JDSP4FSWJDFTͱ0QT8PSLT גࣜձࣾ(VOPTZ খग़య
ࣗݾհ • ໊લ – খग़యʢ͍͜ͰΏ͖ͷΓʣ • ॴଐ – גࣜձࣾ(VOPTZ։ൃຊ෦ •
"84Πϯϑϥ୲ • ࢄόονʢ"84ͷ"1*ୟ͖·͘Δܥͷʣ • ͖ͳ"84αʔϏε – 0QT8PSLT 5SVTUFE"EWJTPS
ຊ͓͍ͤͯͨͩ͘͞༰ • (VOPTZͱ0QT8PSLT • αʔόߏஙσϓϩΠ – Ͳ͏͍ͬͯΔ͔ – Ͳ͏มΘͬͨͷ͔ •
Πϯϑϥӡ༻ – Ͳ͏มΘͬͨͷ͔
͜Μʹͪ(VOPTZͰ͢
ओͳࣄۀͱΞϓϦέʔγϣϯ "E /FXT 1MBUGPSN ৴ "1* 8FC ਪન Ϋϩʔϥʔ ϝʔϧ
ϓογϡ ௨ ৴ "1* ৴ "1* ύʔτφʔ༷ ͚ ཧը໘ ͦͷଞશൠͱͯ͠ ཧπʔϧɺϩάऩूɺ ,1*ूܭμογϡϘʔυʑɺɺɺ ͦͷଞ اը ίϯςϯπ ࠂओ༷ ͚ ཧը໘ ఏܞ֤༷ࣾ ͚ ཧը໘
(VOPTZͷ։ൃ.JDSP4FSWJDFT • ૿͑Δ૿͑ΔΞϓϦ – ϚΠΫϩαʔϏεʢബ͍ΞϓϦͷू߹ʣ • ͻͱͭͷΞϓϦʹͳΜͰ͔ΜͰػೳΛͤͳ͍ • "1*ͷཪଆͰผͷ"1*ݺͼग़͠ –
ύʔτφʔاۀ༷͚ͷཧπʔϧ*' – اըίϯςϯπظؒݶఆίϯςϯπ • ഭΔഭΔϦϦʔε – ڥߏஙʹ͔͚Δ࣌ؒແ͍ • ʮ໌εςʔδϯάڥͰ͖Δ͔ͳʁʯ • ʮདྷिϦϦʔεͳΜ͚ͩͲʯ – σϓϩΠʹ͔͚Δ࣌ؒແ͍ • αʔϏεΠϯ·ͰτϥΠΤϥʔ • ෳࡶͳσϓϩΠํ๏ͩͱͦ͜ʹ͕࣌ؒऔΒΕΔ • ͱ͍͑ʮσϓϩΠ୲ʯΈ͍ͨͳਓ͕ډΔͱ͕ͦ͜ϘτϧωοΫʹ
(VOPTZͱ0QT8PSLT • 4UBDL – ݱࡏͷਁಁdׂఔ – ৽نΞϓϦجຊతʹ0QT8PSLT – طଘΞϓϦઈࢍҠߦத •
ϛοΫεΠϯʹΑΔαʔόߏங – ࣮$PPLCPPLϦϙδτϦͻͱ͚ͭͩ • ͻͨ͢Βڞ௨Խڞ௨Խڞ௨Խ • ΞϓϦ໊γεςϜ໊ͷೖͬͨϨγϐઈର࡞Βͳ͍ – ϨγϐͷΈ߹Θ͚ͤͩͰظؒͰαʔόߏங • σϓϩΠՄೳͳݶΓࣗಈԽ – $JSDMF$*ΛىʹϏϧυσϓϩΠ ઌɺҰ൪ϝΠϯͷ χϡʔε৴"1*͕ 0QT8PSLTʹΓ·ͨ͠
αʔόߏஙͱσϓϩΠ Ͳ͏͍ͬͯΔ͔
αʔόߏஙΑ͋͘Δύλʔϯ &-# 8FC 3%4 8PSLFS $BDIF 424 ߹ʹΑͬͯ &MBTUJ$BDIF 3FEJTPO&$
߹ʹΑͬͯෳʹ ͳͬͨΓ .POHP%#PO&$ ߹ʹΑͬͯ 3FEJTPO&$ MySQL
αʔόߏஙϛοΫεΠϯͷྫᶃ ࠓճͷΞϓϦHPͰ ϩάΛϩʔΧϧͷ UEBHFOUʹྲྀ͍ͨ͠ Ϧόϓϩ/HJOY ιέϚFJOIPSOͰ ࢹΑ͠ͳʹ
αʔόߏஙϛοΫεΠϯͷྫᶄ ࠓճͷΞϓϦ %KBOHPͰ ϫʔΧʔىಈ TVQFSWJTPSͰ Ϧόϓϩ/HJOY ιέϚHVOJDPSOͰ ࢹΑ͠ͳʹ
%PDLFS͍͍ͨ αʔόߏஙͦͷଞΑ͋͘Δཁ %#ʹ.POHP%#͍͍ͨ 3FEJTɺCHTBWFແ͠Ͱ /HJOYͷSMJNJUOPpMF UEBHFOUͷGPSXBSEઌ JGͷNUV͕ʜ .FTTBHF2VFVFʹ /42Λ
αʔόߏஙͦͷଞΑ͋͘Δཁ %PDLFS͍͍ͨ %#ʹ.POHP%#͍͍ͨ 3FEJTɺCHTBWFແ͠Ͱ /HJOYͷSMJNJUOPpMF UEBHFOUͷGPSXBSEઌ JGͷNUV͕ʜ .FTTBHF2VFVFʹ /42Λ ॊೈʹઃఆΛೖΕΒΕΔϨγϐ
ޙDVTUPNKTPOͰ͕ΜΔ
αʔόߏஙࢹϛοΫεΠϯ • ;BCCJYͰ֤.JEEMF8BSFຖʹࢹ߲Λઃఆ – ϨΠϠʔʹରͯ͠.JEEMF8BSFͷςϯϓϨʔτΛϦϯΫ ༨Γ͓ݟͤͰ͖·ͤΜ͕ʜ
σϓϩΠΑ͋͘Δύλʔϯ master develop feature upload deploy upload deploy merge merge
release copy staging produc2on semi-‐prod • 0QT8PSLTΛར༻͞Ε͍ͯΔଞ༷ࣾͱେମಉ͡ – $JSDMF$*ͰϏϧυΞοϓϩʔυσϓϩΠ
σϓϩΠ$VTUPN"QQMJDBUJPOͷσϓϩΠ リバプロ ソケマ nginx unicorn Rails nginx gunicorn Django nginx
einhorn Golang ⾮非同期ワーカ sidekiq celery -‐‑‒ 場合によって Varnishとか 場合によって Supervisorとか • Έ߹ΘͤύλʔϯΛੳ͠ɺϨγϐԽ – جຊతʹBXTPQTXPSLTDPPLCPPLTͷSBJMTΛ౿ऻ
σϓϩΠڞ௨ϨγϐͱΞϓϦݻ༗Ϩγϐ • ΞϓϦέʔγϣϯ໊αʔό໊ͷೖͬͨSFDJQF࡞Βͳ͍ – ΞϓϦݻ༗ͱͳΔ෦$BMMCBDLΛར༻ • CFGPSF@NJHSBUF CFGPSF@TZNMJOL CFGPSF@SFTUBSU BGUFS@SFTUBSU
– BTTFUTQSFDPNQJMFDPMMFDUTUBUJD – DSPOͷొɺTVQFSWJTPSͷQHNొ • ϨΠϠ XFC XPSLFS ຖʹৼΔ͍Λม͑Δ͜ͱՄೳ – JGOPEF<PQTXPSLT><JOTUBODF><MBZFST>pSTUdXFC – JGOPEF<PQTXPSLT><JOTUBODF><IPTUOBNF>dXFC
αʔόߏஙͱσϓϩΠ Ͳ͏มΘͬͨͷ͔
Ͳ͏มΘͬͨͷ͔CFGPSF • ൿͷΰʔϧσϯҋ".* – Կ͕ೖ͍ͬͯͯͲ͏͍͏ઃఆͨ͠ͷ͔Θ͔Βͳ͍ – ͱΓ͋͑ͣίϐʔ͍ͯ͠·Θͦ͏ • ΞϓϦຖʹཚཱ͢ΔσϓϩΠεΫϦϓτ –
GBCͩͬͨΓDBQͩͬͨΓ – ΞϓϦຖʹҟͳΔσϓϩΠαʔό – ಉ͡ΞϓϦͳͷʹҰ෦αʔό͚ͩϩάΠϯͯ͠HJUQVMMͩͬͨΓ • ఆ࣌ʹΠϯελϯεΛىಈɾऴྃͤ͞Δπʔϧ – FD4UBSU*OTUBODFɺ্هͷσϓϩΠεΫϦϓτɺ FMC3FHJTUFS*OTUBODFT8JUI-PBE#BMBODFS
Ͳ͏มΘͬͨͷ͔BGUFS • αʔόઃఆͷݟ͑ΔԽ – ඞͣਅͬ͞Βͳ".*͔Βߏங – 44)ϩάΠϯͯ͠ͷมߋ࡞ۀېࢭ • શͯͷΞϓϦͰ౷Ұ͞ΕͨσϓϩΠͷΈ –
σϓϩΠαʔόɾϏϧυαʔόΛ࣋ͨͳ͍࡞Βͳ͍ – ΞϓϦݻ༗ͷσϓϩΠॲཧ$BMMCBDLʹهࡌ – 44)ϩάΠϯͯ͠ίϚϯυଧͭͷېࢭ • ࡞Βͳͯ͘ྑ͍πʔϧ͔Βͷ٫ – ͋Δఔͷ͜ͱ0QT8PSLT͕উखʹͬͯ͘ΕΔ – ຊʹඞཁͳͷͳΒଞͷελοΫͰ͑ΔΑ͏ʹ࡞ • αʔόߏங͕ѹతʹૣ͘ͳͬͨ – ΄΅*".ͱηΩϡϦςΟάϧʔϓΛΔ࡞ۀ͚ͩ
Πϯϑϥӡ༻ Ͳ͏มΘͬͨͷ͔
ΠϯελϯεͷϢʔβཧ • FDVTFS͔Βͷ٫ – GBCSJDͷϓογϡܕπʔϧ44)ݤ͕ࢃ͔Ε͍ͯΔ͜ͱ͕લఏ – ͜ͷݤͷཧ͕ࡶˠߟ͑ͳͯ͘Α͘ͳͬͨ • ݸਓͷ44)ݤ –
ελοΫຖʹΞΫηεݖݶΛॊೈʹࢦఆͰ͖Δ – ݤͷมߋɺը໘Ͱొ͢Εউखʹࢃ͍ͯ͘ΕΔ
োൃੜ࣌ͷௐࠪҰ࣍ରԠ • ΤϥʔϩάFSSCJU BJSCSBLF ू – جຊతʹαʔόͷϩάΠϯෆཁ – ͱ͍͑ɺͦΜͳ͜ͱݴͬͯΔ߹Ͱͳ͍࣌͋Δ •
ͲΜͳΞϓϦέʔγϣϯαʔόʹೖͬͯɺ – σϓϩΠͷΈ͕౷Ұ͞Ε͍ͯΔͱ • ඞͣಉ͡ॴʹΞϓϦέʔγϣϯϩά͕͋Δ • ඞͣಉ͡ॴʹ࠶ىಈεΫϦϓτ͕͋Δ – ʮ͜͜ʹߦ͚99͕͋ΔΑͶʯͱ͍͏҆৺ײ
ύονɾΞοϓσʔτ • ɺͨ͘͞Μͷ੬ऑੑ͕ݟ͔ͭΓ·ͨ͠ – ͨ͘͞Μͷ੬ऑੑ͕ݟ͔ͭΔͱࢥ͍·͢ – ͨ͘͞Μͷύον͕ެ։͞ΕΔͱࢥ͍·͢ • 0QT8PSLTͳΒ –
VQEBUF@EFQFOEFODJFTͷ࣮ߦ – ·ͨ৽͘͠ΠϯελϯεՃͯ͠ݹ͍ΠϯελϯεΛআ
·ͱΊ • 0QT8PSLTΛಋೖͯ͠ – αʔόߏஙɾσϓϩΠͷ݈શԽ – αʔόߏஙͷߴԽ – ݪଇ44)ϩάΠϯͤ͞ͳ͍ –
Πϯϑϥӡ༻ͷޮԽ