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活用で改善している話
Search
Tomoyuki Sugita
April 21, 2016
Technology
0
530
スタートアップのレガシーシステムをAws活用で改善している話
第2回 関西スタートアップAWS勉強会
2016-04-21(木)18:30 - 21:30
https://kansaistartupaws.doorkeeper.jp/events/41786
Tomoyuki Sugita
April 21, 2016
Tweet
Share
More Decks by Tomoyuki Sugita
See All by Tomoyuki Sugita
採用でプロダクトの壁を乗り越える
tomotomo
1
430
ラズパイマガジン 寄稿ネタDEMO
tomotomo
0
980
PHPでLチカ(PHPカンファレンス2018 懇親会)
tomotomo
0
3.3k
IoTデバイスのつらみ isaaxで解消しましょう
tomotomo
0
140
IoTLT 40回 おめでとう!
tomotomo
2
490
「isaax」を使った PoCからプロダクションまでの開発
tomotomo
0
310
2000年頃のフロントエンド技術
tomotomo
1
11k
WordPressとサーバーとお金の話
tomotomo
0
1.2k
Other Decks in Technology
See All in Technology
形式手法特論:コンパイラの「正しさ」は証明できるか? #burikaigi / BuriKaigi 2026
ytaka23
16
4.9k
SES向け、生成AI時代におけるエンジニアリングとセキュリティ
longbowxxx
0
310
All About Sansan – for New Global Engineers
sansan33
PRO
1
1.3k
田舎で20年スクラム(後編):一個人が企業で長期戦アジャイルに挑む意味
chinmo
1
1.4k
Data Hubグループ 紹介資料
sansan33
PRO
0
2.6k
フルカイテン株式会社 エンジニア向け採用資料
fullkaiten
0
10k
人工知能のための哲学塾 ニューロフィロソフィ篇 第零夜 「ニューロフィロソフィとは何か?」
miyayou
0
420
サラリーマンソフトウェアエンジニアのキャリア
yuheinakasaka
38
18k
スクラムマスターが スクラムチームに入って取り組む5つのこと - スクラムガイドには書いてないけど入った当初から取り組んでおきたい大切なこと -
scrummasudar
3
1.9k
たかがボタン、されどボタン ~button要素から深ぼるボタンUIの定義について~ / BuriKaigi 2026
yamanoku
1
220
業務の煩悩を祓うAI活用術108選 / AI 108 Usages
smartbank
9
21k
Redshift認可、アップデートでどう変わった?
handy
1
130
Featured
See All Featured
Stop Working from a Prison Cell
hatefulcrawdad
273
21k
How Software Deployment tools have changed in the past 20 years
geshan
0
31k
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
58
41k
jQuery: Nuts, Bolts and Bling
dougneiner
65
8.4k
The Power of CSS Pseudo Elements
geoffreycrofte
80
6.1k
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
160
From π to Pie charts
rasagy
0
100
The Cost Of JavaScript in 2023
addyosmani
55
9.4k
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
200
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
61k
Balancing Empowerment & Direction
lara
5
840
A Modern Web Designer's Workflow
chriscoyier
698
190k
Transcript
ελʔτΞοϓͷϨΨγʔγ εςϜΛAWS׆༻Ͱվળͯ͠ ͍Δ ୈ2ճ ؔελʔτΞοϓAWSษڧձ 2016-04-04 Thu @ άϩʔόϧϕϯνϟʔϋϏλοτେࡕ ΫοΫϏζגࣜձࣾ
ਿా ࢸ 1
ࣗݾհ • ਿా ࢸɹ@tomotomobile • ΫοΫϏζגࣜձࣾɹ։ൃ෦ • Project Management, Growth
hack, Recruiting • WordPress contributor, CoderDojo Umeda 2 < ࠙ձLT͠·ͨ͠
ܦྺհ • ֶੜىۀʢWeb੍࡞ʣ • ഇۀˍແ৬ • Web੍࡞ձࣾۈ • ΫοΫϏζೖࣾ 3
AWSͷཧతͳ͍ํͰͳ͍͔͠Ε·ͤΜ ϨΨγʔγεςϜͱ͖߹͏্ͰAWS͕ ͲͷΑ͏ʹཱͭͷ͔ࢀߟʹͳΕ͍Ͱ͢ 4
ΞδΣϯμ • ΫοΫϏζͷհ • ݱࡏͷ։ൃελΠϧ • ݱࡏʹࢸΔ·Ͱͷվળ • ͍ͬͯΔ՝ •
·ͱΊ 5
ӡ༻தͷWebαʔϏε ҿ৯ɾϑʔυؔ࿈ۀಛԽͷٻਓαΠτ ʮΫοΫϏζʯ ۀʹ;ΕͯɾֶΜͰɾࣄʹ͢Δ ʮϑΝʔϜϏζʯ ϑʔυؔ࿈ϋΠΫϥεٻਓʮϑʔδΣϯτʯ ҿ৯ਓࡐͷϓϩʹΑΔ"৯"ͷΩϡϨʔγϣϯαΠτ ʮΫοΫϏζ૯ݚʯ 6
ӡ༻தͷεϚʔτϑΥϯΞϓϦ 7
Foodion (ϑʔδϣϯ) https://foodion.net/ 04/21 Released 8
ΞΫηεɹ300%UP ʢhttp://cookbiz.jp ୯ମʣ
5ਓҎԼ 6ʙ30ਓ 31ʙ50ਓ 51ʙ99ਓ 100ਓҎ্ 10ԯԁҎ্ େձࣾ 7ԯԁҎ্ தձࣾͷେ 4ԯԁҎ্
தձࣾͷத 4ઍສԁҎ্ தձࣾͷখ 4ઍສԁະຬ খձࣾ ձࣾنʢখചɾαʔϏεʣ 1લ͜ͷΜ ※ඇ্גࣜͷձࣾنͷఆʢ̨̢̗̘ڵূ݊ʣ http://www.smbcnikko.co.jp/corporate/mnr/buyback/buy03.htmlɹ 10
5ਓҎԼ 6ʙ30ਓ 31ʙ50ਓ 51ʙ99ਓ 100ਓҎ্ 10ԯԁҎ্ େձࣾ 7ԯԁҎ্ தձࣾͷେ 4ԯԁҎ্
தձࣾͷத 4ઍສԁҎ্ தձࣾͷখ 4ઍສԁະຬ খձࣾ ձࣾنʢখചɾαʔϏεʣ ※ඇ্גࣜͷձࣾنͷఆʢ̨̢̗̘ڵূ݊ʣ http://www.smbcnikko.co.jp/corporate/mnr/buyback/buy03.htmlɹ 11
ΞδΣϯμ • ΫοΫϏζͷհ • ݱࡏͷ։ൃελΠϧ • ݱࡏʹࢸΔ·Ͱͷվળ • ͍ͬͯΔ՝ •
·ͱΊ 12
ΫοΫϏζͷ։ൃڥ͜Μͳײ͡ • ݴޠɿPHP5.6 / DBɿMySQL5.5 • PCɿMac / IDEɿPhpStorm •
ϑϨʔϜϫʔΫɿΦϦδφϧ / Yii1 / Yii2 • ςετϑϨʔϜϫʔΫɿCodeception • VMɿVagrant + Ansible • αʔόʔɿAWS EC2 + RDS 13
ͱ͋Δ৽نαʔϏεͩͱ͜Μͳײ͡ • ݴޠɿPHP5.6 / DBɿMySQL5.7 + NoSQL • PCɿMac /
IDEɿPhpStorm • ϑϨʔϜϫʔΫɿZendFramework2 • αʔόʔɿAWS EC2 + S3 + RDS + DynamoDB + SES • ςετͱVMݕ౼த 14
։ൃϝϯόʔ 15 cook+biz farm+biz αʔόʔ ϑϩϯτ σβΠϯ ΞϓϦ σβΠϯ αʔόʔ
΅͘ ϩϘ 14໊ʴ1ϩϘ https://cacoo.com/store/items/10023
શϓϩδΣΫτΛεΫϥϜ։ൃͰ • Sprint : 2िؒ • ִि༵ʹRelease • Կ͔͕߹༵ͬͯۚ·ͰʹରԠͰ͖ΔΑ͏ʹ •
લਫ༵Review Day • ͯ͢ͷfeature / bugfix Λ։ൃϝϯόʔ͕ϨϏϡʔ 16
εΫϥϜ։ൃͱ εΫϥϜ (ιϑτΣΞ։ൃ) εΫϥϜʢӳ: Scrumʣɺ ιϑτΣΞ։ൃʹ͓͚Δ෮తͰਐతͳΞδϟΠϧ ιϑτΣΞ։ൃख๏ͷ1ͭͰ͋Δɻ ͜ͷํ๏ʮॊ ೈ͔ͭશਓతͳϓϩμΫτ։ൃετϥςδʔͰ͋Γɺڞ ௨ͷΰʔϧʹ౸ୡ͢ΔͨΊɺ։ൃνʔϜ͕Ұମͱͳͬͯ
ಇ͘͜ͱʯͱ͞ΕΔɻ 2 weeks https://en.wikipedia.org/wiki/Scrum_(software_development) 17
2छྨͷσΠϦʔεΫϥϜ • ։ൃνʔϜ • શϝϯόʔ͕ɺલͬͨ͜ͱ/ࠓΔ͜ͱ/ࠔͬͯ Δ͜ͱΛڞ༗ • ϓϩδΣΫτνʔϜ • ։ൃͰ໎ͬͯΔ͜ͱɺӡ༻Ͱ໎ͬͯΔ͜ͱΛڞ༗
• POࢀՃͯ͠Δʂ 18
ϢχʔΫͳϧʔϧ Review Day Releaseલɺͯ͢ͷfeature / bugfix Λ։ൃϝϯόʔ͕ ϨϏϡʔ͢Δɻͦͷɺ։ൃऀ։ൃͰ͖ͳ͍ɻ • ͲΜͳ͜ͱΛ͢Δͷ͔ʁ
• ಈ࡞ϨϏϡʔ / ίʔυϨϏϡʔ / ϑϦʔσόοά • ༷௨ΓͰ͖ͯΔ͚ͲվળͰ͖Δͷࢦఠ • ։ൃڥͷվળ 19
Gitͷӡ༻ϧʔϧ • feature • ػೳՃɺػೳมߋ • bugfix • όάͷमਖ਼ •
hotfix • ۓٸͰमਖ਼͠ͳ͚ΕͳΒͳ͍όά • bizReq • ςΩετը૾मਖ਼ɾGrowthHackͳͲϏδωεཁٻ(Business Requirement) 20
ΞδΣϯμ • ΫοΫϏζͷհ • ݱࡏͷ։ൃελΠϧ • ݱࡏʹࢸΔ·Ͱͷվળ • ͍ͬͯΔ՝ •
·ͱΊ 21
Program HTML Javascript Server Server Database Database Program HTML Mail
https://pixabay.com/ja/%E3%82%B9%E3%83%91%E3%82%B2%E3%83%83%E3%83%86%E3%82%A3-napolitana-%E3%82%B9%E3%83%91%E3%82%B2%E3%83%83%E3%83%86%E3%82%A3-%E9%A3%9F%E5%93%81-%E7%9A%BF-83745/ 22
࢛ͷޒͷݴΘͣʹGitಋೖ͠·͠ΐ͏ • ͍ͭɺͩΕ͕ɺͲ͜ʹɺͲΜͳมߋΛՃ͑ͨͷ͔ ͯ͢ͷϩά͕͑ΔΑ͏ʹͳΓ·͢ • Git = Ӧۀใ 23 https://github.com/qw3rtman/git-fire
FTP͔͑͠ͳͯ͘Gitಋೖͨ͠ํ͕͍͍Α # αʔόʔʹফ͠ΕͨϑΝΠϧ͕͍ͬͺ͍͋ΔΑ(´ʀωʀʆ) # master ͱͷࠩͰআ͞ΕͨϑΝΠϧͷΈநग़ $ git diff --name-status
master|grep "^D" > diffs.txt # Ξοϓϩʔυ͠ΕͨϑΝΠϧ͕͔Βͳ͍(´ʀωʀʆ) # master ͱͷࠩϑΝΠϧΛuploadsϑΥϧμʹநग़ $ git diff --name-only master | git checkout-index --prefix=uploads/ --stdin 24 ͜Ε͚ͩͰΞοϓϩʔυָ͕ʹͳΓ·͢
Ұ෦Ͱྑ͍͔ΒϑϨʔϜϫʔΫԽ • ٕज़తෛ࠴ͷτʔλϧฦࡁίετ૿͑Δ • ελʔτΞοϓʹۚ࣌ؒΓͳ͍ • શ෦Ұؾʹஔ͖͑ΔͷṶ͔͔ͬͯΒΕྑ͍ 25
WBS๒ͷܸΛड͚AWSҠߦΛܾఆ • େखΦϯϓϨϛεܕαʔόΛར༻ • WBS์ૹʹΑΓ12࣌ؒҎ্ αʔόʔʹΞΫηεग़དྷͳ͍ঢ়گ • AWSͷҠߦ͕࠷༏ઌࣄ߲ʹͳͬͨ 26
Ҡߦ४උͱͯ͠σϓϩΠεΫϦϓτ࡞Γ·ͨ͠ • Git͔ΒAWSʹιʔείʔυΛPull+Buildͯ͠ެ։ྖҬʹrsync • Ξοϓϩʔυ͞Εͨը૾ɺDBΛrsyncͰసૹ • GitೖΕͱ͍ͯΑ͔ͬͨʂʂ 27 Code Image
& DB Code
ҠߦͷϦϋʔαϧೖ೦ʹɺςετڥฤ • ༧ΊDNSR53ʹมߋ • Amazon LinuxͰίʔυ͕ಈ͔͘ςετ • ಈ͔ͳ͍෦मਖ਼͓ͯ͘͠ 28
ҠߦͷϦϋʔαϧೖ೦ʹɺຊ൪ڥฤ • (࣌ͷ)ཧతͳߏΛ࡞Δ • σϓϩΠεΫϦϓτͰσϓϩΠ ͕͋Εमਖ਼ • RDSͷTimezone͕UTCͩͱؾ͖ͮ ΞϓϦέʔγϣϯΛमਖ਼ (ݱࡏTimezoneબͰ͖·͢)
• ຊ൪ҠߦͷखॱΛॻ͖ग़͠ɺҠߦॱ൪ʹ࣮ߦ͢ Δ͚ͩͷঢ়ଶʹ͓ͯ͘͠ 29
͍͟ɺΓସ͑ • EC2ͰϝϯςφϯεαΠτΛ্ཱͪ͛Δ • Route53Ͱຊ൪υϝΠϯΛϝϯςαΠτʹ͚Δ • ҠߦલαʔόͷcronΛࢭΊΔ • Ҡߦલαʔόͷϩά͕ಈ͔ͳ͘ͳΔͷΛͭ •
ը૾ͷࠩΛrsyncͰऔಘɺDBΛΠϯϙʔτ • ಈ࡞ݕূͯ͠ɺؒόονΛ࣮ߦɺcronઃఆ • Route53Ͱຊ൪υϝΠϯΛ৽αʔόʹ͚Δ 30
͍͟ɺΓସ͑ • EC2ͰϝϯςφϯεαΠτΛ্ཱͪ͛Δ • Route53Ͱຊ൪υϝΠϯΛϝϯςαΠτʹ͚Δ • ҠߦલαʔόͷcronΛࢭΊΔ • Ҡߦલαʔόͷϩά͕ಈ͔ͳ͘ͳΔͷΛͭ •
ը૾ͷࠩΛrsyncͰऔಘɺDBΛΠϯϙʔτ • ಈ࡞ݕূͯ͠ɺؒόονΛ࣮ߦɺcronઃఆ • Route53Ͱຊ൪υϝΠϯΛ৽αʔόʹ͚Δ 31
͍͟ɺΓସ͑ • EC2ͰϝϯςφϯεαΠτΛ্ཱͪ͛Δ • Route53Ͱຊ൪υϝΠϯΛϝϯςαΠτʹ͚Δ • ҠߦલαʔόͷcronΛࢭΊΔ • Ҡߦલαʔόͷϩά͕ಈ͔ͳ͘ͳΔͷΛͭ •
ը૾ͷࠩΛrsyncͰऔಘɺDBΛΠϯϙʔτ • ಈ࡞ݕূͯ͠ɺؒόονΛ࣮ߦɺcronઃఆ • Route53Ͱຊ൪υϝΠϯΛ৽αʔόʹ͚Δ 32
AWSͷҠߦͬͯΈͯؾ͍ͮͨ͜ͱ • σϓϩΠεΫϦϓτศར • Ϧϋʔαϧେࣄ • 2ճҐϦϋʔαϧͰ͖ΔͱෆଌͷࣄଶΛආ͚ΒΕΔ • ҎޙɺϦϦʔεϦϋʔαϧ͕ఆணͨ͠ •
Route53͛͢ʔ 33
͠Β͘ฏԺͳʑ͕ଓ͖ ։ൃϝϯόʔ૿һɺ։ൃྗ্͕͕Δ 34
ϦϦʔε͢Δͨͼʹόά͕ग़Δ҉ࠇ࣌ • ։ൃΛੵۃతʹ͢ΔΑ͏ʹͳΓϦϦʔεճ͕૿͑ͨ • ϦϦʔεͯ͠όάमਖ਼ʹΘΕɺεέδϡʔϧ͕࣍ʑ ʹഁ • εέδϡʔϧ͕ϠόΠͷͰɺߋʹ࣭͕ѱԽ શʹෛͷεύΠϥϧʂʂ 35
όάݮͱ্࣭ͷͨΊʹͬͨ͜ͱ • ΧϯόϯํࣜˠεΫϥϜ։ൃ • UIςετͷಋೖ 36
Χϯόϯํ͔ࣜΒεΫϥϜ։ൃ • ͦΕ·Ͱɺͨ͠ίʔυ͔Βॱ࣍σϓϩΠ͍ͯͨ͠ ͷΛ1िؒεϓϦϯτͷεΫϥϜ։ൃʹมߋ • Review DayΛಋೖ (Releaseલɺͯ͢ͷfeature / bugfix
Λ։ൃϝϯόʔ͕ϨϏϡʔ͢Δɻ) • ݁Ռɺ։ൃʹϦζϜ͕ੜ·Εɺશһ͕࣭ʹҙࣝΛ ͚Δ͜ͱ͕ग़དྷɺεέδϡʔϧ่͕Εʹ͘͘ͳͬͨ 37
εΫϥϜ։ൃͬͯΈͯؾ͍ͮͨAWSརศੑ • εςʔδϯάڥ͕ ඞཁͳͷਫ༵͚ͩ • Ր༵༦ํɺEC2+RDSΛى ಈͯ͠ɺσϓϩΠ • ਫ༵ɺEC2+RDSΛఀࢭ •
εςʔδϯάڥͷ ίετΛ1/7ʹઅ 38
Codeception+SeleniumͰUIςετ • ϨΨγʔγεςϜςετίʔυ͕ ॻ͚ͳ͍ • ϒϥβΛૢ࡞ͯ͠ɺಈ࡞͕ਖ਼͍͠ ͔Ͳ͏͔ͷςετΛࣗಈԽ • ػೳมߋޙͷσάϨνΣοΫ͕༰қ ʹͳΓ·ͨ͠
39 http://www.slideshare.net/ FlorentBatard/php-kansai-phpkansai ৄͪ͘͜͠Β
Codeception+SeleniumͰUIςετ • jQueryͷهड़ͷΑ͏ͳΘ͔Γ͢͞ 40
None
UIςετֻ͕͔࣌ؒΔͷͰࣗಈͰ • ςεταʔόʔʹPushͯ͠ ຖ൩ࣗಈͰςετ • RDSͷεφοϓγϣοτ͔Β σʔλϕʔεΛຖϦηοτ 42 ϩϘ
εΫϥϜͱAWS૬ੑ͕ྑ͍Ͷ • ඞཁͳͱ͖ʹඞཁͳ͚ͩαʔόʔΛ༻ҙͰ͖Δ • εΫϥϜͩͱ͍ͭඞཁͳͷ͔͕໌֬ • ΄ͱΜͲͷαʔόϦιʔεΛAPIͰૢ࡞Ͱ͖Δ • αʔόઃఆʹࣦഊͯ͠εφοϓγϣοτ͔Β͙͢෮ ݩͰ͖Δ
43
ΞδΣϯμ • ΫοΫϏζͷհ • ݱࡏͷ։ൃελΠϧ • ݱࡏʹࢸΔ·Ͱͷվળ • ͍ͬͯΔ՝ •
·ͱΊ 44
AWS API͕ඇಉظͳͷͰͪΐͬͱ͚ͩࠔͬͯΔ • εςʔδϯάڥͷىಈΛεέδϡʔϧ࣮ߦ • ΠϯελϯεىಈޙͷϑΟʔυόοΫ͕དྷͳ͍ͷͰɺͦ ΖͦΖ͔ͳʙͱ͍͏λΠϛϯάͰ͍߹ΘͤͯΔ • Lambda͑ྑ͍ͷ͔ͳʁ 45
ϩϘ Πϯελϯεىಈͯ͠ ىಈͰ͖ͨʁ ϩϘ
εέʔϧͷ՝ 46 S3͕ډͳ͍
ը૾Ξοϓϩʔυઐ༻ͷϥΠϒϥϦ࡞Γ·͠ΐ͏ • ΞϓϦέʔγϣϯͷ͋ͪͪ͜ʹ͜Μͳίʔυ͕͋Δͱ Ϡόա͗Δɻ • ΞοϓϩʔυআҰՕॴͰཧ͠·͠ΐ͏ɻ 47 move_uploaded_file( $_FILES['file']['tmp_name'], './image.jpg');
DBͷI/O͕ϠόΠ • EC2RDSCPUͱϝϞϦ༨༟ͳͷʹɺI/OͰ٧·ͬ ͯ͠·͏ • AuroraͬͯΈ͍ͨͶɺ·ͣMySQL5.6ʹ্͛ͳ͍ͱ • ͍ͬͯ͏͔ΞϓϦέʔγϣϯͷίʔυͰվળͰ͖Δ͔ 48 https://ja.wikipedia.org/wiki/%E5%A4%A7%E5%90%8D%E8%A1%8C%E5%88%97
ͬͯΔ՝Λղܾͯ͘͠ΕΔΤϯδχΞืूத http://recruit.cookbiz.co.jp/
WantedlyͰืूͯ͠·͢ 50
ΞδΣϯμ • ΫοΫϏζͷհ • ݱࡏͷ։ൃελΠϧ • ݱࡏʹࢸΔ·Ͱͷվળ • ͍ͬͯΔ՝ •
·ͱΊ 51
ϨΨγʔγεςϜΛAWS׆༻Ͱվળ͍ͯ͠Δ • αʔό؆୯ʹཱͯΒΕΔͷͰɺϦϋʔαϧΛೖ೦͠ ·͠ΐ͏ • εΫϥϜࣗಈԽΛಋೖ͢ΔͳΒɺAPIͰαʔόΛૢ࡞ Ͱ͖ΔAWS͕ͽͬͨΓ • ࠓͷΑ͏ͳษڧձͰৄ͍͠ਓʹ૬ஊ͠·͠ΐ͏ •
ؔʹਗ਼ਫ͞Μ͕͍·͢ɻ૬ஊ͠·͠ΐ͏ 52
Enjoy development!! ͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ 53