IoT core 말고 ec2로도 iot 디바이스와 연결할 수 있게 구성해보려 한다.. 나자신 화이팅!
먼저 디바이스와 통신할 수 있는 프로토콜에 대해 먼저 알아보자.(더보기 클릭)
IoT 통신 프로토콜
- Bluetooth: 스마트 기기와 페어링하기 위한 웨어러블 기술 제공
- WiFi: 많은 양의 데이터를 제어하는 능력과 빠른 데이터 전송 속도(과도한 전력 소모가 단점)
- ZigBee: 블루투스와 비슷, 산업체를 위해 설계된 느낌,
- MQTT IoT: Message Queue Telemety Transport, 원격지에서 모니터링하는 곳, TCP
- CoAP: Constrained Application Protocol, 제한된 스마트 장치를 위해, HTTP
- DDS: 고성능의 확장 가능한 실시간 M2M 통신을 위한 표준, 실시간 분산 애플리케이션
- NFC: 안전한 양방향 통신 연결, 비접촉식 결제 거래
- Cellular: 더 먼 거리에서 작동해야하는 느낌, 많은 비용과 높은 전력 소비
- AMQP: 응용 프로그램 계층 프로토콜, Exchange / Message Queue / Binding
- LoRaWAN: 장거리 광역 네트워크, IoT 프로토콜 광역 네트워크용
- RFID: 무선 주파수 식별
- Z-wave: IoT 프로토콜 저전력 RF, 무선 주파수 통신, 주로 홈 자동화 응용 프로그램에 사용
- Sigfox: Cellular 및 WiFi 속성을 모두 포함
- 실: 가장 최근의 IoT 프로토콜 중 하나, 홈 자동화 앱에서 사용, IPv6
- EnOcean: 무선 감지 및 에너지 수확 플랫폼, 다양한 상황에서 응답이 필요할 때
AWS IoT Core가 제공하는 디바이스 통신 프로토콜은 MQTT와 HTTPS 이다.
https://docs.aws.amazon.com/ko_kr/iot/latest/developerguide/protocols.html
메시지를 게시하고 구독하기 위한 MQTT / MQTT over WebSocket(WSS) 프로토콜,
메시지를 게시하기 위한 HTTPS 프로토콜을 사용하는 디바이스 및 클라이언트를 지원!
MQTT
- 제약된 디바이스를 위해 설계된 경량의 메시징 프로토콜
- clientId로 식별되는 디바이스 연결을 지원
- AWS IoT Device SDK 지원(디바이스를 AWS IoT에 연결할 때 권장되는 방법)
- 만약 SDK 사용 안하면, 필요한 연결과 통신 보안을 제공하면 됨
- MQTT QoS level 0과 1만 지원(QoS level 2의 게시 또는 구독 지원 안함..)
- QoS level 0: 신뢰할 수 있는 통신 링크를 통해 전송되거나 누락되어도 문제 없는 메시지에 이용
- QoS level 1: 전송한 사람이 PUBACK 응답을 수신해 성공적인 전달을 나타낼 때까지는 완료 안한 것
HTTPS
- HTTP 1.0 또는 1.1 사용해 REST API에 요청하여 메시지 게시 가능
- clientId 값 지원 안함
- 클라이언트별 엔드포인트 및 주제별 URL에 대한 POST 요청을 함으로서 메시지를 게시
- https://IoT_data_endpoint/topics/url_encoded_topic_name?qos=1"
- IoT_data_endpoint: AWS IoT 디바이스 데이터 엔드포인트
- url_encoded_topic_name: 전송되는 메시지의 전체 topic name
EC2에 MQTT를 올리는 작업을 해보자.
참고로 MQTT 브로커 프로그램에는 ActiveMQ, Apollo, IBM Message, Sight, RabbitMQ, Mosquitto 등이 자주 사용됨.
실습에는 Mosquitto를 사용할 예정!
( https://github.com/mqtt/mqtt.org/wiki/server-support : 브로커 특징 비교 자료)
- EC2에 mosquitto 설치
sudo amazon-linux-extras install epel //epel 설치
sudo yum -y install mosquitto //mosquitto 설치
sudo systemctl start mosquitto && sudo systemctl enable mosquitto //mosquitto 서비스 시작
sudo systemctl status mosquitto // mosquitto 서비스 상태 확인
- Mosquitto 사용
Mosquitto: Message 브로커로 pub&sub 명령어 지원
토픽을 구독하고 메시지를 배포!
mosquitto_sub -d -t my-topic
mosquitto_pub -d -t my-topic -m "message check"
창 두개를 띄워서 한쪽 창에서 sub 먼저 하고 다른 창에서 pub 실행해보자.
로그 확인
sudo tail -f /var/log/messages
New client가 연결된 것을 볼 수 있다!
❗ 사실 이렇게만 보면 뭘 했는지 와닿진 않는다.. 메시지를 구독(sub)하고 게시(pub)하는 건 알겠는데.. 실질적으로 IoT에서 어떻게 활용되냐 이말이야.. ❗
'Cloud > AWS' 카테고리의 다른 글
[AWS] Amazon Rekognition 개념 (1) | 2022.10.05 |
---|---|
[AWS] Amazon Rekognition 실습 (0) | 2022.10.04 |
[AWS] Amazon Kinesis 개념 (0) | 2022.09.26 |
[AWS] IoT Core 살펴보기 -4(데이터 레이크) (0) | 2022.09.26 |
[AWS] IoT Core 살펴보기 -3(실시간 시각화) (0) | 2022.09.26 |