ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • AWS IOT Rule Engine 을 통한 Elasticsearch 연동
    개발 2020. 3. 20. 02:00

     

    AWS IOT 에서는 Rule Engine이라는걸 통해서 MQTT 토픽으로 들어오는 데이터를 Subscribe해서 특정 액션을 취할 수 있는데,

     

    그 액션들 중 하나로 Elasricsearch와의 연동이 있다.

     

    아래 내용은 어디까지나 AWS IOT에 대해서 조금의 이해가 있다는 가정하에 설명할 것이다.

     

    IOT 화면에 접속하면 이미지와 같이 왼쪽 매뉴에 "액트 - 규칙"이 있다, 

     

    이 규칙이란걸 통해서 위에서 설명한 MQTT 로 들어온 메시지에 대한 추가 처리를 한다. 

     

    새로 생성해보도록 하자. 

     

    먼저 규칙 쿼리를 작성하게 되어있는데 규칙 쿼리는 어떤 토픽으로 부터 어떤 데이터를 가져올 것인가를 지정한다. 

     

    아래와 같이 적었을 경우 ({토픽경로}는 실제 토픽 경로로 입력) {토픽경로}에 있는 모든 메시지를 가져오게 된다, 

     

    규칙 쿼리의 경우 아래 링크를 통해 추가 정보를 얻을 수 있다.

     

    https://docs.aws.amazon.com/ko_kr/iot/latest/developerguide/iot-sql-reference.html

     

    추가로 토픽의 경우 고정된 문자열이 아닌 와일드 카드 문자를 통해서 입력할 수도 있는데 해당 정보는 아래 링크를 통해 확인할 수 있다.

     

    https://docs.aws.amazon.com/ko_kr/iot/latest/developerguide/topics.html

     

    현재 내가 생성한 이전 규칙 쿼리는 아래와 같이 작성되어 있다.

    SELECT * FROM 'dt/sip/capstec/eliot/+/report'

     

    위 규칙 쿼리의 의미는 + 해당 문자를 포함하는 수준의 모든 문자열이라는 의미이다. (정규식의 + 과 비슷)

    다음으로 규칙 쿼리 바로 아래 작업 추가 버튼을 통해 화면을 이동하여 아래 이미지와 같이 선택하고 작업 구성 버튼을 누른다.

     

     

    그러면 이전에 생성해둔 AWS Elasrticsearch 도메인들이 보이는데 이전에도 설명했지만 VPC 액세스로 생성된 도메인은 사용할 수 없다. 

     

    그러니 퍼블릭 액세스로 생성한 도메인을 선택하면 아래와 같이 추가로 입력할 수 있는 인풋 박스가 생성된다. 

     

     

     

    앤드포인트 값은 자동으로 입력되는 값이고 아래 세개의 값은 직접 입력해야한다. 

     

    Elasticsearch의 경우 데이터를 밀어 넣으면 자동으로 인덱스를 만드니 원하는 인덱스와 그에 따른 유형을 입력하도록 하자. 

     

    RDBMS 로 생각하면 Index 가 데이터베이스, Type이 테이블이다. 

     

    ID의 경우 각 데이터를 구분할 수 있는 유일한 값이 들어가야하는데 해당 값의 경우 이전에 작성한 규칙 쿼리의 필드를 가져와서 적용해도 되지만, 

     

    이 글에서 테스트 할 데이터에서는 ID 값으로 사용할 필드가 마땅치 않아서 아래와 같이 입력하여 매번 새로운 UUID를 생성하도록 하였다. 

     

    규칙 쿼리에 대해서는 아래 링크를 통해 추가 정보를 얻을 수 있다.

     

    https://docs.aws.amazon.com/ko_kr/iot/latest/developerguide/iot-sql-functions.html

     

    다음으로 Rule Engine을 실행 할 수 있는 권한을 가진 역할을 설정한다. 

     

    '개발' 카테고리의 다른 글

    AWS VPC란?  (0) 2020.03.24
    Java Garbage Collection (GC)  (0) 2020.03.21
    AWS Elasticsearch  (0) 2020.03.20
    SSL이란?  (0) 2020.03.17
    AWS IOT Solution  (0) 2020.03.17
Designed by Tistory.