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
こんなこともあろうかと、 サーバーは予め増やして置いた 〜アクセス頻度予測を用いてサーバーを自...
Search
Ryo Takaishi
April 25, 2018
Technology
7
3.9k
こんなこともあろうかと、 サーバーは予め増やして置いた 〜アクセス頻度予測を用いてサーバーを自動増減する「計画的スケーリング」その後〜 / LINE Developer Meetup #32
LINE Developer Meetup #32
https://line.connpass.com/event/83597/
Ryo Takaishi
April 25, 2018
Tweet
Share
More Decks by Ryo Takaishi
See All by Ryo Takaishi
スロークエリとの戦いの軌跡2024 / ゆるSRE勉強会 #10
takaishi
1
710
AWSを使ったカンファレンスの 配信アーキテクチャ - 吉祥寺.pm37
takaishi
2
490
どうやればインシデント対応能力を鍛えられるのか? / SRE Kaigi 2025
takaishi
11
11k
Podcastを3年半続ける技術と得た物 / ya8-2024
takaishi
5
1.8k
入門!ClusterAPI 〜 k8s クラスターも k8s API で管理したい 〜 / k8s_meetup_31
takaishi
3
4.6k
CloudNativeへの道 リーダーシップとフォロワーシップ / 201911-cndjp13
takaishi
2
920
ClusterAPI v1alpha1 → v1alpha2 / k8s_meetup_23
takaishi
1
1.6k
実録!CloudNativeを 目指した230日 / cloud-native-days-tokyo-2019
takaishi
2
2.6k
Consul Connect and Kubernetes Integration / cloud native meetup tokyo 7
takaishi
2
2.3k
Other Decks in Technology
See All in Technology
【あのMCPって、どんな処理してるの?】 AWS CDKでの開発で便利なAWS MCP Servers特集
yoshimi0227
6
950
公開初日に Gemini CLI を試した話や FFmpeg と組み合わせてみた話など / Gemini CLI 初学者勉強会(#AI道場)
you
PRO
0
1.3k
Rethinking Incident Response: Context-Aware AI in Practice
rrreeeyyy
2
940
ゼロから始めるSREの事業貢献 - 生成AI時代のSRE成長戦略と実践 / Starting SRE from Day One
shinyorke
PRO
0
110
Introduction to Sansan for Engineers / エンジニア向け会社紹介
sansan33
PRO
5
39k
60以上のプロダクトを持つ組織における開発者体験向上への取り組み - チームAPIとBackstageで構築する組織の可視化基盤 - / sre next 2025 Efforts to Improve Developer Experience in an Organization with Over 60 Products
vtryo
3
1.9k
三視点LLMによる複数観点レビュー
mhlyc
0
230
20250708オープンエンドな探索と知識発見
sakana_ai
PRO
4
1k
Digitization部 紹介資料
sansan33
PRO
1
4.5k
助けて! XからWaylandに移行しないと新しいGNOMEが使えなくなっちゃう 2025-07-12
nobutomurata
2
200
LIXIL基幹システム刷新に立ち向かう技術的アプローチについて
tsukuha
1
380
無理しない AI 活用サービス / #jazug
koudaiii
0
100
Featured
See All Featured
Six Lessons from altMBA
skipperchong
28
3.9k
Thoughts on Productivity
jonyablonski
69
4.7k
Making Projects Easy
brettharned
116
6.3k
Optimising Largest Contentful Paint
csswizardry
37
3.3k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
53
2.9k
Git: the NoSQL Database
bkeepers
PRO
430
65k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.4k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
656
60k
We Have a Design System, Now What?
morganepeng
53
7.7k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
47
9.6k
Why Our Code Smells
bkeepers
PRO
337
57k
Transcript
∁ੴྒ / GMO Pepabo, Inc. 2018-04-24 LINE Developer Meetup #32
ʙΞΫηεස༧ଌΛ༻͍ͯαʔόʔΛࣗಈ૿ݮ͢ΔʮܭըతεέʔϦϯάʯͦͷޙʙ ͜Μͳ͜ͱ͋Ζ͏͔ͱɺ αʔόʔ༧Ί૿ͯ͠ஔ͍ͨ
ιϑτΣΞΤϯδχΞ ∁ੴ ྒ / @r_takaishi https://repl.info/ TAKAISHI Ryo ٕज़෦ ٕज़ج൫νʔϜ
ΩϟύγςΟϓϥϯχϯά
μϯ͠ͳ͍ෛՙΛ͘͞ ແବͳ͘దͳϦιʔεΛஔ͢Δ
!5 • ϐʔΫλΠϜʹ͋ΘͤͯΛܾఆ • ϝσΟΞ࿐ग़ɾΩϟϯϖʔϯ࣌ʹݸผʹ૿ઃ ΞϓϦέʔγϣϯαʔόʔͷ߹@minne
!6 ϐʔΫλΠϜʹ͋ΘͤͯΛઃఆ͢Δ߹
࣌ؒ ΞΫηεසʢਖ਼نԽࡁʣ αʔόʔ
ΞΫηε͕গͳ͍࣌ؒαʔόʔ Λ͍͍ײ͡ʹݮΒ͍ͨ͠
ΞΫηε͕ଟ͍࣌ؒͦΕΛࡹ͚ ΔΑ͏ͳαʔόʔʹ͍ͨ͠
ෛՙʹԠͯ͡ Φʔτεέʔϧ͢Ε͍͍
!10 • ϐʔΫ࣌ͷෛՙॠؒతʹൃੜ͢ΔͨΊɺݕͯ͠ ͔ΒͷεέʔϧΞτͰؒʹ߹Θͳ͍ • αʔόʔͷىಈʙαʔϏεΠϯʹ͔͔ΔλΠϜϥά • ԾϚγϯͷىಈ • ىಈ࣌ʹ࠷৽ͷΞϓϦέʔγϣϯίʔυΛσϓϩΠ
ෛՙΛݕͯ͠Φʔτεέʔϧ͢Δख๏
ͳ͔ͳ͔͍͠ʜ
ͱࢥ͍ͬͯͨΒɺͷ಄ʹ
͍͍ͷ͋ΔΑ…ʂ
ࡾݚڀॴһʹΑΔ ఏҊख๏
ΞΫηεස༧ଌΛ༻͍ͨ ܭըతεέʔϦϯά
͜Ε·Ͱੵ͖ͯͨ͠ ΞΫηεϩάΛͬͯ ະདྷͷΞΫηεසΛ༧ଌ͢Δ
ࣄલʹΞΫηεස͕Θ͔Εɺ ඞཁͳαʔόʔΘ͔Δ
• minneͰΞΫηεϩάɾߦಈϩάΛอଘ͍ͯ͠Δ • ྫ͑աڈ1ϲ݄ؒɺ1࣌ؒ୯ҐͷΞΫηεස͕Θ͔Δ • ͜ͷ࣌ܥྻσʔλΛ༻͍ͯɺະདྷͷΞΫηεසΛ༧ଌ͢Δ • ࣄલʹΞΫηεස͕Θ͔ΕɺॲཧՄೳͳʹ૿ݮͰ͖Δ !18 Ͳ͏͍͏ͷ͔ͬ͘͟Γ
• minneͰΞΫηεϩάɾߦಈϩάΛอଘ͍ͯ͠Δ • ྫ͑աڈ1ϲ݄ؒɺ1࣌ؒ୯ҐͷΞΫηεස͕Θ͔Δ • ͜ͷ࣌ܥྻσʔλΛ༻͍ͯɺະདྷͷΞΫηεසΛ༧ଌ͢Δ • ࣄલʹΞΫηεස͕Θ͔ΕɺॲཧՄೳͳʹ૿ݮͰ͖Δ !19 Ͳ͏͍͏ͷ͔ͬ͘͟Γ
ࠓ͢ͷɺಛʹ͜ͷ෦
!20 ϩάऩू෦͕ؾʹͳΔํεϥΠυΛνΣοΫʂ IUUQTTQFBLFSEFDLDPNNPOPDISPNFHBOFQFQBCPMPHJOGSBTUSVDUVSFCJHGPPU
!21 ༧ଌʹ͍ͭͯؾʹͳΔํϖύݚϒϩάΛνΣοΫʂ IUUQTSBOEQFQBCPDPNBSUJDMFJPUNJZBLFZ
ͱ͍͏Θ͚Ͱ ࡞͍ͬͯͧ͘
!23 • ΞΫηεස༧ଌ܅ʢϖύݚʣ • αʔόʔܭࢉɾ૿ݮ܅ʢminneʣ ඞཁͳίϯϙʔωϯτԿ͔ʁ
!24 ͜Ε͕ܭըతεέʔϦϯάͷߏͩʂ cron Redis ΞΫηεස༧ଌ܅ (Sidekiq) IaaS API Endpoint ༧ଌΞΫηεͷऔಘ
ఆظ࣮ߦ αʔόʔܭࢉɾ૿ݮ܅ (hakata) ඞཁαʔόʔΛܭࢉɾ૿ݮ ༧ΞΫηεසΛอଘ
!25 ܭըతεέʔϦϯάͷྲྀΕ ࣌ ࣌ ࣌ ࣌ ຖ0࣌ա͗ɿ 1ͷΞΫηεසΛ༧ଌ͢ΔΑ ຖ࣌40࣌ա͗ɿ ࣍ͷ1࣌ؒͷΞΫηεස༧ଌ͔ΒαʔόʔΛ૿ݮ͢ΔΑ
• ༧ଌΞΫηεස(ϦΫΤετ/࣌)Λϕʔεͱ͢Δ • αʔόʔ͕ৗʹҰఆͷεϧʔϓοτ(rpm)ΛอͭΛࢦ͢ • εϧʔϓοτظ(rpm)NewRelicͷϝτϦΫε͔Βࢉग़ !26 ඞཁαʔόʔͷܭࢉ ඞཁ༧ଌΞΫηεසεϧʔϓοτظ
!27 • ༧ଌΞΫηεසɿ60,000 ϦΫΤετ/࣌ • εϧʔϓοτظɿ1,000 rpm αʔόʔܭࢉͷྫ ඞཁ༧ଌΞΫηεසεϧʔϓοτظ
• ʮΞΫηεස༧ଌʯͱʮϦιʔεྔܭࢉɾ૿ݮʯͷ2͕ͭඞཁ • ΞΫηεස༧ଌ1ʹ1ճ • Ϧιʔε૿ݮͷλΠϛϯά1࣌ؒʹ1ճ • Ϧιʔεྔܭࢉ༧ଌͱεϧʔϓοτظΛݩʹܭࢉ !28 ܭըతεέʔϦϯάͷઃܭ·ͱΊ
ධՁɾ՝
!30 ΞϓϦέʔγϣϯαʔόʔͷCPU༻ ܭըతεέʔϧɿແޮ ܭըతεέʔϧɿ༗ޮ
!31 ΞϓϦέʔγϣϯαʔόʔͷભҠ ܭըతεέʔϧɿແޮ ܭըతεέʔϧɿ༗ޮ
݁ߏ͍͍͔Μ͡ʹಈ͍͕ͨʜ
͍͔ͭ͘՝
!34 • ༧ଌͷਫ਼ԼʹΑΔϦιʔεෆ • ༧ଌʹݱΕͳ͍ΞΫηεͷରԠ • εέʔϧΞτ͕ؒʹ߹Θͳ͍έʔε ՝
͜͜·Ͱͷ
ผ࡞ۀͷͨΊɺ Ұ࣌తʹఀࢭ͍ͯͨ͠
݄ࠒ͔Βվળʹணख
εέʔϧΞτ ͕ؒʹ߹Θͳ͍
!39 • αʔόʔىಈ࣌ʹΞϓϦέʔγϣϯͷίʔυΛऔಘɾ ల։͓ͯ͠ΓɺϘτϧωοΫͱͳ͍ͬͯΔ • ࠷৽Πϝʔδ ≠ ࠷৽ΞϓϦ • ΞϓϦͷϥΠϑαΠΫϧ
≠ αʔόʔͷϥΠϑαΠΫϧ ͳͥɺεέʔϧΞτ͕ؒʹ߹Θͳ͍ͷ͔ʁ
!40 ϥΠϑαΠΫϧ CentOS minimal www www build minimal image build
www image image lifecycle server lifecycle install puppet apply puppet deploy minne-app launch www server www deploy minne-app terminate www server deleted release minne-app
!41 • ࠷৽ΞϓϦ = ࠷৽ΠϝʔδΛࢦ͢ • ϦϦʔε࣌ʹΠϝʔδΛϏϧυ͠ɺ࠷৽ͷΞϓϦΛ ؚΉΑ͏ʹ͢Δ ϦϦʔε࣌ʹΠϝʔδΛϏϧυ͢Δ
!42 • baseΠϝʔδͷϏϧυ • wwwΠϝʔδͷϏϧυ • wwwΠϝʔδͷݕࠪ • αʔόʔͱͯ͠ىಈ͢Δͷ͔ʁ •
ىಈͨ͠ޙɺͪΌΜͱ֤ϓϩηε͕ಈ͍ͯΞΫηεͰ͖Δ͔ʁ ΠϝʔδϏϧυʹඞཁͳͷ…ʁ
!43 ͍͍͔Μ͡ʹΠϝʔδΛϏϧυͯ͘͠ΕΔͭ hakata workflow - build - push - verify
notify run खݩ͔Βssh࣮ͯ͠ߦ ΞϓϦͷϦϦʔε࣌ʹϏϧυ IaaCͷϦϦʔε࣌ʹϏϧυ
࣮ͯ͠ɺಈ࡞Λ֬ೝ ࠷৽ΞϓϦ࠷৽Πϝʔδ✨
ܭըతεέʔϦϯάΛ࠶Քಇͯ͠ɺ վળ͞Ε͔ͨݕূͨ͠
ܭըతεέʔϦϯάΛ࠶Քಇͯ͠ɺ վળ͞Ε͔ͨݕূͨ͠
!47 • ΠϝʔδͷࣗಈϏϧυʹࢥͬͨΑΓ͕͔͔࣌ؒͬͨ • ࠶Քಇ͠Α͏ͱͨ͠Β͍Ζ͍Ζಈ͔ͣbug fix ࠶Քಇ͜ͷMeetupʹؒʹ߹Θͣ…
ࠓޙʹ͝ظ͍ͩ͘͞ʂ
·ͱΊ
!50 • ΞΫηεස༧ଌΛ༻͍ɺΞΫηε͕૿͑ΔલʹΦʔ τεέʔϧ • ϖύݚͱ࿈ܞɾ୲͠ɺ࣮ݱ • ࢼݧӡ༻͠ɺ՝Λચ͍ग़ͨ͠ • ͕ɺվળ·ͰͰ͖ͣ…
·ͱΊ
Α͔ͬͨ͜ͱ
!52 • ϖύݚͱ࿈ܞ͠ɺ৽ٕज़Λ࣮ࡍͷαʔϏεʹಋೖ • Φʔτεέʔϧʹ͍ͭͯͷݟΛಘΔ͜ͱ͕Ͱ͖ͨ Α͔ͬͨ͜ͱ
!53 • Έͷ൚༻Խ • ࠓճIaaS্Ͱ࡞͕ͬͨɺΈࣗମଞͰ͑Δ • ྫɿKubernetesͷΑ͏ͳίϯςφج൫ͷల։ • ༧ଌʹݱΕͳ͍ΞΫηεͷରԠ •
ෛՙΛτϦΨʔͱͨ͠εέʔϧΞτ ࠓޙ͍͖͍ͬͯͨ͜ͱ
We are hiring! ϗεςΟϯάαʔϏεͰ৽ٕज़Λ׆༻ ΣϒαʔϏεͷ4JUF3FMJBCJMJUZ&OHJOFFSJOH શࣾతͳٕज़ج൫Λ͕ͬͭΓ ࣄۀΛࠩผԽͰ͖Δٕज़Λ࡞Γग़͍ͨ͠ FUDʜ