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
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
410
高速開発のためのコード整理術
sutetotanuki
1
950
Next.js 16の新機能 Cache Components について
sutetotanuki
0
600
Vercel AI SDK を使って Next.js で AIアプリケーションを 作成する方法のご紹介
sutetotanuki
0
1.9k
WEBエンジニア向けAI活用入門
sutetotanuki
0
1k
ブラウザ上で実行され、 AIアシスタント付きデータベース postgres.new を触ってみた
sutetotanuki
0
530
今時のCookie事情
sutetotanuki
0
730
高速案件立ち上げで使われるマッハテンプレートのフロントエンド技術選定
sutetotanuki
2
2.1k
Core Web Vitals を改善する Next.js の機能群
sutetotanuki
1
2.6k
Featured
See All Featured
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
SERP Conf. Vienna - Web Accessibility: Optimizing for Inclusivity and SEO
sarafernandez
2
1.5k
The Cost Of JavaScript in 2023
addyosmani
55
10k
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
170
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
6k
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
370
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
62k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
56k
AI: The stuff that nobody shows you
jnunemaker
PRO
8
730
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
1
2.7k
Into the Great Unknown - MozCon
thekraken
41
2.6k
Claude Code のすすめ
schroneko
67
230k
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ϥΠϑΛ
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ʂ