프로그래밍/IoT
프로그래밍/IoT
2020. 8. 20.
[AWS IoT] MQTT Republish Rule Action 사용시 주의점
요구사항은 다음과 같았다. IoT Device에서 발생한 특정한 이벤트에 대하여 실시간으로 정보를 받고 싶다는 외부의 요청이 있었다. 협업을 하는 외부 조직이다보니 빠르게 대응을 해줘야했지만, 우리가 갖춰야 하는 중요한 Business Logic과는 관련이 없는 부분이었기 때문에 로직을 관리하는 코드를 더럽히고(?) 싶지 않았다. 단순한 API 연동이었기 때문에 특정 Topic으로 발생한 이벤트를 catch하여, 전달받은 API로 POST요청을 하면 되는 상황이었다. 이 때 발생한 고민 포인트가 또 한가지 있었다. HTTPS API 연동을 Lambda와 같은 서비스를 사용해서 처리할 지, 다행스럽게도 AWS IoT에서 제공하는 HTTPS Downstream Rule을 사용하여 처리할 지.. 위의 고민 포..
프로그래밍/IoT
2020. 6. 14.
[AWS IoT] aws-iot-device-sdk로 sample client 만들기 (1편)
함께 Bootcamp를 했었던 동료들과 각자 개발하고 있는 프로젝트에 대해서 공유를 한 적이 있었다. IoT Service를 개발하는 조직에서 Platform 개발을 하고 있다고 하니, Node.js로도 IoT 개발이 가능한 지 신기해하는 반응이 대다수였다. IoT에서 가장 중요한 것 중 하나가 T(Things)에 해당하는 Device일 텐데 당연히 Device하면 임베디드 개발과 C#과 같은 언어를 사용한 개발이 가장 먼저 떠오르니, 당연한 반응이다. 라즈베리파이와 같은 edge 장비의 역할을 할 수 있는 기기가 보편화되면서 다양한 언어로 IoT Device를 구현할 수 있는 방법이 생겼다. AWS IoT에서 제공하는 aws-iot-device-sdk도 다양한 언어로 제공하고 있다. (링크) aws-i..
프로그래밍/IoT
2020. 6. 8.
[IoT] MQTT Protocol - QoS(Quality of Service)
IoT Service는 무선 네트워크 망을 주로 사용하여 통신하기 때문에 유선 통신에 비해서 안정성이 상대적으로 낮다. 이러한 불안정함을 Protocol 상에서 보완하기 위해 QoS(Quality of Service)라는 안정성을 위한 서비스의 질이라는 개념을 도입했다. QoS Level 하지만 모든 통신에서 완전성을 갖춰야 하는 것은 아니다. 서비스의 요구 사항에 따라서, 그리고 통신이 이뤄지는 환경이나 메시지의 종류에 따라서 안정성이 강화되어야 하는 상황이 있을 것이다. QoS Level은 아래의 3가지로 정의한다. QoS 0 : At most once - Fire & Forgot QoS Level 0에서는 메시지를 전송(Publish)한 뒤, Publish Event를 잊는다. 즉, 전송한 메시지를..
프로그래밍/IoT
2020. 5. 31.
[AWS IoT] IoT Service에서 Policy 사용하기
2020/05/25 - [프로그래밍/IoT] - [AWS IoT] Policy(정책)_IoT Device와 서버 간의 Interface [AWS IoT] Policy(정책)_IoT Device와 서버 간의 Interface 2번의 포스팅을 통해 IoT Device가 통신을 할 수 있기 위한 IoT 인증서에 대해서 살펴보았다. AWS IoT의 경우, MQTT Protocol에 따라서 통신을 하게 되는데 적절한 인증 방법과 유효한 인증서를 통해 MQTT Bro jaenjoy.tistory.com 위 글을 통해 IoT Service와 IoT Device가 통신을 할 수 있는 Interface를 정의하는 방법에 대하여 살펴보았다. 그렇다면 실제로 IoT Service를 구축할 때 어떻게 Policy를 사용하는지..
프로그래밍/IoT
2020. 5. 25.
[AWS IoT] Policy(정책)_IoT Device와 서버 간의 Interface
2번의 포스팅을 통해 IoT Device가 통신을 할 수 있기 위한 IoT 인증서에 대해서 살펴보았다. AWS IoT의 경우, MQTT Protocol에 따라서 통신을 하게 되는데 적절한 인증 방법과 유효한 인증서를 통해 MQTT Broker에 연결한 Device가 어떤 규격에 따라 통신을 할 수 있는지의 문제가 남아있다. Web Application과 IoT Service에서의 Interface 비교 일반적인 Web Application을 생각해보면, Client와 Server 간의 통신에 대한 방법은 API Interface에 따라서 정해지게 된다. HTTPS 기반의 REST API라고 생각해보면 어떤 Endpoint로 어떤 Method를 사용하여 Request를 보내고, 그에 대한 Response는..
프로그래밍/IoT
2020. 5. 17.
[AWS IoT] 인증 자동화를 위한 Bootstrap Certificate
2020/05/02 - [프로그래밍/IoT] - [AWS IoT] IoT Device 인증 방법 (IoT 인증서) [AWS IoT] IoT Device 인증 방법 (IoT 인증서) 대부분의 서비스 설계 과정에서 가장 중요하게 다루는 부분이 인증이다. 인증에 대한 고민은 IoT 서비스에서도 마찬가지로 매우 중요한 부분을 차지한다. AWS IoT 인증서 생성 방법 AWS IoT에서는 X.5 jaenjoy.tistory.com 앞선 글을 통하여 AWS IoT에서 지원하는 Device 인증 방법에 대하여 언급했다. Certificate(인증서)에 대한 기본적인 설명과 함께 인증 로직을 구현할 때, 인증서의 생성과 저장을 처리하는 방식에 대한 고민이 필요하다는 말과 함께 마무리 했다. AWS에서 공식 블로그에서 ..
프로그래밍/IoT
2020. 5. 2.
[AWS IoT] IoT Device 인증 방법 (IoT 인증서)
대부분의 서비스 설계 과정에서 가장 중요하게 다루는 부분이 인증이다. 인증에 대한 고민은 IoT 서비스에서도 마찬가지로 매우 중요한 부분을 차지한다. AWS IoT 인증서 생성 방법 AWS IoT에서는 X.509 인증서를 사용하여 IoT Thing에 대한 인증을 처리한다. X.509 인증서의 생성 방법을 AWS Console 화면을 통해 순서대로 알아보겠다. 1. 인증서는 보안 > 인증서 메뉴에서 관리한다. 아무런 인증서가 없는 상태에서는 위와 같은 화면이 나타난다. 인증서 생성 버튼을 클릭하여, 다음 단계로 넘어가보자 2. 인증서 생성 옵션 AWS IoT에서 기본적으로 제공하는 인증서 생성의 종류는 3가지이다. 원클릭 인증서 생성은 AWS IoT의 인증 기관을 이용하여 X.509 인증서를 발급받는 것이..
프로그래밍/IoT
2020. 4. 19.
[IoT] Thing Management 01_IoT Device의 관리 기준
AWS IoT에 대해 언급한 지난 포스팅에서 첨부한 그림과 함께 다시 한번 IoT Device 관리 관련 포스팅을 시작해보고자 한다. 2020/04/09 - [프로그래밍/IoT] - [IoT] AWS IoT로 IoT 서비스 개발 시작하기 Web Service와 IoT Service의 가장 큰 차이점은 "Device"라고 생각한다. Application을 사용하는 End User의 존재는 동일하기 때문에 User를 관리하는 방법에 대해서는 Service의 종류와 무관하게 동일할 것이다. 하지만, IoT(Internet Of Things) Service는 그 이름에서도 알 수 있듯 Things(사물)를 자원(Resource)으로 여기고 이를 어떻게 관리(Management)할 것인지가 중요한 부분이 될 것이..
프로그래밍/IoT
2020. 4. 9.
[IoT] AWS IoT로 IoT 서비스 개발 시작하기
멀게만 느껴졌던 IoT 서비스를 직접 설계하고 구현하고 있다. 이 한 문장이 엄청 거창하게 보이지만, 이것이 가능한 데에는 여러 Cloud에서 IoT 서비스를 설계할 수 있도록 기본적인 리소스를 제공해주기 때문에 진입장벽은 많이 낮아진 것 같다. Cloud 서비스를 바탕으로 IoT 시작하기 AWS IoT의 Developer Docs를 살펴보면, AWS IoT 서비스를 다음과 같이 설명한다. "인터넷에 연결된 Device가 AWS Cloud에 연결할 수 있고, Cloud의 애플리케이션이 인터넷에 연결된 디바이스와 상호 작용할 수 있게 하는 서비스" 즉, AWS IoT를 사용하면 인터넷에 연결된 제품과 AWS 클라우드 간의 양방향 통신이 가능한 서비스를 설계하고 구현할 수 있다는 것이다. AWS Consol..