$30 off During Our Annual Pro Sale. View Details »
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
スタートアップのレガシーシステムをAws活用で改善している話
Search
Tomoyuki Sugita
April 21, 2016
Technology
0
470
スタートアップのレガシーシステムを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
330
ラズパイマガジン 寄稿ネタDEMO
tomotomo
0
880
PHPでLチカ(PHPカンファレンス2018 懇親会)
tomotomo
0
3.2k
IoTデバイスのつらみ isaaxで解消しましょう
tomotomo
0
110
IoTLT 40回 おめでとう!
tomotomo
2
460
「isaax」を使った PoCからプロダクションまでの開発
tomotomo
0
260
2000年頃のフロントエンド技術
tomotomo
1
9.9k
WordPressとサーバーとお金の話
tomotomo
0
1k
Other Decks in Technology
See All in Technology
Microsoft 365と開発者ツールの素敵な関係
kkamegawa
1
1.1k
AWS re:Invent 2024 予選落ちのBedrockアプデをまとめて解説!
minorun365
PRO
2
220
Entra ID の基礎(Japan Microsoft 365 コミュニティ カンファレンス 2024)
murachiakira
3
1.9k
RDRAとLLM
kanzaki
4
480
ARRが3年で10倍になったプロダクト開発とAI活用の軌跡
akiroom
0
170
LINEヤフーにおける超大規模プラットフォーム実現への挑戦と学び / Challenges and Lessons in Building an Ultra-Large-Scale Platform at LY Corporation
hhiroshell
1
820
クラウドインフラ構築における.NETとその他IaCの比較
ymd65536
1
180
大規模トラフィックを支える ゲームバックエンドの課題と構成の変遷 ~安定したゲーム体験を実現するために~
colopl
0
550
Nutanixにいらっしゃいませ。Moveと仮想マシン移行のポイント紹介
shadowhat
0
180
B11-SharePoint サイトのストレージ管理を考えよう
maekawa123
0
110
エンジニアの草の根活動のその先へ LINEギフトのアクセシビリティにおける ネクストアクション
lycorptech_jp
PRO
0
100
241130紅白ぺぱ合戦LT「編集の技術」
toya524287
5
540
Featured
See All Featured
Fontdeck: Realign not Redesign
paulrobertlloyd
82
5.3k
The MySQL Ecosystem @ GitHub 2015
samlambert
250
12k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
250
21k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
28
2k
How To Stay Up To Date on Web Technology
chriscoyier
789
250k
Building a Scalable Design System with Sketch
lauravandoore
459
33k
The Pragmatic Product Professional
lauravandoore
32
6.3k
KATA
mclloyd
29
14k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
169
50k
StorybookのUI Testing Handbookを読んだ
zakiyama
27
5.3k
We Have a Design System, Now What?
morganepeng
50
7.2k
Building a Modern Day E-commerce SEO Strategy
aleyda
38
6.9k
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