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.8k
こんなこともあろうかと、 サーバーは予め増やして置いた 〜アクセス頻度予測を用いてサーバーを自動増減する「計画的スケーリング」その後〜 / 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
Podcastを3年半続ける技術と得た物 / ya8-2024
takaishi
5
1.6k
入門!ClusterAPI 〜 k8s クラスターも k8s API で管理したい 〜 / k8s_meetup_31
takaishi
3
4.4k
CloudNativeへの道 リーダーシップとフォロワーシップ / 201911-cndjp13
takaishi
2
860
ClusterAPI v1alpha1 → v1alpha2 / k8s_meetup_23
takaishi
1
1.5k
実録!CloudNativeを 目指した230日 / cloud-native-days-tokyo-2019
takaishi
2
2.5k
Consul Connect and Kubernetes Integration / cloud native meetup tokyo 7
takaishi
2
2.2k
ソフトウェアエンジニア の楽しみ / 2018-pepaboudon
takaishi
0
190
Ansible、Terraform、Packerで作るSelf-Hosted Kubernetes / JKD1812
takaishi
5
4k
Knative Serving 入門 / kubernetes meetup 13
takaishi
2
1.2k
Other Decks in Technology
See All in Technology
iOS/Androidで同じUI体験をネ イティブで作成する際に気をつ けたい落とし穴
fumiyasac0921
1
110
EventHub Startup CTO of the year 2024 ピッチ資料
eventhub
0
110
[CV勉強会@関東 ECCV2024 読み会] オンラインマッピング x トラッキング MapTracker: Tracking with Strided Memory Fusion for Consistent Vector HD Mapping (Chen+, ECCV24)
abemii
0
220
AIチャットボット開発への生成AI活用
ryomrt
0
170
なぜ今 AI Agent なのか _近藤憲児
kenjikondobai
4
1.3k
SSMRunbook作成の勘所_20241120
koichiotomo
1
110
OCI Security サービス 概要
oracle4engineer
PRO
0
6.5k
CysharpのOSS群から見るModern C#の現在地
neuecc
1
3.1k
複雑なState管理からの脱却
sansantech
PRO
1
130
初心者向けAWS Securityの勉強会mini Security-JAWSを9ヶ月ぐらい実施してきての近況
cmusudakeisuke
0
120
dev 補講: プロダクトセキュリティ / Product security overview
wa6sn
1
2.3k
DMARC 対応の話 - MIXI CTO オフィスアワー #04
bbqallstars
1
160
Featured
See All Featured
Bash Introduction
62gerente
608
210k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
8
730
10 Git Anti Patterns You Should be Aware of
lemiorhan
654
59k
The Pragmatic Product Professional
lauravandoore
31
6.3k
Building Flexible Design Systems
yeseniaperezcruz
327
38k
Documentation Writing (for coders)
carmenintech
65
4.4k
Ruby is Unlike a Banana
tanoku
97
11k
Fireside Chat
paigeccino
34
3k
Product Roadmaps are Hard
iamctodd
PRO
49
11k
Code Reviewing Like a Champion
maltzj
520
39k
How To Stay Up To Date on Web Technology
chriscoyier
788
250k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
229
52k
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ʜ