본문 바로가기
Amazon AWS/IoT Core

AWS IoT Core 로그 관리 하기

by 홍띠 2022. 4. 22.

이전 블로그 글로는 이제 사물 생성을 마친거지만.. 실제로는 이미 데이터를 퍼블리싱하고 구독하고 있는 중이다.

 

퍼블리싱과 구독은 차차 포스팅하기로 하고...! 이번 글은 IoT Core의 로그를 관리 할 수 있도록 세팅하는것을 다룰 것이다.

 

IoT Core를 처음 쓰면서 불편하다고 느꼈던 점이 하나 있었는데, 그건 퍼블리싱이 잘 되고 있는지 아닌지 확인하는게 어렵다고 개인적으로는 느꼇다.

 

커넥션이 잘 되는지는 커넥션 에러를 퍼블리싱하는 서버에서 출력 할수있지만,

퍼블리싱이 잘 되는지, 데이터가 내가 의도한대로 잘 들어가고 있는지 보려면 AWS IoT 콘솔에서 테스트 기능으로 확인해야 한다.

테스트 구독 화면

그러면 위와 같이 토픽과 메세지가 화면에 표시 된다. 

 

퍼블리싱한 데이터를 간편하게 확인하기에는 아주 좋은 기능이다.

다만, 테스트 페이지 이므로 여기 기록되는 데이터는 모두 휘발성이고 보여주는 값이 토픽,시간,메세지에 제한되어 있을 뿐이다.

따라서, 퍼블리싱 하는데에 에러가 발생 하는지, 지금 들어오는 데이터가 어느 클라이언트가 보낸 데이터인지 등을 확인하기 위해서는 로그를 보고 싶었다!! 

 

서론이 너무 길었지만, 어쨋든 이제 AWS Cloud Watch를 통해 AWS IoT 로그를 볼 수 있도록 설정해보자!


IoT에서 logging을 활성화 하려면, 먼저 사용자를 대신하여 AWS IoT 활동을 모니터링할 AWS 권한을 부여하는 IAM 역할과 정책을 만들어야 한다.

 

 1. 로깅 역할을 만들려면 IAM 콘솔의 역할 허브를 열고 역할 생성을 선택

2. 신뢰할 수 있는 엔터티 유형 - AWS 서비스 & IoT 선택

3. 서비스에 자동으로 연결되는 정책이 표시되면 다음 버튼 선택

 

4. 역할 이름과 설명 입력후 생성 클릭!

 

IAM역할을 생성했으면 AWS IoT 콘솔로 넘어가서 기본 로깅을 구성한다.

 

1. 콘솔에서 왼쪽 메뉴 하단에 설정 선택 후 로그 섹션에서 로그관리 선택

2. 로그역할에서 생성한 역할 선택하고, 로그 수준 설정 (로그수준이 상세할 수록 코스트 증가)

    이때, 로그수준은 언제든 다시 설정 할 수 있다.

3. 업데이트를 누르면 로그구성이 끝난다.

 

내 경우에는 간편하게 콘솔을 이용했지만,

CLI를 사용하여 기본 로깅을 구성 할 수도 있으며, CLI를 이용하면 리소스(사물)별 로깅구성을 달리 할 수 있다.

 

이제 CloudWatch 콘솔에서 AWS IoT 로그를 볼수 있도록 설정하면 끝이다.

 

1. 로그 그룹에서 AWSIotLogsV2를 검색하고 클릭하여, 해당 로그그룹 페이지로 들어간다.

2. 로그목록에서 원하는 시간대의 로그 목록을 선택해서 들어가면 로그를 볼 수 있다.

설정을 마치고 로그를 확인해 보니 퍼블리싱 정보 뿐만 아니라, 규칙 실행 로그도 같이 나오는것을 확인했다.

 

내경우에는 AWS Lambda function으로 데이터를 보내게 되어 있는데, 규칙이 잘 실행 되는지는 굳이 람다 로그를 보지 않고도 여기서 해결 할 수 있다는 점이 아주 마음에 들었다.😊