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
kikunantoka
February 06, 2019
Technology
0
330
今日から始める Flood.io / fuka-taisaku-night-01
- ギフティでの負荷対策の重要性
- Flood.io について
- Flood.io の活用
- 30万RPM を耐えるためにやったこと
kikunantoka
February 06, 2019
Tweet
Share
More Decks by kikunantoka
See All by kikunantoka
個人開発しているサービスのインフラをAWSからGCPに載せ替えた話 💪 / kojin_kaihatsu_night_3
kikunantoka
0
1.2k
Gatsby.jsとCloud Functionsで毎週自動でコンテンツが更新され続けるフレームワーク比較サイトを作った話 / gotanda_js_13
kikunantoka
1
2.4k
Gatsby.jsとCloud Functionsで毎週自動でコンテンツが更新され続けるフレームワーク比較サイトを作った話 / frontend_night_1
kikunantoka
3
1.6k
サービスがゼロからN億円規模になるまに実践した7つのやっていき / 7_yatteiki_battle_conference_u30_2019
kikunantoka
1
1.4k
Gatsby.jsとNetlifyとの付き合い方 / gatsby-js-and-netlify
kikunantoka
3
600
Gatsby.jsで導入事例をバシバシ読めるSPAなLPを作った話 / gatsby-js-for-biz-lp
kikunantoka
2
690
Gatsby.jsで導入事例をバシバシ読めるSPAなLPを作った話 / gatsby-js-for-biz-lp
kikunantoka
1
1.8k
20万RPMを捌くRailsアプリケーションの作り方
kikunantoka
0
820
MVPに絞ったら個人開発でもちゃんとリリースできた話
kikunantoka
1
530
Other Decks in Technology
See All in Technology
20251024_TROCCO/COMETAアップデート紹介といくつかデモもやります!_#p_UG 東京:データ活用が進む組織の作り方
soysoysoyb
0
120
個人でデジタル庁の デザインシステムをVue.jsで 作っている話
nishiharatsubasa
3
5.2k
もう外には出ない。より快適なフルリモート環境を目指して
mottyzzz
13
11k
OPENLOGI Company Profile for engineer
hr01
1
45k
JSConf JPのwebsiteをGatsbyからNext.jsに移行した話 - Next.jsの多言語静的サイトと課題
leko
2
190
様々なファイルシステム
sat
PRO
0
260
AIでデータ活用を加速させる取り組み / Leveraging AI to accelerate data utilization
okiyuki99
4
1.1k
.NET 10のBlazorの期待の新機能
htkym
0
150
SRE × マネジメントレイヤーが挑戦した組織・会社のオブザーバビリティ改革 ― ビジネス価値と信頼性を両立するリアルな挑戦
coconala_engineer
0
280
Amazon Athena で JSON・Parquet・Iceberg のデータを検索し、性能を比較してみた
shigeruoda
1
150
AIエージェントによる業務効率化への飽くなき挑戦-AWS上の実開発事例から学んだ効果、現実そしてギャップ-
nasuvitz
5
1.3k
What's new in OpenShift 4.20
redhatlivestreaming
0
320
Featured
See All Featured
The Illustrated Children's Guide to Kubernetes
chrisshort
49
51k
How to Think Like a Performance Engineer
csswizardry
27
2.1k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
How to train your dragon (web standard)
notwaldorf
97
6.3k
Designing for Performance
lara
610
69k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
2.5k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
46
7.7k
Done Done
chrislema
185
16k
For a Future-Friendly Web
brad_frost
180
10k
Rebuilding a faster, lazier Slack
samanthasiow
84
9.2k
Java REST API Framework Comparison - PWX 2021
mraible
34
8.9k
Unsuck your backbone
ammeep
671
58k
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ͷΧδϡΞϧΪϑταʔϏε