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
730
AWSを使ったカンファレンスの 配信アーキテクチャ - 吉祥寺.pm37
takaishi
2
510
どうやればインシデント対応能力を鍛えられるのか? / SRE Kaigi 2025
takaishi
12
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
940
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
薬屋のひとりごとにみるトラブルシューティング
tomokusaba
0
330
o11yツールを乗り換えた話
tak0x00
2
1.4k
Eval-Centric AI: Agent 開発におけるベストプラクティスの探求
asei
0
120
UDDのススメ - 拡張版 -
maguroalternative
1
540
Google Agentspaceを実際に導入した効果と今後の展望
mixi_engineers
PRO
3
700
MCP認可の現在地と自律型エージェント対応に向けた課題 / MCP Authorization Today and Challenges to Support Autonomous Agents
yokawasa
5
2.3k
AIのグローバルトレンド 2025 / ai global trend 2025
kyonmm
PRO
1
140
AI時代の大規模データ活用とセキュリティ戦略
ken5scal
0
130
相互運用可能な学修歴クレデンシャルに向けた標準技術と国際動向
fujie
0
250
2時間で300+テーブルをデータ基盤に連携するためのAI活用 / FukuokaDataEngineer
sansan_randd
0
150
Nx × AI によるモノレポ活用 〜コードジェネレーター編〜
puku0x
0
570
LLM 機能を支える Langfuse / ClickHouse のサーバレス化
yuu26
9
2.2k
Featured
See All Featured
Agile that works and the tools we love
rasmusluckow
329
21k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
251
21k
Practical Orchestrator
shlominoach
190
11k
Build your cross-platform service in a week with App Engine
jlugia
231
18k
Gamification - CAS2011
davidbonilla
81
5.4k
It's Worth the Effort
3n
185
28k
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
For a Future-Friendly Web
brad_frost
179
9.9k
What’s in a name? Adding method to the madness
productmarketing
PRO
23
3.6k
Into the Great Unknown - MozCon
thekraken
40
2k
How to Think Like a Performance Engineer
csswizardry
25
1.8k
Git: the NoSQL Database
bkeepers
PRO
431
65k
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ʜ