AWS - IoT (Internet of Things)
IoT == 사물인터넷
즉 한마디로 표현하자면, 인터넷 네트워크에 무선으로 연결될 수 있는 모든 물체를 의미합니다.
좀 더 구체화 된 의미로는 사용자에게 정보를 제공하거나 작업을 자동화 하기 위해 데이터 송수신을 지원하는 센서, 소프트웨어 및 기타 기술을 탑재하고 있으며, 서로 연결된 사물을 의미합니다.
즉 IoT 개념이 적용되는 사물(장치)들을 IoT 디바이스라고 말할 수 있습니다.
쉽게 예를 들자면 :
교통 관리 시스템, 차량 연결, 스마트 홈과 같이 특정 디바이스의 상태(데이터)을 분석하고 전송하며 그 데이터들로 무언가를 처리하여 관리하는 시스템들이 해당됩니다. 교통 관리 시스템 처럼 CCTV를 이용하여 교통량 등을 파악하여 신호등의 시간을 조정하여 교통 흐름을 원할하게 만들 수 있습니다.
AWS IoT ?
연결된 디바이스가 클라우드 애플리케이션 및 다른 디바이스와 간편하고 안전하게 상호작용할 수 있게 해주는 클라우드 서비스 입니다 !
AWS 에서 제공하는 IoT서비스는 AI와 IoT를 결합하여 비지니스 결과를 개선합니다.
데이터를 관리하고 분석하여 대용량 IoT 데이터용으로 설계된 사용하기 쉬운 서비스를 제공합니다.
보안, 데이터 암호화 및 디바이스 데이터에 대한 액세스 제어 등의 서비스를 포함하고 있으며, 다른 AWS서비스와 통합이 가능하므로 솔루션 생성이 용이합니다.
AWS IoT 에서 사용하는 프로토콜
- MQTT
- 자원이 한정적인 디바이스용으로 설계된 경량의 메시징 프로토콜
- HTTPS
- URL을 통해 REST API 요청을 하는것
- LoRaWAN
- 저전력 장거리 광역 네트워크
AWS IoT Device SDK
“네트워크 통신이 가능한 디바이스”를 이용하여 AWS IoT와 통신을 하여 데이터를 주고 받으며 처리하는 시스템입니다. 앞서 말했듯이 “디바이스”가 필요한걸 알수 있습니다.
하지만 꼭 필수는 아닙니다. AWS IoT Device SDK를 사용하여 가상 디바이스를 만들고 AWS IoT 서비스와 통신할 수 있습니다. AWS IoT Device SDK는 여러 언어(C++, Python, JavaScript 등)로 제공되며, 이를 사용하여 다양한 플랫폼에서 가상 디바이스를 구현할 수 있습니다. 이 SDK를 사용하면 다양한 프로토콜(MQTT, HTTP, WebSocket)을 통해 AWS IoT 서비스와 상호 작용할 수 있습니다.
또한, AWS IoT Core 콘솔에서도 가상 디바이스를 생성하고 관리할 수 있습니다. 이를 통해 디바이스 관리, 시뮬레이션, 테스트 등을 수행할 수 있습니다.
How to AWS IoT Quick test?
앞서 말했듯이 IoT는 네트워킹이 가능한 사물을 의미합니다. 즉 테스트를 해보기 위해서는 IoT디바이스가 필요하게 됩니다.
- 디바이스(PC, Raspberry Pi 등) 의 전원을 킵니다.
- 디바이스가 브라우저를 지원하는 경우 AWS IoT콘솔을 열고 직접 파일을 다운로드합니다.
- IF NOT → PC에서 디바이스로 파일을 전송합니다.
- 혹은 USB와 같은 수단을 활용해 파일을 전송합니다.
- 명령어 인터프리터에 액세스 가능 여부
- YES → 터미널(명령 프롬프트)에 제공되는 명령어 입력후 ping 응답을 지속적으로 받는다면 다음단계로 넘어갑니다.
- NO → SSH 터미널 창을 통해 IoT디바이스에 접근하여 위 과정을 진행합니다.
$ ping [제공되는 명령어]
- 새 사물 생성하기 (테스트용이기 때문에 이름은 임의로 지었습니다)
- 디바이스의 플랫폼 운영 체제 선택 및 SDK 선택 ( Linux/macOS, Python을 선택하였습니다.)
- AWS IoT에서 제공하는 연결 키트를 다운로드 하여 압축을 풉니다.
- 실행 권한을 추가 및 실행
- 실행 결과 메시지가 잘 전달되는걸 확인할 수 있습니다.