본문 바로가기

MQTT사용을 위한 AWS(Amazon Web Services) IoT Core 설정하기

by rudals.kim 2022. 12. 7. 댓글 개
반응형

AWS(Amazon Web Services) IoT Core를 사용하여 MQTT 서비스를 이용하기 위해서는 아래와 같은 절차가 필요합니다. docs.aws.amazon.com의 개발자 안내서의 내용인데 자세하게 잘 설명이 되어 있습니다.

 

 

AWS IoT 리소스 만들기 - AWS IoT Core

이 페이지를 나가기 전에 인증서 파일을 저장해야 합니다. 콘솔에서 이 페이지를 나가면 인증서 파일에 더 이상 액세스할 수 없습니다. 이 단계에서 만든 인증서 파일을 다운로드하는 것을 잊은

docs.aws.amazon.com

요약하면 아래 그림과 같이 왼쪽 편의 AWS IoT Core 정책을 생성하여 디바이스 인증서를 가지고(화살표 부분) 와서 사물을 생성하면 IoT Core 서비스를 사용할 수 있게 되어 있습니다.

위의 절차대로 진행 해 보겠습니다.

먼저 콘솔 홈의 검색에 iot core를 적어 서비스를 검색해 봅니다.

가장 맨 위에 검색된 IoT Core 서비스를 선택합니다.

저는 즐겨찾기를 해 놔서 주황색 별 모양이 나오며 왼쪽 AWS 로고 밑에 IoT Core 버튼 메뉴가 나와 있습니다.

IoT Core 서비스를 선택하면 아래와 같은 AWS IoT 메인 설정 관련 화면이 나옵니다.

왼쪽의 설정 메뉴중 관리 -> 보안 -> 정책을 선택 후 가운데 주황색의 '정책 생성' 버튼을 클릭합니다.

먼저 정책 속성에서 정책 이름을 지정합니다.(예. aws_iot_policy)

아래쪽의 정책 문서는 섹션에서 AWS IoT Core 작업에 대한 리소스 액세스 권한을 부여하거나 거부하는 정책을 생성하는 것인데 아래 이미지와 같이 연결/수신/배포/구독 작업을 허용할지의 여부 등을 세부적으로 나눠 관리할 수 있습니다.

이번 테스트에서는 모든 작업에 대해 제한 없이 동작되게 하기 위해 아래쪽의 정책 문서에서 허용/*/*로 작성 후 아래 주황색 생성 버튼을 클릭하여 정책을 생성하였습니다.

정책설정을 마쳤으니 사물을 생성합니다.

왼쪽 메뉴의 관리 -> 모든 디바이스 -> 사물을 선택한 후 가운데 '사물 생성' 버튼을 클릭합니다.

'등록할 사물 수'에서 '단일 사물 생성'을 선택 후 다음을 클릭합니다.

단일 사물 생성의 순서는 사물 속성 지정 -> 디바이스 인증서 구성 -> 인증서에 정책 연결 순으로 진행됩니다. 먼저 사물 속성에 사물 이름(예. aws_iot)을 입력합니다. 아래 디바이스 섀도우는 섀도우 없음을 선택합니다.

 

디바이스 섀도우 설명을 읽어 보시면 디바이스의 상태를 AWS와 동기화할 수 있다고 적혀있습니다. 예를 들면 subscriber의 네트워크가 동작이 안 되는 동안 publisher에서 topic 메시지를 전송하면 두 기기간의 데이터가 불일치되는 상황이 발생될 수 있는데 이 경우 섀도우 메시지를 사용하면 이런 불일치를 방지할 수 있습니다.

디바이스 인증서에서 '새 인증서 자동 생성'을 선택 후 다음을 클릭합니다.

이전에 만들어 놓은 정책(예. aws_iot_policy)을 선택후 아래 '사물 생성' 버튼을 클릭하여 디바이스 인증서와 정책을 연결해 줍니다.

사물 생성이 완료되면 아래와 같이 '인증서 및 키 다운로드' 화면이 나오는데 모든 다운로드 버튼을 클릭하여 관련 인증서를 다운로드해 놓습니다. 다른 디바이스들에서 AWS IoT Core 서비스를 이용할 경우 이 인증서를 사용하여 접속 및 인증하는 용도로 사용됩니다.

 

주의하실 점은 아래 다운로드 화면은 사물 생성 후에만 나오는 1회성 화면입니다.

콘솔에서 이 페이지를 나가면 인증서 파일을 더 이상 다운로드 할 수 없습니다. 재다운로드가 안되니 인증서를 받으려면 사물 개체를 삭제한 다음 처음부터 이 절차를 다시 시작해야 합니다. 따라서 꼭 이 화면에서 모든 인증서를 다운로드 해 놓으시기 바랍니다.

완료를 선택하면 아래와 같은 화면이 나오며 생성한 사물을 확인 하실 수 있습니다.

생성된 인증서를 사용하여 AWS IoT 서비스를 제대로 사용해 봐야겠습니다.

반응형

댓글