Notice
Recent Posts
Recent Comments
Link
투케이2K
200. (TWOK/WORK) [업무 이슈] AWS Iot Core named shadow 생성 및 구독 할당량 제한으로 인한 네트워크 단선 이후 named shadow 삭제 이슈 본문
투케이2K 업무정리
200. (TWOK/WORK) [업무 이슈] AWS Iot Core named shadow 생성 및 구독 할당량 제한으로 인한 네트워크 단선 이후 named shadow 삭제 이슈
투케이2K 2026. 1. 14. 21:04728x90
[제 목]
타이틀 : 투케이 / 2k / 업무 정리
제목 : [업무 이슈] AWS Iot Core named shadow 생성 및 구독 할당량 제한으로 인한 네트워크 단선 이후 named shadow 삭제 이슈

[내 용]
------------------------------------------------------------------------------
[개발 및 테스트 환경]
------------------------------------------------------------------------------
- 제 목 : [업무 이슈] AWS Iot Core named shadow 생성 및 구독 할당량 제한으로 인한 네트워크 단선 이후 named shadow 삭제 이슈
- 테스트 환경 : 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 사용 되지 않는 named shadow 토픽 삭제 없이 지속 named shadow 토픽 구독 시 AWS 구독 할당량 제한으로 인해 서비스 연결이 되지 않는 이슈
2. ✅ AWS Service Quotas 확인 시 AWS 어카운트 계정에 제공 되는 구독 할당량은 50개 제한 확인
------------------------------------------------------------------------------
------------------------------------------------------------------------------
[원인 파악 및 증상 재현]
------------------------------------------------------------------------------
1. AWS Iot Core 특정 사물 (thing) 에 생성 된 named shadow 토픽 개수 확인
2. 토픽 개수 50 개 이후 named shadow 추가 생성 후 구독 요청 시 서비스 연결에 실패하는 증상 확인
>> AWS 토픽 구독은 각 named shadow 당 와일드 카드 방식을 사용해 구독 수행
>> ex : $aws/things/{thingName}/shadow/name/common/update/#
------------------------------------------------------------------------------
------------------------------------------------------------------------------
[조치 내용]
------------------------------------------------------------------------------
방어 로직 [1] : 네트워크 연결이 된 상태 인 경우 AWS MQTT 메시지로 DELETE Shadow 명령을 전달 받으면 동적으로 named shadow 삭제 수행 로직 추가
>> [Aws Iot Core] Aws Iot Core Thing 사물 Shadow 삭제 요청 DeleteThingShadow API 설명 정리 : https://blog.naver.com/kkh0977/224106416775?trackingCode=blog_bloghome_searchlist
방어 로직 [2] : 네트워크 단선 이후 재연결 된 경우 > named shadow 삭제 수행 로직 추가
>> 네트워크 단선 된 이후 재연결 시 DELETE Shadow 전문을 /get 으로 읽은 후 desired 부분에 특정 삭제 명령이 들어와 있는 경우 해당 named shadow 삭제 수행
>> 부모 기기에 매핑 되는 Zigbee 하위 기기인 경우는 네트워크 단선 된 이후 Zigbee 단에서 페어링이 떨어져 나간 경우 자동으로 named shadow 삭제 수행
>> 특정 기기 리셋 (공장 초기화) 이후 동일한 Mac 정보 장비 재등록 시 이전에 등록 된 named shadow 가 있으면 삭제 수행
>> 특정 기기 Mac 정보 장비 등록 시 이미 등록 된 장비가 있으면 알림 팝업창 표시 및 사용자 확인 버튼 클릭 시 named shadow 삭제 수행
- 팝업창 알림 : 이미 등록 된 Mac 장비가 있습니다. 해당 장비를 삭제하시겠습니까? [예], [아니오]
------------------------------------------------------------------------------
------------------------------------------------------------------------------
[참고 사이트]
------------------------------------------------------------------------------
[Aws Iot Core] Aws Iot Core Shadow (디바이스 섀도우) 에 대한 구독 할당량 확인 방법 - Service Quotas
https://kkh0977.tistory.com/8550
https://blog.naver.com/kkh0977/224138329845
[Aws Iot Core] Fleet provisioning 플릿 프로비저닝 설명 및 동작 프로세스 정리
https://kkh0977.tistory.com/7439
https://blog.naver.com/kkh0977/223691943757?trackingCode=blog_bloghome_searchlist
[Aws Iot Core] Fleet provisioning 플릿 프로비저닝 수행 방법 정리 - 클레임 인증서 , 신뢰할 수 있는 사용자
https://blog.naver.com/kkh0977/223779257161?trackingCode=blog_bloghome_searchlist
[Aws Iot Core] Aws 프로비저닝 수행 및 섀도우 Shadow 토픽 Topic 구독 시 와일드 카드 (wild card) 설명 정리
https://blog.naver.com/kkh0977/223825295723?trackingCode=blog_bloghome_searchlist
[MQTT (Message Queueing Telemetry Transport) 통신 설명]
https://kkh0977.tistory.com/3631
https://blog.naver.com/kkh0977/222971771381?trackingCode=blog_bloghome_searchlist
[간단 소스] 자바스크립트 mqtt.min.js 라이브러리 사용해 AWS MQTT5 사용자속성 userProperties 메시지 전송 및 구독 확인
https://kkh0977.tistory.com/8433
https://blog.naver.com/kkh0977/224091537312
------------------------------------------------------------------------------
728x90
반응형
'투케이2K 업무정리' 카테고리의 다른 글
Comments
