Notice
Recent Posts
Recent Comments
Link
투케이2K
192. (Aws/Amazon) [Aws Iot Core] 클래식 섀도우 classic shadow 설명 정리 본문
728x90
반응형
[개발 환경 설정]
개발 환경 : Aws / Amazon Web Services
제 목 : [Aws Iot Core] 클래식 섀도우 classic shadow 설명 정리

[설명 정리]
// --------------------------------------------------------------------------------------
[개발 및 환경]
// --------------------------------------------------------------------------------------
- 인프라 : Aws / Amazon Web Services
- 기술 구분 : Aws / Aws Iot Core / classic / shadow
- 사전) 👉 Aws Iot Core 간단 설명 :
>> AWS IoT 는 IoT 디바이스를 다른 디바이스 및 AWS 클라우드 서비스에 연결하는 클라우드 서비스를 제공합니다.
>> 디바이스가에 연결할 수 있는 경우 AWS IoT는 AWS 가 제공하는 클라우드 서비스에 디바이스를 AWS IoT 연결할 수 있습니다.
>> AWS IoT Core 메시지 브로커는 MQTT 및 MQTT over WSS 프로토콜을 사용하여 메시지를 게시하고 구독하는 디바이스 및 클라이언트를 지원합니다.
- HTTPS 프로토콜을 사용하여 메시지를 게시하는 디바이스와 클라이언트도 지원합니다.
- 사전) 👉 MQTT (Message Queuing Telemetry Transport) 설명 :
>> MQTT 는 경량 메시지 프로토콜로, 주로 IoT(사물인터넷) 환경에서 사용됩니다
>> MQTT 목적 : 제한된 네트워크 환경(저속, 불안정)에서 효율적으로 메시지를 주고받기 위해 설계
>> MQTT 기반 : TCP/IP 위에서 동작
>> MQTT 패턴 : Publish/Subscribe 모델을 사용
- Publisher : 메시지를 발행하는 클라이언트
- Subscriber : 특정 주제(topic)를 구독하는 클라이언트
- Broker: 메시지를 중개하는 서버 (예: Mosquitto)
>> MQTT 주요 특징 :
- 경량성 : 헤더가 매우 작음(2바이트부터 시작)
- QoS (Quality of Service) :
$ QoS 0: 최대 한 번 전달(보장 없음)
$ QoS 1: 최소 한 번 전달(중복 가능)
$ QoS 2: 정확히 한 번 전달(가장 안전)
- 지속 연결 : KeepAlive로 연결 상태 유지
- Last Will and Testament (LWT) : 클라이언트 비정상 종료 시 브로커가 메시지 발행
- 토픽 기반 라우팅 : 계층적 구조(/home/temperature 등)
// --------------------------------------------------------------------------------------
// --------------------------------------------------------------------------------------
[설 명]
// --------------------------------------------------------------------------------------
1. AWS IoT 에서 클래식 섀도우 (Classic Shadow) 는 디바이스 (Thing) 의 상태를 클라우드에 저장하고, 디바이스와 애플리케이션 간 상태를 동기화하기 위한 기능입니다.
>> ✅ 클래식 섀도우 (Classic Shadow) 는 하나의 Thing 에 대해 단 하나만 존재하는 기본 섀도우입니다.
- Thing 상태를 JSON 형태로 저장
- 디바이스가 오프라인이어도 상태 유지
- 클라우드 ↔ 디바이스 간 상태 동기화
>> ✅ 클래식 섀도우 추천
- 단순 IoT 디바이스
- 상태 1개만 관리하면 충분
- 빠르게 구현하고 싶을 때
2. AWS IoT 에서 클래식 섀도우 (Classic Shadow) 는 공식적으로는 AWS IoT Device Shadow 기능의 기본 형태라고 보면 됩니다.
>> ✔️ AWS IoT Device Shadow 는 AWS IoT Core 의 구성요소로, 물리적 IoT 디바이스의 상태를 클라우드에 가상 문서(JSON) 형태로 보관하는 서비스입니다.
>> ✔️ 이를 통해 애플리케이션은 디바이스가 오프라인이더라도 상태를 조회하거나 업데이트할 수 있습니다.
3. ✅ 기본 섀도우 구조 (핵심)
{
"state": {
"desired": { // desired (희망 상태) : 클라우드(앱, 서버)가 원하는 상태
"power": "on"
},
"reported": { // reported (보고 상태) : 디바이스가 실제 현재 상태 보고
"power": "off"
},
"delta": { // delta (차이 상태) : desired ≠ reported일 때 자동 생성됨
"power": "on"
}
}
}
4. 기본 섀도우 동작 흐름
>> 앱 → desired 업데이트
>> AWS 가 delta 생성
>> 디바이스가 delta 수신
>> 디바이스 상태 변경 후 reported 업데이트
5. ✅ AWS IoT 클래식 섀도우 (Classic Shadow) MQTT 토픽 구조
>> 상태 조회 : $aws/things/{thingName}/shadow/get
>> 상태 업데이트 : $aws/things/{thingName}/shadow/update
>> 응답 :
- .../accepted
- .../rejected
6. ✅ AWS IoT 클래식 섀도우 (Classic Shadow) 특징 정리
>> ✔ 장점
- 디바이스 오프라인 상태에서도 제어 가능
- 상태 동기화 자동 처리
- MQTT 기반으로 실시간 처리
>> ✔ 제약
- Thing당 1개만 존재 (클래식)
- 복잡한 상태 관리에는 부족
7. 클래식 섀도우 (Classic Shadow) 와 Named Shadow 와의 차이
| 구분 | 클래식 섀도우 | Named Shadow |
| -- | ------- | ------------ |
| 개수 | 1개 | 여러 개 가능 |
| 구조 | 기본 | 이름별 분리 |
| 용도 | 단순 상태 | 복잡한 디바이스 |
// --------------------------------------------------------------------------------------
// --------------------------------------------------------------------------------------
[참고 사이트]
// --------------------------------------------------------------------------------------
[MQTT (Message Queueing Telemetry Transport) 통신 설명]
https://kkh0977.tistory.com/3631
https://blog.naver.com/kkh0977/222971771381?trackingCode=blog_bloghome_searchlist
[android] 안드로이드 aws shadow mqtt 수행 publish , subscribe 결과 확인 - get, update, delete
https://kkh0977.tistory.com/6892
https://blog.naver.com/kkh0977/223560924808?trackingCode=blog_bloghome_searchlist
[AWS 콘솔 이벤트 토픽 설명 사이트]
https://docs.aws.amazon.com/ko_kr/iot/latest/developerguide/reserved-topics.html
// --------------------------------------------------------------------------------------
728x90
반응형
'Aws (Amazon)' 카테고리의 다른 글
Comments
