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
20万RPMを捌くRailsアプリケーションの作り方
Search
kikunantoka
December 08, 2018
Technology
850
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
20万RPMを捌くRailsアプリケーションの作り方
kikunantoka
December 08, 2018
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
今日から始める Flood.io / fuka-taisaku-night-01
kikunantoka
0
360
MVPに絞ったら個人開発でもちゃんとリリースできた話
kikunantoka
1
560
Other Decks in Technology
See All in Technology
Android の公式 Skill / Android skills
yanzm
0
140
作って終わりにしない タイミーのセマンティックレイヤー育成の現在地
chanyou0311
4
2.4k
AmazonRoute 53ではじめてのドメイン取得!HTTPS化までの道のりを整理してみた
usanchuu
3
140
2026.06.13_AI時代に事業会社が「SIer出身エンジニア」を求める理由 / Why Businesses Seek Engineers with a System Integrator Background in the AI Era
jumtech
0
1.1k
Bucharest Tech Week 2026 - Reinventing testing practices in the AI era
edeandrea
PRO
1
160
入門!AWS Blocks
ysuzuki
1
120
MCP Appsを作ってみよう
iwamot
PRO
4
640
Kubernetesにおける学習基盤とLLMOpsの概要
ry
1
300
20260619 私の日常業務での生成 AI 活用
masaruogura
1
200
2026TECHFRESH畢業分享會 - AI 時代的人生存檔點
line_developers_tw
PRO
0
1k
Claude Code の Sandbox 機能を Anthropic Sandbox Runtime(srt) で試そう!/lets-play-anthropic-sandbox-runtime
tomoki10
1
590
就職⽀援サービスにおけるキャリアアドバイザーのシフトスケジューリング
recruitengineers
PRO
1
140
Featured
See All Featured
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
190
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
65
56k
Balancing Empowerment & Direction
lara
6
1.2k
Producing Creativity
orderedlist
PRO
348
40k
Information Architects: The Missing Link in Design Systems
soysaucechin
0
970
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
360
Marketing to machines
jonoalderson
1
5.4k
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
1
210
Darren the Foodie - Storyboard
khoart
PRO
3
3.4k
Ten Tips & Tricks for a 🌱 transition
stuffmc
0
130
First, design no harm
axbom
PRO
2
1.2k
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
280
Transcript
20ສRPMΛࡹ͘ RailsΞϓϦέʔγϣϯͷ࡞Γํ גࣜձࣾΪϑςΟ ٠ ࢙و Rails Developers Meetup 2018 Day
4 Nouvelle Vague on 2018/12/08
ࣗݾհ about: name: Fumitaka Kikukawa twitter: @kikunantoka job: engineer work_at:
giftee Inc. // giftee is a good company.
ࣗݾհ
ࣗݾհ https://nakamy.com
ձࣾ֓ཁ
ձࣾ֓ཁ
ࣄۀ༰
ࣄۀ༰
ࣄۀ༰
औΓѻ͍ͬͯΔΪϑτ • gifteeͰ Starbucks ͷίʔώʔ ଃΕ·͢
ίʔώʔεϙϯαʔ • Starbucks ͷίʔώʔΛΈͳ͞ΜʹଃΒ͍͖ͤͯͨͩ·ͨ͠
୲͍ͯ͠ΔϓϩμΫτ
୲͍ͯ͠ΔϓϩμΫτ ʢࣾͰ($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^ʉ
20ສ RPMΛࡹ͘ RailsΞϓϦέʔγϣϯͷ࡞Γํ גࣜձࣾΪϑςΟ ٠ ࢙و Rails Developers Meetup 2018
Day 4 Nouvelle Vague on 2018/12/08 30ສ
͍͑ͨ͜ͱ • ΞϓϦέʔγϣϯίʔυͷ͍͖ͬͯ • Πϯϑϥͷ͍͖ͬͯ • νʔϜ։ൃͷ͍͖ͬͯ
ΞϓϦέʔγϣϯίʔυͷ ͍͖ͬͯ
ෛՙݕূΛͯ͠ϘτϧωοΫΛऔΓআ͘ • Flood.io • GATLING, JMETER , ruby-jmeter ͳͲ
ෛՙݕূΛͯ͠ϘτϧωοΫΛऔΓআ͘ • New Relic • ϘτϧωοΫͷಛఆ
ෛՙݕূΛͯ͠ϘτϧωοΫΛऔΓআ͘ • ੩తϑΝΠϧCDN৴͢Δ • σʔλ͕૿͑Δ͜ͱʹΑͬͯੑೳྼԽ͠ͳ͍͔ • εϩʔΫΤϦΛ͍͛ͯͳ͍͔ • ϩοΫॲཧͷൣғ͕͗͢ͳ͍͔ •
σουϩοΫ͍ͯ͠ͳ͍͔ • ແବͳΠϯελϯεΛੜ͍ͯ͠ͳ͍͔
ෛՙݕূΛͯ͠ϘτϧωοΫΛऔΓআ͘ • DB ͷ Pool Puma ͷ Thread ɺWorker
ద͔ • DB ͷ Pool -> Puma ͷεϨου • Puma ͷ Worker -> CPUͷίΞ • Puma ͷ Thread -> CPU༻ͱ૬ஊ
Πϯϑϥͷ ͍͖ͬͯ
εέʔϧΞοϓͰ͖ΔΑ͏ʹ͓ͯ͘͠ • Elastic Beanstalk
εέʔϧΞοϓͰ͖ΔΑ͏ʹ͓ͯ͘͠ • Amazon Aurora • ؾ߹͍ͰRDS for MySQL͔ΒҠߦͨ͠ • ϑΣΠϧΦʔόʔػೳΛ͏͜ͱͰɺΠϯελϯελΠϓ
ͷมߋ࣌ͷμϯλΠϜ͕5ඵఔʹ • ॻ͖ࠐΈIOPS͔Βͷ։์
࠷৽ͷΠϯελϯελΠϓΛ͏ ໊લ W$16 3". $16ΫϨδοτ࣌ؒ ྉۚ࣌ؒ UTNBMM
64% UTNBMM 64% • ίεύ͕ྑ͍ • Puma ͷ Worker Λ 2 ʹͰ͖Δ -> 2ഒͷεϨου
WebαʔόΛཱͯ·͘Ε͍͍͍ͬͯ͏Ͱͳ͍ • db.r4.16xlargeͷ߹ • 32 Threads x 2 Workers •
1͋ͨΓ 64 Threads • 6000 / 64 = 93.75 • 92͙Β͍͕ݶքʂ
νʔϜ։ൃͷ ͍͖ͬͯ
ͪΌΜͱਓΛೖΕΔ • 1ਓͩͱӡ༻ਏ͍ • 2ਓ͍Εɺਏ͍͜ͱʹɺتͼ2ഒʹ • ͓ۚΛՔ͙ • Λ্͛Δ
ൿͷλϨΛແ͍ͯ͘͘͠ • ϝϯόʔ͕ೖͬͨλΠϛϯάͰrubocop.ymlΛݟͨ͠ • Railsʹ΄΅४ڌͨ͠ • rubocop-rails_config gemΛͬͨ • rubocop
--auto-gen-config ͱ rubocop -a Ͱ͍ͯ͘͠
ͳΜͪΌͬͯεΫϥϜΛಋೖ͢Δ • ͓ޓ͍ͷλεΫͷՄࢹԽ • TrelloͰཧ • Agile ToolsΛೖΕΔ͜ͱͰϕϩγςΟܭଌͰ͖Δ
ڞ௨ೝࣝΛ૿͍ͯ͘͠ • ྠಡΛߦ͍ͬͯΔ
ίϚʔγϟϧ • We are hiring!!! - Ұॹʹಇؒ͘Λืूதʂ ձһສਓಥഁʂ ࠃ/PͷΧδϡΞϧΪϑταʔϏε
ίϚʔγϟϧ • MeetupΓ·͢ʂ - https://techplay.jp/event/711266 •