Notice
Recent Posts
Recent Comments
Link
투케이2K
206. (TWOK/WORK) [업무 이슈] AWS MQTT Shadow 특정 디바이스 하위 기기 페어링 연결이 해제 되어 주기보고가 reported 되지 않는 이슈 본문
투케이2K 업무정리
206. (TWOK/WORK) [업무 이슈] AWS MQTT Shadow 특정 디바이스 하위 기기 페어링 연결이 해제 되어 주기보고가 reported 되지 않는 이슈
투케이2K 2026. 3. 27. 19:44728x90
반응형
[제 목]
주제 : 투케이2K 업무 정리
타이틀 : 투케이 / 2k / 업무 정리
제목 : [업무 이슈] AWS MQTT Shadow 특정 디바이스 하위 기기 페어링 연결이 해제 되어 주기보고가 reported 되지 않는 이슈

[내 용]
------------------------------------------------------------------------------
[개발 및 테스트 환경]
------------------------------------------------------------------------------
- 제 목 : [업무 이슈] AWS MQTT Shadow 특정 디바이스 하위 기기 페어링 연결이 해제 되어 주기보고가 reported 되지 않는 이슈
- 테스트 환경 : AWS / Iot / MQTT / 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 Core 에 WIFI 부모 기기 등록 및 지그비 연동 하위 기기 등록 후 MQTT 통신을 사용해 주기보고를 수행하던 중
어느 순간 연결 된 하위 기기 페어링 연결이 해제되어 주기보고가 올라오지 않는 이슈
2. 부모 기기와 페어링 연결이 해제 된 하위 기기는 다시 재연결이 되지 못하는 상황으로 다시 기기 재등록이 필요한 상황
3. ✔️ 참고 사항 :
>> 해당 이슈는 간헐적으로 발생하는 증상이지만, 딥 슬립모드로 들어간 하위 기기가 못깨어나는 이슈인지 , 실제로 페어링 연결이 해제 된 상황인지 플랫폼에서는 알 수 없는 상황
------------------------------------------------------------------------------
------------------------------------------------------------------------------
[원인 파악 및 증상 재현]
------------------------------------------------------------------------------
1. 부모기기 AWS IoT Core 에 등록 후 하위 기기 페어링 연결 후 지속적 주기보고 이벤트 모니터링 수행
>> ✔️ 간헐적 발생하는 이슈로 다수일간 모니터링 연결 후 주기보고가 올라오는지 로그 데이터 확인 수행
2. 지속 테스트 진행 중 특정 순간 AWS IoT Core 에 하위 기기 주기보고가 더이상 올라오지 않는 것 확인
3. ❌ 디바이스 로그 확인 시 연결 되어 있던 하위 기기가 실제로 페어링 연결이 해제 된 상태 확인
>> 고객앱에서 확인 시 아직 등록 되어 있는 기기 표시가 살아 있으며, 이벤트 제어 버튼도 활성화 되어 있는 것 확인
------------------------------------------------------------------------------
------------------------------------------------------------------------------
[조치 내용]
------------------------------------------------------------------------------
1. 플랫폼에서는 부모기기에 연결 된 하위 기기가 실제로 페어링이 연결이 해제 된 상태 인지, 딥 슬립모드에서 깨어나지 못하는 상태 인지 확인이 불가한 상태로
디바이스에게 하위 기기 페어링이 연결이 해제 된 경우 주기 보고 reported 시 특정 dateTime 값 필드를 null 로 전송하도록 로직 변경 요청 수행
2. ✅ 변경 된 주요 로직 사항 :
>> 부모 기기에서 특정 하위 기기 페어링 연결이 해제 된 상황 이벤트 감지
>> 부모 기기는 특정 하위 기기 주기보고 reported 페이로드에서 networkStatus, createTime, keepAliveTime 값을 null 로 전송 수행
>> AWS 룰엔진 -> 람다 함수 : 하위 기기 주기 보고 검증 부분에서 networkStatus, createTime, keepAliveTime 이 null 로 올라온 경우 페어링 연결이 해제 되었다고 DB 상태값 변경 수행
>> 고객앱 접속 후 DB 기기 상태 값 페어링 연결이 해제 된 경우 '기기 재등록 필요' 알림 팝업창 표시
------------------------------------------------------------------------------
------------------------------------------------------------------------------
[참고 사이트]
------------------------------------------------------------------------------
[Aws] Iot Core 디바이스 주기보고 (KeepAlive) 에 따른 백엔드 서버 단선 체크 로직 - 버퍼 허용 시간 적용, Retry 체크
https://kkh0977.tistory.com/8578
https://blog.naver.com/kkh0977/224152820786?trackingCode=blog_bloghome_searchlist
[Aws] Aws Iot Core MQTT Shadow 통신 주기적 KeepAlive 주기 보고 reported 수행 및 기기 단선 체크 로직 정리
https://kkh0977.tistory.com/8412
https://blog.naver.com/kkh0977/224082545304?trackingCode=blog_bloghome_searchlist
[Aws Shadow 섀도우 토픽 구독 및 publish 요청 이후 타임아웃 TimeOut 로직 처리]
https://kkh0977.tistory.com/8079
https://blog.naver.com/kkh0977/223906176453?trackingCode=blog_bloghome_searchlist
[Aws Iot Core] Fleet provisioning 플릿 프로비저닝 설명 및 동작 프로세스 정리
https://kkh0977.tistory.com/7439
https://blog.naver.com/kkh0977/223691943757?trackingCode=blog_bloghome_searchlist
[MQTT (Message Queueing Telemetry Transport) 통신 설명]
https://kkh0977.tistory.com/3631
https://blog.naver.com/kkh0977/222971771381?trackingCode=blog_bloghome_searchlist
------------------------------------------------------------------------------
728x90
반응형
'투케이2K 업무정리' 카테고리의 다른 글
Comments
