Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
20191011_devio_osaka.pdf
Search
sutetotanuki
October 11, 2019
2.6k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
20191011_devio_osaka.pdf
sutetotanuki
October 11, 2019
More Decks by sutetotanuki
See All by sutetotanuki
数案件を同時に進行するためのコンテキスト整理術
sutetotanuki
2
450
高速開発のためのコード整理術
sutetotanuki
1
1.1k
Next.js 16の新機能 Cache Components について
sutetotanuki
0
710
Vercel AI SDK を使って Next.js で AIアプリケーションを 作成する方法のご紹介
sutetotanuki
0
2k
WEBエンジニア向けAI活用入門
sutetotanuki
0
1.1k
ブラウザ上で実行され、 AIアシスタント付きデータベース postgres.new を触ってみた
sutetotanuki
0
590
今時のCookie事情
sutetotanuki
0
770
高速案件立ち上げで使われるマッハテンプレートのフロントエンド技術選定
sutetotanuki
2
2.2k
Core Web Vitals を改善する Next.js の機能群
sutetotanuki
1
2.7k
Featured
See All Featured
HDC tutorial
michielstock
2
860
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
1
400
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.9k
How to train your dragon (web standard)
notwaldorf
97
6.8k
New Earth Scene 8
popppiees
3
2.5k
Embracing the Ebb and Flow
colly
88
5.2k
Abbi's Birthday
coloredviolet
3
9.9k
Six Lessons from altMBA
skipperchong
29
4.5k
Rails Girls Zürich Keynote
gr2m
96
14k
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
780
The World Runs on Bad Software
bkeepers
PRO
72
12k
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
490
Transcript
جૅ͔ΒֶͿ"84্ͰͷΠϯλʔωοτํ௨৴ͱͦͷൺֱ $9ࣄۀຊ෦ ొஃऀాক
εϥΠυޙͰೖख͢Δ͜ͱ͕ग़དྷ·͢ͷͰ ൃදதͷ༰ΛϝϞ͢Δඞཁ͋Γ·ͤΜɻ ࣸਅࡱӨΛ͢Δ߹ ϑϥογϡɾγϟολʔԻ͕ग़ͳ͍Α͏ʹྀ͍ͩ͘͝͞ Attention
#cmdevio
ࣗݾհ ాক wαʔόʔαΠυΤϯδχΞ w"84ߏங ϞόΠϧΞϓϦͷόοΫΤϯυ"1* w"OESPJE /&8 w͖ͳ"84αʔϏε
w4 &$4 wۀͰ༻͢Δݴޠ w3VCZ (P 1ZUIPO +BWB4DSJQU ,PUMJO
࠷ॳͷ࣭͝ AWSΛ͓ࣄͰͬͯΔํ͍·͔͢ʁ
ຊ͓͢Δ͜ͱ w)551Ͱͷํ௨৴ͷجૅ w"84Ͱͷ࣮ݱํ๏ w&$୯ମ w"-# &$ w"1*(BUFXBZ 8FC4PDLFU
-BNCEB w"84*P5 .255PWFS8FC4PDLFU
)551Ͱͷํ௨৴ͷجૅ
)551Ͱͷํ௨৴ͷ༻్ wαʔόʔ͔ΒΫϥΠΞϯτʹର͠αʔόʔͷλΠϛϯάͰૹ৴͍ͨ͠ wνϟοτήʔϜͷΑ͏ʹͱͯࡉ͔ͳϝοηʔδΛසൟʹૹड৴͢ Δ ௨ සൟʹύέοτૹΔ
)551ͱʁ )ZQFS5FYU5SBOTGFS1SPUPDPMͷུ ͦͦυΩϡϝϯτΛૹड৴͢ΔͨΊʹ։ൃ͞Εͨ ϓϩτίϧ ͦͷ໊ͷ௨Γ)5.- )ZQFS5FYU.BSLVQ-BOHVBHF Λૹड৴͢Δ༻్ʹओʹΘΕΔ ը૾ɺԻɺө૾ͳͲͷόΠφϦσʔλΛૹड৴͢Δ༻
్ʹΘΕΑ͏ʹͳͬͨ
)551ͷओͳྲྀΕ 1045QBUI)551aSaO $POOFDUJPODMPTFaSaO $POUFOU-FOHUIaSaO $POUFOU5ZQFUFYUIUNMaSaO aSaO ʜ3FRVFTU#PEZʜ )5510,aSaO $POOFDUJPODMPTFaSaO
$POUFOU-FOHUIaSaO $POUFOU5ZQFUFYUIUNMaSaO aSaO ʜ3FTQPOTF#PEZʜ ϦΫΤετ Ϩεϙϯε ΫϥΠΞϯτ ओʹϒϥβ ͔ΒϦΫΤετΛૹ৴͠ɺͦΕΛड͚ औͬͨαʔόʔ͕ϦΫΤετΛղੳ͠ϨεϙϯεΛฦ͢
)551ͷओͳྲྀΕ 1045QBUI)551aSaO $POOFDUJPODMPTFaSaO $POUFOU-FOHUIaSaO $POUFOU5ZQFUFYUIUNMaSaO aSaO ʜ3FRVFTU#PEZʜ )5510,aSaO $POOFDUJPODMPTFaSaO
$POUFOU-FOHUIaSaO $POUFOU5ZQFUFYUIUNMaSaO aSaO ʜ3FTQPOTF#PEZʜ ϦΫΤετ Ϩεϙϯε ΫϥΠΞϯτ ओʹϒϥβ ͔ΒϦΫΤετΛૹ৴͠ɺͦΕΛड͚ औͬͨαʔόʔ͕ϦΫΤετΛղੳ͠ϨεϙϯεΛฦ͢ ϝιου ϓϩτίϧ ύε #PEZͷαΠζ #ZUF ίωΫγϣϯͷऔΓѻ͍ ,FFQBMJWFίωΫγϣϯͷҡ࣋ DMPTF௨৴ޙஅ͢Δ
)551ͷίωΫγϣϯ wΫϥΠΞϯτଆ͔Βͷଓཁٻʹαʔόʔ͕Ԡ͢Δ͜ͱͰ5$1ίωΫγϣϯཱ͕֬͞Εɺཱ֬ ͞ΕͨίωΫγϣϯΛͬͯ)551ͷ௨৴ʹඞཁͳσʔλΛૹड৴͢Δ w)551ͰΫϥΠΞϯτ͕σʔλͷαʔόʔͷૹ৴ͨ͠σʔλͷड৴Λऴ͑ΕίωΫγϣϯΛ ऴྃ͢Δ wμϯϩʔυຖʹଓͷ։࢝ͱऴྃΛߦ͏
5$1ͱ w5$1σʔλΛૹ৴͢ΔͨΊͷϓϩτίϧ wૹ৴ଆͰʜͱσʔλΛίωΫγϣϯʹॻ͖ࠐΉ ͱɺͦΕΛͦͷ··ड৴ଆͰड৴Ͱ͖Δ͜ͱ͕อূ͞ΕΔ
5$1ͱ6%1 w5$1εςʔτϑϧͳଓɻଓ͔ͯ͠Βσʔλૹड৴Λߦ͍໌ࣔత ʹऴྃ͢Δ·ͰίωΫγϣϯҡ࣋͞ΕΔ w6%1εςʔτϨεͳଓɻҰํతʹσʔλΛ͛Δ͚ͩͰίωΫ γϣϯऴྃ͢Δ
ίωΫγϣϯͱ wΫϥΠΞϯτͱαʔόʔཧతʹ͢Ͱʹͭͳ͕͍ͬͯ ΔͣͳͷʹίωΫγϣϯΛཱ֬͢ΔͱͲ͏͍͜ͱʁ w5$1ͷίωΫγϣϯΛཱ֬͢Δͱɺ௨৴૬खͷใΛί ωΫγϣϯͷใͱͯ͠อ࣋͢Δ͜ͱ wίωΫγϣϯϝϞϦʹอ࣋͞ΕΔɻΫϥΠΞϯτʹඞཁ ͳίωΫγϣϯҰͭͷΈ͕ͩɺαʔόʔଆଓ͖ͯͨ͠ ͯ͢ͷΫϥΠΞϯτͷใΛอ࣋͠ͳ͍ͱ͍͚ͳ͍
ຖճଓΛऴྃ͢Δͷʁ wίωΫγϣϯΛҡ࣋͢Δඞཁ͕ͳ͍ͨΊ8&#αʔόʔଆͰίωΫγϣϯΛอ͓࣋ͯ͘͠ ඞཁ͕ͳ͍ wͦͷͨΊ8&#αʔόʔͷεέʔϧΞτ͕୯७ʹՃ͢Δ͚ͩͰΑ͘༰қʹͳΔ w͜ͷ༰қʹεέʔϧΞτͰ͖Δಛੑ͕രൃతʹ૿͑ͨ8&#Λࢧ͑ͨͱ͍͏ଆ໘͋Δ
ίωΫγϣϯΛຖճऴྃ͢ΔσϝϦοτ wίωΫγϣϯΛཱ֬͢Δʹ8BZ)BOETIBLFɺ)551ϔομͷ ΓͱΓͷίετ͕ଓίετ͕ൃੜͯ͠͠·͍ɺ͜·͔ͳύέοτ ΛසൟʹΓऔΓ͢Δ߹ʹΦʔόʔϔου͕େ͖͘ͳͬͯ͠·͏ wຖճଓ͢Δαʔόʔ͕ҟͳΔՄೳੑ͕͋ΔͷͰɺϩάΠϯ͕ඞཁͳ αʔϏεͷΑ͏ͳ6TFSͷࣝผ͕ඞཁͳέʔεͩͱ4FTTJPO4UPSF ͷ͕ඞཁʹͳΔ wଓΛดͯ͡͠·͏ͷͰҙͷλΠϛϯάͰͷํ௨৴͕Ͱ͖ͳ͘ ͳΔ
)551Ͱηογϣϯͷ࣮ݱํ๏ wຖճίωΫγϣϯΛஅ͢ΔͷͰɺίωΫγϣϯͱίωΫ γϣϯͷඥ͚͕ඞཁʹͳΔ wຖճଓ͢Δαʔόʔ͕ҟͳΔՄೳੑ͕͋ΔͷͰɺϩάΠϯ ͕ඞཁͳαʔϏεͷΑ͏ͳϢʔβʔͷࣝผ͕ඞཁͳέʔεͩ ͱ4FTTJPO4UPSFͷ͕ඞཁʹͳΔ
(&5)551QBUIaSaO $POOFDUJPO6QHSBEFaSaO 6QHSBEFXFCTPDLFUaSaO aSaO 8FC4PDLFUͱ )5514XJUDIJOH1SPUPDPMTaSaO 6QHSBEFXFCTPDLFUaSaO $POOFDUJPO6QHSBEFaSaO aSaO
ϦΫΤετ Ϩεϙϯε )551Ͱར༻͍ͯͨ͠51$ηογϣϯΛͬͯɺίωΫγϣϯΛҡ ࣋ͨ͠εςʔτϑϧͳσʔλͷૹड৴Λߦ͏ͨΊͷϓϩτίϧ
(&5)551QBUIaSaO $POOFDUJPO6QHSBEFaSaO 6QHSBEFXFCTPDLFUaSaO aSaO 8FC4PDLFUͱ )5514XJUDIJOH1SPUPDPMTaSaO 6QHSBEFXFCTPDLFUaSaO $POOFDUJPO6QHSBEFaSaO aSaO
ϦΫΤετ Ϩεϙϯε )551ϔομΛར༻͠ɺϓϩτίϧͷΞοϓάϨʔυ ม Λߦ͏ )551Ͱར༻͍ͯͨ͠5$1ίωΫγϣϯͷ͍ํ͚ͩΛม͑Δ ίωΫγϣϯͷऔΓѻ͍ ,FFQBMJWFίωΫγϣϯͷҡ࣋ DMPTF௨৴ޙஅ͢Δ 6QHSBEFϓϩτίϧΛΞοϓάϨʔυ 6QHSBEF͢Δϓϩτίϧ
8FC4PDLFUͷϓϩτίϧ )551ͷͨΊʹଓ͞ΕͨίωΫγϣϯ 5$1 Λ6QHSBEF)551)FBEFSʹΑͬͯ 8FC4PDLFU༻ʹ6QHSBEF͢Δɻ ۩ମతʹαʔόʔͱΫϥΠΞϯτؒͰ5$1 ίωΫγϣϯͷ্Ͱ௨৴͢ΔϓϩτίϧΛ )551͔Β8FC4PDLFUʹม͑Δ߹ҙΛͱΔ ͜ͱ
ίωΫγϣϯΛஅ͢Δ)551͔Β 8FC4PDLFUʹҕͶΒΕΔͨΊಉ͡ίωΫ γϣϯΛ͍͚ͭͮΕΔ
8FC4PDLFUͷϑϨʔϜ 0 1 2 3 0 1 2 3
4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-------+-+-------------+-------------------------------+ |F|R|R|R| opcode|M| Payload len | Extended payload length | |I|S|S|S| (4) |A| (7) | (16/64) | |N|V|V|V| |S| | (if payload len==126/127) | | |1|2|3| |K| | | +-+-+-+-+-------+-+-------------+ - - - - - - - - - - - - - - - + | Extended payload length continued, if payload len == 127 | + - - - - - - - - - - - - - - - +-------------------------------+ | |Masking-key, if MASK set to 1 | +-------------------------------+-------------------------------+ | Masking-key (continued) | Payload Data | +-------------------------------- - - - - - - - - - - - - - - - + : Payload Data continued ... : + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + | Payload Data continued ... | +---------------------------------------------------------------+ 8FC4PDLFUͰɺ௨৴͢ΔσʔλΛϑϨʔϜͱ͍͏୯ҐͰૹड৴͠ɺ ίωΫγϣϯΛҡ࣋ͨ͠··ɺԿճૹड৴͢Δ͜ͱ͕ՄೳʹͳͬͯΔ
8FC4PDLFUͷϑϨʔϜ 0 1 2 3 0 1 2 3
4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-------+-+-------------+-------------------------------+ |F|R|R|R| opcode|M| Payload len | Extended payload length | |I|S|S|S| (4) |A| (7) | (16/64) | |N|V|V|V| |S| | (if payload len==126/127) | | |1|2|3| |K| | | +-+-+-+-+-------+-+-------------+ - - - - - - - - - - - - - - - + | Extended payload length continued, if payload len == 127 | + - - - - - - - - - - - - - - - +-------------------------------+ | |Masking-key, if MASK set to 1 | +-------------------------------+-------------------------------+ | Masking-key (continued) | Payload Data | +-------------------------------- - - - - - - - - - - - - - - - + : Payload Data continued ... : + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + | Payload Data continued ... | +---------------------------------------------------------------+ ϖΠϩʔυσʔλͷछྨ ςΩετϑϨʔϜɺ όΠφϦϑϨʔϜ ͕͋Δ ίωΫγϣϯͷऴྃΛද͢ DMPTF͜͜Ͱࢦఆ͢Δ ϖΠϩʔυσʔλͷαΠζ ͜ͷαΠζ͚ͩσʔλΛ ಡΈࠐΉ αΠζ͚ͩετϦʔϜ͔ΒಡΉ
.255ͷϓϩτίϧ w#SPLFSͱݺΕΔϝοηʔδͷதܧΛߦ͏ׂͷαʔόʔ͕͍Δ wΫϥΠΞϯττϐοΫͱݺΕΔνϟϯωϧʹ1VCMJTI ૹ৴ ͢Δ͜ͱͰ4VCTDSCF ड৴ɺߪ ಡ ͍ͯ͠ΔଞͷશΫϥΠΞϯτʹର͠σʔλΛૹ৴͢Δ͜ͱ͕Ͱ͖Δɻ w.255ʹ͓͚ΔΫϥΠΞϯτͱ#SPLFSʹଓ͢Δͯ͢Ͱ͋Γɺྫ͑*P5ػثϒϥβ
ΫϥΠΞϯτͰɺ*P5ηϯαʔσʔλΛूΊΔΤϯυϙΠϯτ)5514FSWFSΫϥΠΞϯτ
.255ͷػೳ w͋ΔಛఆͷΫϥΠΞϯτΫϥΠΞϯτάϧʔϓʹϝοηʔ δΛૹͬͨΓ͢ΔϧʔςΟϯάػೳ͕͋Δ wΦϑϥΠϯʹૹΒΕͨϝοηʔδΛ࠶ૹ৴ͨ͠Γ͢Δɺ࠶ ૹػೳ͕͋Δ
.255ͷϝοηʔδϑΥʔϚοτ .255ͰݻఆϔομʔͱϖΠϩʔυͱ͍͏ߏͰϝοηʔδϑΥʔϚοτʹ ͳ͍ͬͯΔ Ϗοτ
όΠτ ϝοηʔδɾλΠϓ %61ϑϥά 2P4Ϩϕϧ 3&5"*/ όΠτ Γͷ͞ όΠτʙ 1BZMPBE ʜ ʜ
.255ͷϝοηʔδϑΥʔϚοτ .255Ͱɺ௨৴͢ΔσʔλΛϝοηʔδͱ͍͏୯ҐͰૹड৴͠ɺ ίωΫγϣϯΛҡ࣋ͨ͠··ɺԿճૹड৴͢Δ͜ͱ͕ՄೳʹͳͬͯΔ Ϗοτ
όΠτ ϝοηʔδɾλΠϓ %61ϑϥά 2P4Ϩϕϧ 3&5"*/ όΠτ Γͷ͞ όΠτʙ 1BZMPBE ʜ ʜ ϝοηʔδͷछྨ $0//&$5 ଓཁٻ ɺ $0//"$, ଓཁٻԠ ɺ 16#-*4) ૹ৴ ɺ 46#4$3*#& ड৴ ɺ %*4$0//&$5 அ ͕͋Δ Γͷ͞ͷ αΠζ͚ͩσʔλΛ ಡΈࠐΉ αΠζ͚ͩετϦʔϜ͔ΒಡΉ
.255PWFS8FC4PDLFU 5$1ͷ্Ͱ8FC4PDLFUͷόΠφϦ ϑϨʔϜΛΓऔΓ͠ɺͦͷόΠφϦ ϑϨʔϜͰ.255ͷϝοηʔδϑΥʔ ϚοτΛૹड৴͍ͯ͠Δ ͦͷΦʔόʔϔου͕͋Δ͕ɺ .255ͷػೳΛࣗͰ࣮͠ͳͯ͘͢ Ή
"84Ͱͷ࣮ݱํ๏
"84Ͱͷ࣮ݱํ๏ w&$୯ମ w"-# "QQMJDBUJPO-PBE#BMBODFS &$ w"1*(BUFXBZ -BNCEB w.255PWFS8FC4PDLFU
"84*P5
EC2 ୯ମ
&$୯ମ &$্ʹ8FC4PDLFUαʔόʔΛߏங ͠ΫϥΠΞϯτ͕&$ʹଓ͢ Δ ϒϩʔυΩϟετ͍ͨ͠߹ଓࡁ ΈͷશίωΫγϣϯʹॻ͖ࠐΉ͚ͩͰ ͖Δ ηογϣϯใΞϓϦέʔγϣϯͷ ϝϞϦʹͰͷ͓͚ͯ͢͠Ή
&$ϒϩʔυΩϟετ Ұ੪ૹ৴ ଓ͞Ε͍ͯΔͯ͢ͷίωΫγϣϯ ͕&$্ͷϝϞϦʹอ࣋͞Ε͍ͯΔͷ ͰͦͷίωΫγϣϯʹσʔλΛૹ৴͠ ͍͚ͯϒϩʔυΩϟετ͢Δ͜ͱ͕ Ͱ͖Δ
&$୯ମͷ wεέʔϧ͠ͳ͍ͨΊϢʔβʔͷ૿ՃʹରԠͰ͖ͳ͍ɻ wίωΫγϣϯΛอଘ͓ͯ͘͠ϝϞϦͷݶքɺίωΫγϣϯ ʹॻ͖ࠐΊΔͷݶք͕͋Δ wͷΈͰӡ༻͞Ε͍ͯΔͷͰɺ͜ͷ&$ʹো͕ى͖Ε ଈ࣌ʹαʔϏεதஅʹͳͬͯ͠·͏
EC2 + ALB
&$ "-# "-#Λϩʔυόϥϯαʔͱͯ͠ &$ͷલஈʹ͓͍ͨύλʔϯ &$Λ૿͢͜ͱͰεέʔϧ͢Δ͜ ͱ͕Ͱ͖ɺߏʹͳΓো ੑ͕͕͋Δ
&$ "-#ͷσϝϦοτ wશһʹϒϩʔυΩϟετ͍ͨ͠έʔεͳͲͰ&$ಉ࢜ͷί ϛϡχέʔγϣϯ͕ඞཁʹͳΔ w࠶ଓ͞Εͨͱ͖ʹಉ͡&$ʹৼΒΕΔͱݶΒͳ͍ͷͰɺ ηογϣϯΛ֎෦ʹอ͓࣋ͯ͘͠ඞཁ͕͋Δ wίωΫγϣϯ͕ҡ࣋͞ΕΔͷͰ͏·͘όϥϯγϯά͢Δͷ ͕͍͠
&$ "-#ͷଓͷৼΓ͚ όϥϯγϯά wίωΫγϣϯ͕ଓ͞Εͬͺͳ͠ʹͳΔͷͰ৽͍͠&$Λ Ճͨ࣌͠ʹطଘͷ&$͔ΒίωΫγϣϯΛ৽͍͠&$ʹ ৼΓ͚Δͷ͕͍͠ɻఆظతʹ࠶ଓ͢ΔͳͲόϥϯγ ϯάͤ͞Δ͕ඞཁʹͳΔ
&$ "-# &MBTUJ$BDIF &$ "-#ͷޙΖʹ&MBTUJ$BDIFΛ͓͍ͨύλʔϯ &MBTUJ$BDIFͷׂͱͯ̎ͭ͠ ! 1VC4VCͰ&$ؒͷϝοηʔδϯάϋϒΛ୲͏ !
ηογϣϯετΞ
&$ "-# &MBTUJ$BDIFͷϒϩʔυΩϟετ ϒϩʔυΩϟετ͢Δʹͯ͢ͷ&$ʹଓ͞Ε͍ͯΔͯ͢ͷί ωΫγϣϯʹૹ৴͠ͳ͍ͱ͍͚ͳ͍ɻ ͦͷͨΊʹ&MBTUJ$BDIFΛͬͯશ&$ϝοηʔδΛૹ৴͠ɺͦͷ &$্ʹଓ͞Ε͍ͯΔίωΫγϣϯશͯʹର͠ૹ৴Λߦ͏͜ͱͰϒ ϩʔυΩϟετ͢Δ͜ͱ͕Ͱ͖Δ
API Gateway(WebSocket) + Lambda
"1*(BUFXBZ 8FC4PDLFU -BNCEB 8FC4PDLFUରԠ͞Εͨ"1* (BUFXBZΛར༻ͨ͠ύλʔϯ αʔόʔϨεͰߏஙͰ͖ΔͨΊ &$ͷཧ͕ෆཁ Կ͠ͳͯ͘༧Ίઃఆ͞Εͨ
੍ݶ·Ͱࣗಈతʹεέʔϧ͢Δ ͣ
"1*(BUFXBZ 8FC4PDLFU -BNCEB ΫϥΠΞϯτ͔Βૹ৴͞Εͨϝοηʔδͱىಈ͢Δ-BNCEBͷରԠ 3VMF4FMFDUJPO&YQSFTTJPOʹઃఆ͞ΕͨʹͦͬͯߦΘΕΔ ଓͱஅͳͲͷಛघͳΠϕϯτ༻ҙ͞Ε͍ͯΔ Πϕϯτ આ໌
DPOOFDU ΫϥΠΞϯτͱͷίωΫγϣϯͷཱ֬࣌ EJTDPOOFDU ΫϥΠΞϯτͱͷίωΫγϣϯͷஅ࣌ EFGBVMU ͲͷϧʔτͱϚον͠ͳ͍
"1*(BUFXBZ 8FC4PDLFU 3VMF4FMFDUJPO&YQSFTTJPO 3VMF4FMFDUJPO&YQSFTTJPOͱૹΒΕ͖ͯͨϑϨʔϜͷ+40/ͷύ εΛࢦఆͯ͠ɺͦͷΛͱʹ-BNCEBΛৼΓ͚Δ SPVUF,FZʹSFRVFTUCPEZBDUJPO͕ઃఆ͞Ε͍ͯͨ߹+40/ ͷzBDUJPOzϑΟʔϧυͷΛͱʹϧʔςΟϯά͞ΕΔ { “action”:
“sendmessage”, “data”: { “message”: “Hello World” } } lTFOENFTTBHFzʹରԠͨ͠ -BNCEB͕ىಈ͢Δ
"1*(BUFXBZ 8FC4PDLFU -BNCEBͷίωΫγϣϯ -BNCEBϝοηʔδΛॲཧ͢Δ͔ؒ͠ىಈ͠ͳ͍ͨΊɺৗ࣌ଓ ͞Ε͍ͯΔίωΫγϣϯΛҡ࣋͢Δ͜ͱͰ͖ͳ͍ʢҡ࣋ͯ͠͠· ͑-BNCEBͷϝϦοτ͕ͳബ͘ͳͬͯ͠·͏ ίωΫγϣϯ"1*(BUFXBZͱΫϥΠΞϯτͷؒͰཱ֬͞Εҡ࣋
͞ΕΔ
"1*(BUFXBZ -BNCEB %ZOBNP%#ϒϩʔυΩϟετ -BNCEB͔Β"1*(8ʹଓ͞Ε͍ͯΔͯ͢ͷίωΫγϣϯΛѲ ͢Δͷ୯ମͰෆՄೳͰɺ-BNCEBͷFWFOUʹ͞ΕΔ DPOOFDUJPO*EΛ%ZOBNP%#ʹอଘ͠ɺอଘ͞Ε͍ͯΔͯ͢ͷ DPOOFDUJPO*Eʹର͠σʔλΛૹ৴͢Δ͜ͱͰϒϩʔυΩϟετ͢Δ Ϣʔβʔ͕ଟ͍߹ɺ%ZOBNP%#ͷίετ͕ଟ͔͔ͬͯ͘͠·͏ Մೳੑ͕͋Δ
"1*(BUFXBZ8FC4PDLFUͷྉۚ ྉۚ ϦΫΤετ࠷ॳͷԯ ສϝοηʔδ͋ͨΓ64% ϦΫΤετԯҎ্ ສϝοηʔδ͋ͨΓ64% ଓ࣌ؒ ສ NJOVUVT
͋ͨΓ64% ສϢʔβʔ͕ຖϝοηʔδΛૹड৴͢Δͱ
"1*(BUFXBZ8FC4PDLFUͷ੍ݶ Πϕϯτ ੍ݶ ಉ࣌ଓ ඵ͋ͨΓͷ৽نଓ ଓ࣌ؒ ࣌ؒ ແ௨৴ଓͷλΠϜΞτ
AWS IoT
"84*P5 .255PWFS8FC4PDLFU "84*P5͕αϙʔτ͍ͯ͠Δ.255 PWFS8FC4PDLFUΛ͏ύλʔϯ ΫϥΠΞϯτଆ.255Ͱ௨৴͢Δ ඞཁ͕͋Γɺϒϥβ +BWB4DSJQU Ͱར༻͢Δ߹ɹ.255༻ͷϥΠϒ ϥϦΛ͏ඞཁ͕͋Δ
1BIP αʔόʔϨεͰߏͰ͖ΔͷͰ&$ ͷཧ͕ඞཁͳ͘ͳΔ "84*P5ͷ੍ݶ·ͰεέʔϧͰ͖Δ
"84*P5ϒϩʔυΩϟετ 5PQJDʹ1VCMJTI͢Δͱαϒε ΫϥΠϒ͍ͯ͠Δͯ͢ͷΫϥ ΠΞϯτʹϒϩʔυΩϟετ͞ ΕΔ ྫ͑BMMτϐοΫΛͯ͢ͷ ΫϥΠϯτ͕αϒεΫϥΠϒ͢ Δͱ͓͚ͯ͠ɺશһʹϝοη ʔδΛϒϩʔυΩϟετ͢Δ͜
ͱ͕Մೳ
"84*P5ϢχΩϟετ ݸผૹ৴ .255ଓ࣌ͷ$MJFOU*%ΛUPQJDʹؚΊͦΕΛ4VCTDSJCFͤ͞Δ͜ͱ ͰݸผͷϝοηʔδΛૹΔ͜ͱ͕Ͱ͖Δ ·ͨɺϙϦγʔ "$- ʹ$MJFOU*%ΛؚΊΔ͜ͱ͕Ͱ͖ΔͷͰɺ 4VCTDSJCF͢ΔΫϥΠΞϯτΛߜΔ͜ͱ͕Ͱ͖Δ
"84*P5-BNCEB%ZOBNP%#࿈ܞ "84*P53VMFΞΫγϣϯΛͬͯ-BNCEBΛىಈ͠ɺ%ZOBNP%# ʹ֨ೲ͢Δ
"84*P5ίωΫγϣϯʹ͍ͭͯ ΫϥΠϯτͷίωΫγϣϯ"84*P5ͷ.255ϒϩʔΧʔ͕อ࣋͢ Δ
"84*P5ྉۚ ྉۚ ϦΫΤετ࠷ॳͷԯ ສϝοηʔδ͋ͨΓ64% ϦΫΤετԯҎ্ ສϝοηʔδ͋ͨΓ64% ϦΫΤετԯҎ্ ສϝοηʔδ͋ͨΓ64% ଓ࣌ؒ
ສ NJOVUVT ͋ͨΓ64%
"84*P5ͷ੍ݶ Πϕϯτ ੍ݶ ಉ࣌ଓ ඵ͋ͨΓͷ৽نଓ ແ௨৴ଓͷλΠϜΞτ
ʙඵͷؒͰΩʔϓΞϥΠϒΛνΣοΫ͠ΩʔϓΞ ϥΠϒͷִؒͷഒʹୡͨ͠ͱ͖ʹஅ 8FC4PDLFUͷଓ࣌ؒ ࣌ؒ "84ΞΧϯτ͋ͨΓͷඵؒͷ 1VCMJTIͰ͖Δ
ݸਓతͳॴײ
جຊతʹαʔόʔϨεͰ w࠷ॳ·ͣαʔόʔϨεΛݕ౼ͨ͠΄͏͕Αͦ͞͏ w"84*P58FC4PDLFUͰ.255Ͱجຊతʹஈ͕ มΘΒͳ͍ w"1*(BUFXBZͷ߹ίωΫγϣϯใΛऔΓѻ͏ͷʹ %ZOBNP%#͕ඞཁ wجຊతʹ"84*P5Ͱݕ౼͠ɺ8FC4PDLFUͰ͔͠Ͱ͖ͳ͍ ͜ͱ͕͋Ε"1*(BUFXBZΛݕ౼͢Δͷ͕Αͦ͞͏
"-# &$͕͍͍߹ wαʔόʔϨεΛݕ౼ͯ͠Έͯɺཁ݅Λຬͨͤͳ͍߹ʹݕ౼ ͢Δ wఆϢʔβʔ͕ͳͲͰɺ"84ͷ੍ݶʹҾ͔͔ͬΔՄೳੑ͕ ͋Δ߹ͳͲ wTPDLFUJPͳͲ͍׳ΕͨϥΠϒϥϦΛ࣮͍ͬͯͨ͠
·ͱΊ
·ͱΊ جຊతͳࣝͱ͍͏ͷ͑͘·͢ جຊతͳࣝΛ׆͔ͭͭ͠ ָ͍͠AWSϥΠϑΛ
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ʂ