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
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Ryo Takaishi
April 25, 2018
Technology
4k
7
Share
こんなこともあろうかと、 サーバーは予め増やして置いた 〜アクセス頻度予測を用いてサーバーを自動増減する「計画的スケーリング」その後〜 / LINE Developer Meetup #32
LINE Developer Meetup #32
https://line.connpass.com/event/83597/
Ryo Takaishi
April 25, 2018
More Decks by Ryo Takaishi
See All by Ryo Takaishi
2025 年私の Terraform に関するふりかえり / ゆるSRE勉強会 #14
takaishi
0
440
スロークエリとの戦いの軌跡2024 / ゆるSRE勉強会 #10
takaishi
1
870
AWSを使ったカンファレンスの 配信アーキテクチャ - 吉祥寺.pm37
takaishi
2
600
どうやればインシデント対応能力を鍛えられるのか? / SRE Kaigi 2025
takaishi
13
13k
Podcastを3年半続ける技術と得た物 / ya8-2024
takaishi
5
2k
入門!ClusterAPI 〜 k8s クラスターも k8s API で管理したい 〜 / k8s_meetup_31
takaishi
3
4.8k
CloudNativeへの道 リーダーシップとフォロワーシップ / 201911-cndjp13
takaishi
2
980
ClusterAPI v1alpha1 → v1alpha2 / k8s_meetup_23
takaishi
1
1.6k
実録!CloudNativeを 目指した230日 / cloud-native-days-tokyo-2019
takaishi
2
2.7k
Other Decks in Technology
See All in Technology
Oracle Cloud Infrastructure(OCI):Onboarding Session(はじめてのOCI/Oracle Supportご利⽤ガイド)
oracle4engineer
PRO
2
17k
シン・リスコフの置換原則 〜現代風に考えるSOLIDの原則〜
jinwatanabe
0
180
ある製造業の会社全体のAI化に1エンジニアが挑んだ話
kitami
2
840
レガシーシステムをどう次世代に受け継ぐか
tachiiri
0
330
ADOTで始めるサーバレスアーキテクチャのオブザーバビリティ
alchemy1115
2
270
プロジェクトマネジメントは AIでどう変わるか?
mkg5383
0
200
Oracle AI Databaseデータベース・サービス: BaseDB/ExaDB-Dの可用性
oracle4engineer
PRO
1
170
New CBs New Challenges
ysuzuki
1
170
ふりかえりを 「あそび」にしたら、 学習が勝手に進んだ / Playful Retros Drive Learning
katoaz
0
440
DevOpsDays Tokyo 2026 見えない開発現場を、見える投資に変える
rojoudotcom
2
160
CC Workflow Studio
seiyakobayashi
0
270
システムは「動く」だけでは足りない 実装編 - 非機能要件・分散システム・トレードオフをコードで見る
nwiizo
2
310
Featured
See All Featured
AI: The stuff that nobody shows you
jnunemaker
PRO
5
530
Documentation Writing (for coders)
carmenintech
77
5.3k
Testing 201, or: Great Expectations
jmmastey
46
8.1k
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3.3k
What the history of the web can teach us about the future of AI
inesmontani
PRO
1
510
We Are The Robots
honzajavorek
0
210
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.1k
Everyday Curiosity
cassininazir
0
190
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
30k
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
For a Future-Friendly Web
brad_frost
183
10k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.6k
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ʜ