Notice
Recent Posts
Recent Comments
Link
투케이2K
329. (TWOK/ERROR) [AWS] Connection to the broker failed. Retrying - MQTT Broker AWS 연결 시도 에러 본문
투케이2K 에러관리
329. (TWOK/ERROR) [AWS] Connection to the broker failed. Retrying - MQTT Broker AWS 연결 시도 에러
투케이2K 2025. 9. 23. 19:59728x90
[환경 설정 및 설명]
프로그램 : AWS
설 명 : [AWS] Connection to the broker failed. Retrying - MQTT Broker AWS 연결 시도 에러
[설 명]
--------------------------------------------------------------------------
[개발 및 테스트 환경]
--------------------------------------------------------------------------
- 제목 : [AWS] Connection to the broker failed. Retrying - MQTT Broker AWS 연결 시도 에러
- 테스트 환경 : AWS / Iot / MQTT
- 사전) 클레임에 의한 프로비저닝 설명 :
>> 디바이스는 프로비저닝 클레임 인증서 및 프라이빗 키 (특수 용도의 자격 증명) 가 내장된 상태로 제조될 수 있습니다
>> 디바이스에 내장 된 인증서가 AWS IoT에 등록된 경우, 이 서비스에서 해당 인증서를 디바이스가 일반 작업에 사용할 수 있는 고유한 디바이스 인증서와 교환할 수 있습니다
>> 클레임에 의한 프로비저닝 예시 :
- [1] 디바이스에서 프로비저닝에 필요한 인증서 내장된 상태로 제조
- [2] 디바이스에서 Aws 접속에 필요한 엔드포인트 정보 및 인증서를 사용해 Aws 연결 수행 실시
- [3] CreateProvisioningTemplate 을 호출하여 프로비저닝 템플릿을 생성
- [4] 템플릿 생성 완료 후 응답으로 내려온 생성 된 사물 Thing Name 값 내부 저장 후 기기 연결 시 사용
- 사전) AWS Connection 시 세션 초기화 및 UUID 지정 이유 정리 :
>> AWS 연결 시 clientId 를 지속적으로 중복해서 사용하는 경우 AWS MQTT Connection Fail 이슈가 발생할 수 있음 (세션 충돌)
>> 동일한 clientId 를 지정한 이후 세션에 문제가 생겨 cleanSession 초기화 시 SDK 내부에서 세션 초기화 에러가 발생할 수 있음
>> 이러한 경우 기기를 리셋하거나 프로비저닝 과정을 처음부터 다시 해야하는 문제가 생길 수 있음
--------------------------------------------------------------------------
--------------------------------------------------------------------------
[에러 원인]
--------------------------------------------------------------------------
1. 디바이스 기기 AWS 플릿 프로비저닝 이후 사물 인증서 사용해 AWS Connection 연결 지속 유지 시 MQTT 세션에 문제가 생겨 AWS 재접속 시도를 실패하는 이슈 확인
2. 기기 에러 발생 로그 첨부 :
>> Connection to the broker failed. Retrying ..
3. 에러 발생 원인 분석 과정 :
>> 인증 문제 확인 : (정상)
- 디바이스에 설정된 X.509 인증서, 프라이빗 키, CA 인증서가 올바른지 확인
- 인증서가 활성화 상태인지, 정상적으로 등록되었는지 AWS 콘솔에서 확인
>> 엔드포인트 설정 오류 확인 : (정상)
- MQTT 브로커 주소 (<your-endpoint>.iot.<region>.amazonaws.com) 가 정확한지 확인
: 포트 번호는 일반적으로 8883 (TLS) 또는 443 (WebSocket) 사용
>> 네트워크 문제 확인 : (정상)
- 디바이스가 인터넷에 연결되어 있는지 확인
- 방화벽이나 프록시가 MQTT 연결을 차단하고 있지 않은지 확인 (MQTT 브로커 주소 Ping 시도 시 정상 응답 확인)
>> AWS IoT 정책 확인 : (정상)
- 연결하려는 디바이스에 할당된 IAM 정책 또는 IoT 정책이 MQTT 연결을 허용하고 있는지 확인
>> MQTT 클라이언트 설정 및 세션 문제 확인 : (문제 발견)
- AWS Connection 시도 시 clientId 를 지속해서 중복 사용하는 것 확인
- MQTT 연결 시 이전 세션이 제대로 종료되지 않았을 경우 문제가 발생할 수 있음
: 브로커가 이전 세션을 유지하려고 하다가 충돌이 발생할 수 있음
: AWS Connection 시도 시 cleanSession 옵션 값일 true 로 설정 필요
--------------------------------------------------------------------------
--------------------------------------------------------------------------
[해결 방법]
--------------------------------------------------------------------------
1. 디바이스 클라이언트 쪽에서 AWS Connection 접속 시도 시 ClinetId 값을 중복 되지 않게 UUID 랜덤 값을 사용해 접속 시도 하도록 로직 변경
>> 안드로이드 코드 기준 예시 추가 :
awsMqttManager = new AWSIotMqttManager(
String.valueOf(UUID_CLIENT_ID), // [클라이언트 아이디 : 세션 충돌 방지 랜덤 UUID 지정]
String.valueOf(AWS_END_POINT) // [엔드 포인트 : AWS 접속 정보]
);
2. MQTT 세션 연결 시 이전에 연결 되어 있는 세션 초기화 후 접속 하도록 옵션 설정 값 변경
>> cleanSession = true 지정
--------------------------------------------------------------------------
--------------------------------------------------------------------------
[참고 사이트]
--------------------------------------------------------------------------
[Aws Iot Core] Fleet provisioning 플릿 프로비저닝 설명 및 동작 프로세스 정리
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
--------------------------------------------------------------------------
728x90
반응형
'투케이2K 에러관리' 카테고리의 다른 글
Comments
