AWS IoT Core๋ ?
ํ์ฌ ํ ๋ด์์ ์ฌ์ฉํ๊ณ ์๋ ์ฃผ์ ๊ธฐ์ ๋ก, ํ ์ด๋ฆ์ ๋ถํฉํ์ฌ ํ์ฉํ๋ ๊ธฐ์ ์ด๋ค.
AWS์์ ๋ง์ ์๋น์ค ์ข ๋ฅ๊ฐ ์๋ ๊ฒ์ ์๊ณ ์์์ผ๋, IoT๋ฅผ ํ์ฉํ ์ ์๋ ์๋น์ค๊ฐ ์๋ค๋ ๊ฒ์ ์ ์ฌํ๊ณ ์๊ฒ ๋์๋ค.
AWS IoT Core์ ์๋น์ค๋ฅผ ์์ฝํ์๋ฉด ๋ค์๊ณผ ๊ฐ๋ค.
๐ IoT ๊ธฐ๊ธฐ์ ํด๋ผ์ฐ๋๋ฅผ ์ฐ๊ฒฐํ์ฌ ๋ฐ์ดํฐ๋ฅผ ์์งํ๊ณ ์ ์ดํ๋ ๋ฐ ์ฌ์ฉ๋๋ ์๋น์ค๋ก, ๊ธฐ๊ธฐ๊ด๋ฆฌ, ๋ฐ์ดํฐ ์์ง ๋ฐ ๋ถ์์ ์ํ ์ค์ ํ๋ธ ์ญํ ์ํ
์ฆ, ๋ค๋ฅธ AWS ํด๋ผ์ฐ๋ ์๋น์ค ๋ฐ ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ธํฐ๋ท์ ์ฐ๊ฒฐ๋ ์ฅ์น์ ์ํธ์์ฉํ ์ ์๋๋ก IoT ์ฅ์น๋ฅผ ํด๋ผ์ฐ๋์ ์ฐ๊ฒฐํ๋ ์๋น์ค ์ ๊ณต
MQTT (Message Queuing Telemetry Transport)
IoT ๋๋ฐ์ด์ค์ ํด๋ผ์ฐ๋ ๊ฐ์ ๊ฒฝ๋ ํต์ ํ๋กํ ์ฝ ๐ ๋ฉ์์ง ๋ธ๋ก์ปค
์จ๋ ์กฐ์ ์ฅ์น์ ์ฐ๊ฒฐ๋ IoT ๊ธฐ๊ธฐ๊ฐ "24๋๋ก ์กฐ์ ํด๋ผ"๋ ๋ช ๋ น์ ๋ฐ๊ฒ ๋๋ ๋ฐ ์ด๋ MQTT๋ฅผ ํตํด ๋ช ๋ น์ ๋ฐ๊ณ , ์จ๋ ์กฐ์ ์ฅ์น๋ ๊ทธ ๋ช ๋ น์ ๋ง์ถฐ ๋์ํ๊ฒ ๋๋ค. ๋ช ๋ น์ ์์ฃผ ๊ฐ๋ณ๊ณ ๋น ๋ฅด๊ฒ ์ ์ก๋๋ฉฐ ์ธํฐ๋ท์ด ์ ์ ๋๊ธฐ๋๋ผ๊ณ ๋ค์ ์ฐ๊ฒฐ๋๋ฉด ๋ช ๋ น์ ๋ฐ์ ์ ์๋ค.
์ด๋ ๋ฏ IoT ๋๋ฐ์ด์ค์ ํด๋ผ์ด์ธํธ ์ฌ์ด์์ ๋ฉ์์ง ๋ธ๋ก์ปค๋ฅผ ํ์ฉํด ์ผ์ ๋ฐ์ดํฐ๋ ์ฅ๋น ์ํ๋ฅผ ์ค์๊ฐ์ผ๋ก ์ฃผ๊ณ ๋ฐ์์ผํ๋ค. ๊ทธ๋ฌํ ์ญํ ์ MQTT๊ฐ ์ํํ๋ ๊ฒ์ด๋ค.
๋ฉ์์ง ๋ธ๋ก์ปค๋ ์์ ์ ๊ตฌ๋ ํ ์ฅ์น์ Device Shadow ์๋น์ค ๋ฐ ๊ท์น ์์ง๊ณผ ๊ฐ์ ๋ค๋ฅธ AWS IoT Core ์๋น์ค์ ์ฅ์น ๋ฐ์ดํฐ๋ฅผ ๋ฐฐํฌํ๋ค.
Device Shadow
IoT ๋๋ฐ์ด์ค์ ํ์ฌ ์ํ๋ ์ํ๋ ์ํ๋ฅผ ํด๋ผ์ฐ๋์ ์ ์ฅํ๋ฉฐ JSON ๋ฌธ์๋ก ํํ๋จ
AWS IoT Device Shadow
- ๋๋ฐ์ด์ค๊ฐ ์คํ๋ผ์ธ์ด๊ฑฐ๋ ๋คํธ์ํฌ๊ฐ ๋ถ์์ ํ ๋ ๋๋ฐ์ด์ค์ ์ํ๋ฅผ ์กฐํํ๊ฑฐ๋ ์ ๋ฐ์ดํธ ๊ฐ๋ฅ
โณ๏ธ Reported State
- ๋๋ฐ์ด์ค๊ฐ ํ์ฌ ์์ ์ ์ํ(์จ๋, ์ ์ ๋ฑ)๋ฅผ ํด๋ผ์ฐ๋์ ๋ณด๊ณ
โณ๏ธ Desired State
- ์ฌ์ฉ์๊ฐ ๋๋ฐ์ด์ค์ ์ํ๋ ์ํ ์ค์
- ์จ๋, ์ ์, ํ๋ ๋ฑ ์กฐ์
โณ๏ธ Delta
- Desired State์ Reported State๋ฅผ ๋น๊ตํ์ฌ ๋๋ฐ์ด์ค๊ฐ ์ด๋ค ์ํ๋ก ๋ฐ๋์ด์ผ ํ๋์ง ์ ์ ์๋๋ก ํจ
โด๏ธ ์ด๊ธฐ์ํ ๋ฌธ์
{
"state": {
"reported": {
"color": "blue"
}
},
"version": 9,
"timestamp": 123456776
}
โด๏ธ ์ ๋ฐ์ดํธ 1
{
"state": {
"desired": {
"color": "RED"
}
},
"version": 10,
"timestamp": 123456777
}
โด๏ธ ๋ธํ ๋ฉ์์ง
{
"state": {
"color": "RED"
},
"version": 11,
"timestamp": 123456778
}
โ๏ธ ๋์ ๋ฐฉ์
- ๋๋ฐ์ด์ค์ ํด๋ผ์ฐ๋๋ฅผ ๋๊ธฐํ
- ๋๋ฐ์ด์ค๊ฐ ์ํ๋ฅผ ํด๋ผ์ฐ๋์ ๋ณด๊ณ ํ๋ฉด ํด๋น ์ ๋ณด๊ฐ reported state์ ์ ์ฅ
- ์ฌ์ฉ์๊ฐ ๋๋ฐ์ด์ค์ ์ํ๋ฅผ ๋ณ๊ฒฝํ๊ณ ์ถ์ ๋ desired state์ ์ ๋ฐ์ดํธ
- ๋๋ฐ์ด์ค๋ ์ฃผ๊ธฐ์ ์ผ๋ก ํด๋ผ์ฐ๋์ ์ ์ฅ๋ desired state์ ํ์ธํ๊ณ , ๊ทธ์ ๋ง์ถฐ ๋ณ๊ฒฝ
- ๋๋ฐ์ด์ค๊ฐ ์ํ๋ฅผ ๋ณ๊ฒฝํ ํ ๋ค์ ํด๋ผ์ฐ๋์ ๋ณด๊ณ ํ๋ฉด reported state ์ ๋ฐ์ดํธ
Device Provisioning
IoT ๋๋ฐ์ด์ค๋ฅผ AWS IoT Core์ ๊ฐ์ ํด๋ผ์ฐ๋ ์๋น์ค์ ๋ฑ๋ก(์ฐ๊ฒฐ)ํ๊ณ , ๋ณด์ ์ธ์ฆ์ ์ค์ ํ์ฌ ๋๋ฐ์ด์ค๋ฅผ ์ด์ํ ์ค๋นํ๋ ๊ณผ์
์ฐธ๊ณ
https://github.com/aws/aws-iot-device-sdk-java/blob/master/README.md/?pg=developertools
https://docs.aws.amazon.com/ko_kr/iot/latest/developerguide/iot-device-shadows.html
'AWS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[AWS] AWS Cognito์ OAuth (3) | 2024.10.28 |
---|---|
[AWS] AWS CloudFormation (0) | 2024.10.15 |
[AWS] SchedulerAsyncClient (0) | 2024.07.17 |
[AWS] Amazon EventBridge Scheduler์ AWS Lambda ์ฌ์ฉํ๊ธฐ (0) | 2024.07.10 |
[AWS] Spring Boot + Docker + AWS EC2 ๋ฐฐํฌ (0) | 2023.09.22 |