Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
今日から始める Flood.io / fuka-taisaku-night-01
Search
kikunantoka
February 06, 2019
Technology
370
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
650
Gatsby.jsで導入事例をバシバシ読めるSPAなLPを作った話 / gatsby-js-for-biz-lp
kikunantoka
2
750
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
「重なり」は迎える側がつくる ― 人もAIエージェントも歓迎するプロダクトエンジニアリング ―
go0517go
PRO
0
280
コスト最適化の「めんどくさい」を AWS FinOps Agent でチョット楽にする
classmethod_kaz
0
300
DEFCON_CHV_CTF_Write-up.pdf
bata_24
0
130
Slack上でインフラをトラブルシュートする! Agentic Platform Engineeringの第一歩
teru0x1
0
150
リージョンの壁を越える、 ちょっと変わったAWSサービスの話
falken
PRO
1
300
幾何アルゴリズムで なめらかなピン操作を / iOSDC Japan 2026 / smoothpin
kazumanagano
0
250
Snowflakeで実現する全社横断の顧客の声(VOC)分析・活用基盤@Snowflake World Tour Tokyo 2026
yuto16
0
160
『止めない』を設計する — 制約の中で、事業の根幹を支える判断
hiroyaterui
0
260
Podは生きているのにGoだけが落ちる:GOGCとGOMEMLIMITで追うInvisible OOM Killの謎
tkc66buzz
1
500
深夜のクラウド懺悔室 1:29:300 or 1:0:0
kazzpapa3
1
230
Sigmaで作る業務アプリ
kazushiro_honma
0
110
GoにおけるFFIのこれまでとこれから
goccy
5
2.3k
Featured
See All Featured
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
460
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
450
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
2.1k
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
How to Ace a Technical Interview
jacobian
281
24k
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
440
The Art of Programming - Codeland 2020
erikaheidi
57
14k
Writing Fast Ruby
sferik
630
63k
Agile that works and the tools we love
rasmusluckow
331
22k
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
490
Discover your Explorer Soul
emna__ayadi
2
1.3k
Side Projects
sachag
456
43k
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ͷΧδϡΞϧΪϑταʔϏε