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
今日から始める Flood.io / fuka-taisaku-night-01
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
kikunantoka
February 06, 2019
Technology
360
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
今日から始める Flood.io / fuka-taisaku-night-01
- ギフティでの負荷対策の重要性
- Flood.io について
- Flood.io の活用
- 30万RPM を耐えるためにやったこと
kikunantoka
February 06, 2019
More Decks by kikunantoka
See All by kikunantoka
個人開発しているサービスのインフラをAWSからGCPに載せ替えた話 💪 / kojin_kaihatsu_night_3
kikunantoka
0
1.3k
Gatsby.jsとCloud Functionsで毎週自動でコンテンツが更新され続けるフレームワーク比較サイトを作った話 / gotanda_js_13
kikunantoka
1
2.4k
Gatsby.jsとCloud Functionsで毎週自動でコンテンツが更新され続けるフレームワーク比較サイトを作った話 / frontend_night_1
kikunantoka
3
1.8k
サービスがゼロからN億円規模になるまに実践した7つのやっていき / 7_yatteiki_battle_conference_u30_2019
kikunantoka
1
1.4k
Gatsby.jsとNetlifyとの付き合い方 / gatsby-js-and-netlify
kikunantoka
3
640
Gatsby.jsで導入事例をバシバシ読めるSPAなLPを作った話 / gatsby-js-for-biz-lp
kikunantoka
2
740
Gatsby.jsで導入事例をバシバシ読めるSPAなLPを作った話 / gatsby-js-for-biz-lp
kikunantoka
1
1.9k
20万RPMを捌くRailsアプリケーションの作り方
kikunantoka
0
860
MVPに絞ったら個人開発でもちゃんとリリースできた話
kikunantoka
1
570
Other Decks in Technology
See All in Technology
FDEの心得
noriakioji
5
6.4k
ホームラボ紹介
y_sera15
0
230
【書籍出版記念】 10周回って、エージェント開発は RAGがすべてだった。〜RAGの歴史と開発現場で見えた実践知〜
akiratameto
18
6.5k
同じWAFが、攻撃の“形”は弾く── 正当な“形”の不正は通す
kuroneko13
0
270
コーチングの奥義 何もしないテクニック
jinwatanabe
0
150
私がブラウザを自作したくなった理由
supurazako
1
280
医療の現場を変革に挑戦した半年間の軌跡 - PythonとAIで現場を変える / From Code to Care
soudai
PRO
1
580
도구에서 동료까지: 10년차 AI 스타트업의 AI 적응기
inureyes
PRO
1
330
Head First モブプログラミング / Head First Mobprogramming
takaking22
10
12k
猫付きpingコマンドを自作
uyuki234
0
290
【GCC2026】鉄拳8でのVFX開発事例
bandainamcostudios
PRO
0
270
型落ちシンクライアント端末のPoEモジュールを自作したかった話
logica0419
0
330
Featured
See All Featured
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
1k
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
1.2k
Six Lessons from altMBA
skipperchong
29
4.5k
Are puppies a ranking factor?
jonoalderson
2
3.8k
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
64
56k
Statistics for Hackers
jakevdp
799
230k
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
900
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.8k
30 Presentation Tips
portentint
PRO
1
380
Thoughts on Productivity
jonyablonski
76
5.3k
Making the Leap to Tech Lead
cromwellryan
135
10k
YesSQL, Process and Tooling at Scale
rocio
174
15k
Transcript
ࠓ͔Β࢝ΊΔ Flood.io גࣜձࣾΪϑςΟ ٠ ࢙و ෛՙରࡦ Night #1 @ΪϑςΟ on
2018/02/06
ࣗݾհ about: name: Fumitaka Kikukawa twitter: @kikunantoka job: engineer work_at:
giftee Inc. // giftee is a good company. url: https://kikunantoka.com
ࣗݾհ
ࣗݾհ https://nakamy.com
͍͑ͨ͜ͱ • ΪϑςΟͰͷෛՙରࡦͷॏཁੑ • Flood.io ʹ͍ͭͯ • Flood.io ͷ׆༻ •
30ສRPM Λ͑ΔͨΊʹͬͨ͜ͱ
ΪϑςΟͰͷෛՙରࡦ ͷॏཁੑ
ࣄۀ༰
ࣄۀ༰
ࣄۀ༰
giftee for Buisness
୲͍ͯ͠ΔϓϩμΫτ ʢࣾͰ($1ͱུ͞Εͩ͢ʜʣ HJGUFFΠϯελϯτΟϯGPS5XJUUFSͷڧΈᶃ நબ͔Βܠͷఏڙ·ͰҰؾ௨؏Ͱ͝ఏڙ நબγεςϜ ʢΠϯελϯτΟϯʣ σδλϧΪϑτͷఏڙ ʢछྨҎ্ͷܠʣ ϦΞϧλΠϜʹநબɺ ͦͷͰܠΛ༩
LINEೝূͷύλʔϯఏڙ HJGUFFΠϯελϯτΟϯGPS-*/&ͷڧΈᶃ ©2018 gi)ee Inc. all rights reserved J நબ͔Βܠͷఏڙ·ͰҰؾ௨؏Ͱ͝ఏڙ
நબγεςϜ ʢΠϯελϯτΟϯʣ σδλϧΪϑτͷఏڙ ʢछྨҎ্ͷܠʣ ϦΞϧλΠϜʹநબɺ ͦͷͰܠΛ༩
ΊͬͪΌΞΫηεདྷΔ • ༑ͩͪ 2300ສͷΞΧϯτͰΩϟϯϖʔϯΛ࣮ࢪͨ݁͠Ռ ʊਓਓਓਓਓਓਓਓਓਓਓʊ ʼɹ࠷େ 30ສRPMɹʻ ʉY^Y^Y^Y^Y^Y^Y^Y^ʉ
Flood.io ʹ͍ͭͯ
Flood.io ͱ • ΫϥυϕʔεͷϩʔυςεταʔϏε
Flood.io ͱ • Selenium, JMeter ( + ruby-jmeter) , Gatling
• ͖ͳςετπʔϧΛ͏͜ͱ͕Ͱ͖Δ • طʹGatlingͷςετίʔυ͕͋ͬͨͷͰɺGatlingΛ࠾༻
Flood.io ͱ • Ձ֨ • 50 Node Hours Ͱ 33,000ԁఔʢैྔׂҾ͋Γʣ
Flood.io ͷྑ͍ • Ϋϥυ্Ͱؾܰʹϩʔυςετ͕Ͱ͖Δ • ϊʔυͷεέʔϧΞοϓ͕؆୯ • ݁Ռ͕ϏδϡΞϥΠζ͞ΕΔ • Web্Ͱ݁Ռͱςετέʔεͷཧ͕Ͱ͖Δ
• ςετ݁ՌγΣΞ༻ͷϦϯΫͰڞ༗Ͱ͖Δ
Flood.io ͷѱ͍ • ϩάͷอ༗ظ͕ؒ1ϲ݄ఔ • ςετέʔεͱΤϥʔݪҼͷηοτͰཧ͍ͨ͠߹ʹෆ ศ
σϞ
Flood.io ͷ׆༻
New Relic ͰϘτϧωοΫΛಛఆ • Flood.io ͰෛՙΛ͔͚ͨ࣌ͷ༷ࢠΛϞχλϦϯά͢Δ
ෛՙݕূΛ܁Γฦ͢ • ϩʔυςετΛ͢Δ • ϘτϧωοΫ͕ݟ͔ͭΔ • ϘτϧωοΫΛվળ͢Δ • Λ܁Γฦ͢
ෛՙݕূΛ܁Γฦ͢ • ϩοΫॲཧʹΑͬͯɺλΠϜΞτ • ϩοΫॲཧͷൣғͷվળ • ίωΫγϣϯϓʔϧ͕Γͳ͘ͳΔ • DBͷઃఆͷमਖ਼ •
RDSʹଓͰ͖ͳ͘ͳΔ • ΠϯελϯελΠϓͷมߋ
ϘτϧωοΫʹͳΓ͍͢ϙΠϯτ • σʔλ͕૿͑Δ͜ͱʹΑͬͯੑೳྼԽ͠ͳ͍͔ • εϩʔΫΤϦΛ͍͛ͯͳ͍͔ • ϩοΫॲཧͷൣғ͕͗͢ͳ͍͔ • σουϩοΫ͍ͯ͠ͳ͍͔ •
ແବͳΠϯελϯεΛੜ͍ͯ͠ͳ͍͔ • ੩తϑΝΠϧCDN৴͢Δ
ҙ • AWSࣄલʹϩʔυςετ͢ΔࢫΛ͓͑ͯ͘ • ಉҰIP͔ΒҰఆҎ্ΞΫηε͕͋Δͱ߈ܸͱΈͳ͞ΕΔ • AWS LoftͷαϙʔτΤϯδχΞਃग़ͨ͠΄͏͕ྑ͍ ͱͷݟղ
30ສRPM Λ͑ΔͨΊʹ ͬͨ͜ͱ
εέʔϧΞοϓͰ͖ΔΑ͏ʹ͓ͯ͘͠ • Elastic Beanstalk
εέʔϧΞοϓͰ͖ΔΑ͏ʹ͓ͯ͘͠ • Amazon Aurora • RDS for MySQL͔ΒҠߦͨ͠ • ϑΣΠϧΦʔόʔػೳΛ͏͜ͱͰɺΠϯελϯελΠϓ
ͷมߋ࣌ͷμϯλΠϜ͕5ඵఔʹ • ॻ͖ࠐΈIOPS͔Βͷ։์
DBͷઃఆΛݟ͢ • DB ͷ Pool Puma ͷ Thread ɺWorker
ద͔ • DB ͷ Pool -> Puma ͷεϨου • Puma ͷ Worker -> CPUͷίΞ • Puma ͷ Thread -> CPU༻ͱ૬ஊ
࠷৽ͷΠϯελϯελΠϓΛ͏ ໊લ W$16 3". $16ΫϨδοτ࣌ؒ ྉۚ࣌ؒ UTNBMM
64% UTNBMM 64% • ίεύ͕ྑ͍ • Puma ͷ Worker Λ 2 ʹͰ͖Δ -> 2ഒͷεϨου • ͨͩ͠ɺAWSଆͰϦιʔε͕Γͳ͘ͳΔϦεΫ͕͋Δ
WebαʔόΛཱͯ·͘Ε͍͍͍ͬͯ͏Ͱͳ͍ • db.r4.16xlargeͷ߹ • 32 Threads x 2 Workers •
1͋ͨΓ 64 Threads • 6000 / 64 = 93.75 • 92͙Β͍͕ݶքʂ
ͪΌΜͱਓΛೖΕΔ • 1ਓͩͱӡ༻ਏ͍ • 2ਓ͍Εɺਏ͍͜ͱʹɺتͼ2ഒʹ • ͓ۚΛՔ͙ • Λ্͛Δ
ίϚʔγϟϧ • We are hiring!!! - Ұॹʹಇؒ͘Λืूதʂ ձһສਓಥഁʂ ࠃ/PͷΧδϡΞϧΪϑταʔϏε