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
5000台の仮想デバイスからAWS IoTにデータをガンガン送り付ける! IoTのテスト用仮想デバイス作成サービスmockmockの舞台裏
Search
Keita Mohri
January 16, 2018
Technology
0
120
5000台の仮想デバイスからAWS IoTにデータをガンガン送り付ける! IoTのテスト用仮想デバイス作成サービスmockmockの舞台裏
AWS Deep Night in 福岡
Keita Mohri
January 16, 2018
Tweet
Share
More Decks by Keita Mohri
See All by Keita Mohri
Excelを扱うRubyGemまとめ 2022
ktam1219
0
520
モクえもんのお時間です
ktam1219
0
150
在宅ワーク中だけど会社にしかGPSマルチユニットがない?でも大丈夫!そう、mockmockがあればね。
ktam1219
0
360
IoTデバイスの疑似データ送信システムにおける サーバーレスなログ処理機構の試行錯誤
ktam1219
0
480
実写版モクえもん in Explorer ~愛・おぼえていますか~
ktam1219
0
250
エンジニアのおしごと
ktam1219
0
99
mockmockの大量のログをいい感じに捌きたい
ktam1219
0
880
Goで作る大量プロセス管理機構
ktam1219
2
3k
わりとゴツいKubernetesハンズオン そのあとに
ktam1219
0
520
Other Decks in Technology
See All in Technology
B2C、B2B プロダクトマネジメントの違い(および思考の罠) / B2C, B2B PM and reduction fallacy
ykmc09
5
2.3k
Autonomous Database Cloud 技術詳細 / adb-s_technical_detail_jp
oracle4engineer
PRO
15
36k
TypeScript の抽象構文木を用いた、数百を超える API の大規模リファクタリング戦略
yanaemon
6
1.2k
YJIT Makes Rails 1.7x faster / RubyKaigi 2024
k0kubun
3
450
5分で分かる(かもしれない) Vector engine for OpenSearch Serverless
tsukuboshi
1
400
Oracle Base Database Service 技術詳細
oracle4engineer
PRO
5
38k
能動学習のいろは:書籍「Human-in-the-Loop機械学習」3〜5章
hiroyoshiito
0
290
Zero Data Loss Autonomous Recovery Service サービス概要
oracle4engineer
PRO
0
2k
サイボウズ 開発本部採用ピッチ / Cybozu Engineer Recruit
cybozuinsideout
PRO
9
37k
生成AIと産業向けソフトウェアの自動生成 〜 ハノーバーメッセ2024より〜
kioto
2
420
使われないものを作るな!出口から作るデータ分析基盤 / Data Platform Development Starting from the User Needs
amaotone
16
4.6k
多言語化対応における TypeScript の型定義を通して開発のしやすさについて考えた / TSKaigi TypeScript Multilingualization
nabeliwo
2
390
Featured
See All Featured
Designing for humans not robots
tammielis
247
25k
Fantastic passwords and where to find them - at NoRuKo
philnash
39
2.5k
The Invisible Side of Design
smashingmag
294
49k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
242
1.2M
Faster Mobile Websites
deanohume
300
30k
Fontdeck: Realign not Redesign
paulrobertlloyd
76
4.9k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
188
16k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
34
8.9k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
21
2k
The Language of Interfaces
destraynor
151
23k
Raft: Consensus for Rubyists
vanstee
133
6.3k
YesSQL, Process and Tooling at Scale
rocio
165
13k
Transcript
ͷԾσόΠε͔Β"84*P5ʹσʔλΛΨϯΨϯૹΓ͚Δʂ *P5ͷςετ༻ԾσόΠε࡞αʔϏε ͷཪ ໟརܒଠ
ໟརܒଠʢ͏Γ͚͍ͨʣ 'VTJD$P -UE NPDLNPDLϓϩμΫτΦʔφʔ લ৬ ༯ոͱ͔Ͱ༗໊ͳ ήʔϜձࣾ
ࣾͷ͓՛ࢠͷྲྀ௨ΛڇࣖΔ
ͬͯԿͰ͔͢ʁ
None
None
*P5ͷ
Ϟϊ ʜ Ϟϊ͕ɺ
Ϟϊ ʜ Πϯλʔωοτܦ༝Ͱɺ
αʔόʔΞϓϦ Ϟϊ ʜ αʔόʹσʔλΛૹΓɺ
αʔόʔΞϓϦ Ϟϊ ʜ ղੳͨ͠Γͯ͠
αʔόʔΞϓϦ Ϟϊ ʜ Կ͔͢Δ
ͷࣄྫ גࣜձࣾαχοΫε༷ ଠཅޫൃిॴϞχλϦϯάγεςϜ גࣜձࣾϓϦϯγϓϧ༷ ϗʔϜηΩϡϦςΟγεςϜ
*P5ͷ ͓ΘΓ
ͯ͞ɺ *P5ͷ։ൃ͠·͢
αʔόʔΞϓϦ Ϟϊ ʜ ςετ͍ͨ͠
αʔόʔΞϓϦ Ϟϊ ʜ σʔλ͕΄͍͠
αʔόʔΞϓϦ Ϟϊ ʜ ࠓ͙͢΄͍͠
αʔόʔΞϓϦ Ϟϊ ʜ ͍ΖΜͳύλʔϯͰ΄͍͠
αʔόʔΞϓϦ Ϟϊ ʜ ͨ͘͞Μ΄͍͠
Ͳ͏ͬͯ ௐୡ͠Α͏ʁ
ϦΞϧͳϞϊ͔Β ૹΒͤΑ͏
΄͍͠σʔλΛग़ͮ͠Β͍ େྔௐୡ͍͠ʜ
ͳΒࣗͰ γϛϡϨʔλʔ࡞Ζ͏
ͳ͔ͳ͔ͦ͜·Ͱ ख͕ճΒͳ͍ʜ
None
ͦ͜Ͱ
αʔόʔΞϓϦ ʜ ࢥ͍Ͳ͓ΓʹͳΔԾͷϞϊ
͍ͭͰ ΄͍͠σʔλΛ ΄͍͠ྔ͚ͩ ૹͬͯ͘ΕΔʂ
None
ࢦఆ͞ΕͨΤϯυϙΠϯτʹରͯ͠ɺ ݸମࣝผՄೳ͔ͭ ࣌ܥྻʹมԽ͢ΔσʔλΛ ಉ࣌ฒߦͰେྔʹૹ৴͢ΔγεςϜ NPDLNPDLΛٕज़ࢹͰઆ໌͢Δͱ
αʔόʔΞϓϦ ;Θͬͱͨ͠ಈ࡞Πϝʔδ σʔλૹ৴ઌͱ͔ σʔλੜఆٛͱ͔ NPDLݻ༗ઃఆͱ͔
αʔόʔΞϓϦ NPDLΛͭ͘Δ ;Θͬͱͨ͠ಈ࡞Πϝʔδ
αʔόʔΞϓϦ NPDLΛ͏͔͢͝ ;Θͬͱͨ͠ಈ࡞Πϝʔδ
Πϝʔδ͖ͭ·ͨ͠ʁ ͦΕͰຊʂ
ͷཪ
NPDLNPDLͷઃܭ NPDLͷਖ਼ମ Ϧιʔε֬อ γεςϜશମͷಈ࡞ NPDLNPDLͷ։ൃ
ςετ ຊ͓͢͠Δ͜ͱ
NPDLNPDL ͷઃܭ
NPDLNPDLͷઃܭ্ͷࢹ ༻͢ΔϦιʔεඞཁ࠷ݶʹ͍ͨ͠ ͪΖΜݪՁগͳ͍ํ͕͍͍ ӡ༻Λָʹ͍ͨ͠ ͕͠ى͖ͨ߹ʹΰϝϯφαΠ͢ΔϢʔβʔΛ࠷খݶʹ
αʔόʔʹΠϯετʔϧ͢ΔιϑτΣΞΛ࠷খݶʹ
NPDLNPDLͷઃܭ্ͷࢹ ༻͢ΔϦιʔεඞཁ࠷ݶʹ͍ͨ͠ ͪΖΜݪՁগͳ͍ํ͕͍͍ ӡ༻Λָʹ͍ͨ͠ ͕͠ى͖ͨ߹ʹΰϝϯφαΠ͢ΔϢʔβʔΛ࠷খݶʹ
αʔόʔʹΠϯετʔϧ͢ΔιϑτΣΞΛ࠷খݶʹ
͜ΕΒΛ;·͑ͯ NPDLͷਖ਼ମΛܾΊΑ͏
NPDLͷਖ਼ମ αʔόʔ ίϯςφ ϓϩηε εϨου ᩵ ࣭ૉ
NPDLͷਖ਼ମ αʔόʔ ίϯςφ ϓϩηε εϨου ᩵ ࣭ૉ ϓϩηε͕ࢮΜͩΒ૯่Εͩ͠ɺ NPDLͷΞοϓσʔτฒΈἧ͑ͳ͖Ό
·ͩ᩵ͩ͠ɺ αʔόʔʹ%PDLFSΛΠϯετʔϧ͠ͳ͖Ό ͍͘ΒͳΜͰ᩵͗͢Δ ͪΐ͏Ͳ͍͍
NPDLͷਖ਼ମ ϓϩηε εΫϦϓτݴޠ ίϯύΠϧݴޠ αʔόʔʹ࣮ߦڥΛΠϯετʔϧ͠ͳ͖Ό ୯ҰόΠφϦΛ࡞Εɺ ΄΅ૉͷαʔόʔͰ͍͚ͦ͏ʂ
͜ͷNPDLΛಈ͔͢αʔόʔͷ Ϧιʔε֬อઓུΛܾΊΑ͏
NPDLαʔόʔ NPDLαʔόʔ Ϧιʔε֬อʢ্ख͡Όͳ͍7FSʣ
NPDLαʔόʔ NPDLαʔόʔ NPDLαʔόʔ Ϧιʔε֬อʢ্ख͡Όͳ͍7FSʣ
NPDLαʔόʔ NPDLαʔόʔ NPDLαʔόʔ ϝϯς͠·͢ʂ ͓Βͤ͢ΔϢʔβʔ͕͍ͬͺ͍ʜ Ϧιʔε֬อʢ্ख͡Όͳ͍7FSʣ
NPDLαʔόʔ NPDLαʔόʔ NPDLαʔόʔ NPDLఀࢭ͠·͢ ٧ΊΕۭ͖ͦ͏ʜ NPDLఀࢭ͠·͢ Ϧιʔε֬อʢ্ख͡Όͳ͍7FSʣ
とはいえ、 誰がどのぐらいmockを起動するか 予測できないしなぁ…
それなら予測できるように すればいいじゃない!
NPDLͷಉ࣌ՔಇΛ Ϣʔβʔʹઃఆͯ͠Β͏ ͦ͏ͩɺྉۚମܥͱඥ͚Α͏ʂ
NPDLαʔόʔ NPDLαʔόʔ NPDLαʔόʔ Ϧιʔε֬อʢ্ख7FSʣ
NPDLαʔόʔ NPDLαʔόʔ NPDLαʔόʔ Ϧιʔε֬อʢ্ख7FSʣ
NPDLαʔόʔ NPDLαʔόʔ NPDLαʔόʔ Ϧιʔε֬อʢ্ख7FSʣ ϝϯς͠·͢ʂ ͓Βͤ͢ΔϢʔβʔ͕গͳ͍
NPDLαʔόʔ NPDLαʔόʔ αʔόʔ͕ফͤͨʂ ͍ͬͯΔNPDL͞ΕͯΔʂ Ϧιʔε֬อʢ্ख7FSʣ NPDLఀࢭ͠·͢ NPDLఀࢭ͠·͢
NPDLαʔόʔ NPDLαʔόʔ NPDLαʔόʔ NPDLͰͳ͘ΩϟύγςΟʹΑΔ՝ۚͳͷͰɺ ͜Μͳঢ়ଶͰՔಇ͍ͯͯ͠௧͘ͳ͍ Ϧιʔε֬อʢ্ख7FSʣ
͜ͷϦιʔε֬อઓུͰ γεςϜશମΛಈ͔ͦ͏
Web Web Worker Worker EFMBZFE@KPC Cron ՔಈϩάΛ4ʹΞοϓϩʔυ Քಈϩάͷूܭ εςʔλεมߋཁٻ NPDLىಈཁٻ
ఆظతʹΠϯελϯεΛνΣοΫ͠ɺ ՔಈNPDL͕ͳ͚ΕΠϯελϯεΛআ͢Δ Mock Mock Mock Mock Mock NPDLىಈ γεςϜશମͷಈ࡞
Web Worker ۭ͖͕ແ͚Εɺ&$ΠϯελϯεΛ ৽ͨʹىಈ ۭ͖͕͋Δ.PDLαʔόʔΛ୳ͯ͠ ىಈτϦΨʔϑΝΠϧΛஔ͘ ىಈτϦΨʔϑΝΠϧΛݕͯ͠NPDLΛىಈ ͦͷࡍɺ4͔ΒNPDLͷઃఆϑΝΠϧΛड͚औΔ Mock ۭ
Mock ຬ Mock ຬ Mock ຬ Mock ຬ NPDLͷىಈ
5PXFSϓϩηε NPDLͷىಈऴྃɺϩάऩूΛ࢘Δཧϓϩηε &$ىಈ࣌ʹ4͔ΒόΠφϦΛऔಘ NPDLαʔόʔͷத Tower Mock Mock Mock Worker Mock
Trigger Files .PDLϓϩηε NPDLͷׂΛ͢Δϓϩηε 5PXFS͔Βىಈ͞ΕΔͱ͖ʹɺ ·ͩແ͚Ε 4͔Β ɹόΠφϦΛऔಘ ىಈ࣌ʹ4͔ΒઃఆϑΝΠϧΛऔಘ͠ɺͦΕʹԊͬͯ ɹݻ༗ͷಈ࡞Λ࣮ݱ ૄ݁߹ ඇಉظ ϝϯςφϯεϑϦʔ τϦΨʔϑΝΠϧ "NB[PO.2
NPDLNPDL ͷ։ൃ
NPDLNPDLͷ։ൃ্ͷΈ ϩʔΧϧͰͷ݁߹ςετ͕ ͱʹ͔͘Γʹ͍͘ʂ
ͦ͜ʹݱΕͨٹੈओʂ
ͦ͜ʹݱΕͨٹੈओʂ AmazonLinuxの イメージもあるよ!
EFMBZFE@KPC ՔಈϩάΛ.*/*0ʹΞοϓϩʔυ Քಈϩάͷूܭ εςʔλεมߋཁٻ NPDLىಈཁٻ ఆظతʹΠϯελϯεΛνΣοΫ͠ɺ ՔಈNPDL͕ͳ͚ΕΠϯελϯεΛআ͢Δ NPDLىಈ %PDLFSͰ݁߹ςετ WEB
Worker Cron Mock Aggregator CloudStorage
NPDLNPDLͷઃܭ NPDLͷਖ਼ମ Ϧιʔε֬อ γεςϜશମͷಈ࡞ NPDLNPDLͷ։ൃ
σόοά ຊͷ·ͱΊ ָ͍ͯͬ͠ͺ͍Ք͍͗ͨ ୯ҰόΠφϦʹΑΔϓϩηε ΩϟύγςΟ ϐλΰϥεΠον ͕ΜͬͯΔ %PDLFSͰϐλΰϥεΠον
5IBOLZPV NPDLNPDL ݕࡧ 無料枠もあるので使ってみてね!