Amazon Web Services 한국 블로그
AWS IoT Analytics 정식 출시
2018년 4월 24일 AWS IoT Analytics 서비스를 정식 출시합니다. 고객은 IoT Analytics를 사용하여 연결된 디바이스 데이터를 대규모로 정리, 처리, 암호화, 저장 및 분석할 수 있습니다. AWS IoT Analytics는 현재 미국 동부(버지니아 북부), 미국 서부(오레곤), 미국 동부(오하이오) 및 EU(아일랜드)에서 사용할 수 있습니다.
작년 11월에 동료인 Tara Walker가 AWS IoT Analytics 서비스의 일부 기능을 안내하는 훌륭한 게시물을 작성했고 Ben Kehoe(iRobot의 AWS Community Hero이자 연구 과학자)는 AWS Re:Invent에서 Elasticsearch 클러스터로 데이터를 전달하기 위한 iRobot의 기존 “루브 골드버그 머신(Rube Goldberg Machine)”을 AWS IoT Analytics로 대체하는 과정과 관련된 연설을 했습니다.
AWS IoT Analytics 팀은 서비스 평가 중에 제공된 고객 피드백을 기반으로 개발을 거듭해, BatchPutMessage API를 사용하여 외부 소스의 데이터를 수집하는 기능, 저장된 데이터에 대한 데이터 보존 정책을 설정하는 기능, SampleChannelData API를 사용하여 기존 데이터를 재처리하고, 파이프라인 결과를 미리 보고 및 채널의 메시지를 미리 보는 기능을 비롯하여 몇 가지 새로운 기능을 추가했습니다.
IoT Analytics의 핵심 개념을 알아본 다음 예제를 살펴보겠습니다.
AWS IoT Analytics 개념
AWS IoT Analytics는 몇 가지 간단한 개념으로 나눌 수 있습니다. 데이터 준비를 위해서는 채널, 파이프라인 및 데이터 스토어가 필요합니다. 데이터 분석을 위해서는 데이터 세트 및 노트북이 필요합니다.
데이터 준비
- 채널은 IoT Analytics의 진입점이며 기존 IoT Core MQTT 주제에서 또는 Ingestion API를 사용하여 채널에 메시지를 보내는 외부 소스에서 데이터를 수집합니다. 채널은 유연하게 확장 가능하며 이진 또는 JSON 형식의 메시지를 사용합니다. 또한 채널은 필요에 따라 다른 로직을 사용하여 쉽게 재처리할 수 있도록 원시 디바이스 데이터를 영구적으로 저장합니다.
- 파이프라인은 채널의 메시지를 사용하며, 속성 필터링, 필드 추가 또는 제거를 통한 메시지 내용 변환, 복합적인 변환을 위한 람다 함수 호출, 외부 데이터 소스의 데이터 추가, IoT Core의 데이터로 메시지 풍부화 등 활동이라는 단계들을 통해 메시지를 처리하게 합니다. 파이프라인은 데이터를 데이터 스토어로 출력합니다.
- 데이터 스토어는 파이프라인 출력을 위해 쿼리 가능한 IoT 최적화 데이터 스토리지 솔루션입니다. 데이터 스토어는 사용자 지정 보존 기간을 지원하므로 비용을 최적화할 수 있습니다. 고객이 데이터 스토어를 쿼리하면 결과가 데이터 세트에 저장됩니다.
데이터 분석
- 데이터 세트는 SQL 데이터베이스의 뷰와 유사합니다. 고객은 데이터 스토어에 대한 쿼리를 실행하여 데이터 세트를 생성합니다. 데이터 세트는 수동으로 또는 되풀이 일정으로 생성할 수 있습니다.
- 노트북은 Amazon SageMaker에서 호스팅되는 Jupyter 노트북입니다. 이 노트북을 통해 고객은 자신의 데이터를 사용자 지정 코드로 분석하고 데이터에 대한 ML 모델을 구축 또는 교육할 수 있습니다. IoT Analytics는 예측 유지 관리, 변칙 감지, 플릿 세분화 및 예상과 같은 일반적인 IoT 사용 사례에 대해 미리 작성된 모델을 사용하는 여러 노트북 템플릿을 제공합니다.
또한 IoT Analytics를 Amazon QuickSight의 데이터 소스로 사용하여 데이터를 쉽게 시각화할 수 있습니다. 각 서비스에 대한 요금 정보는 AWS IoT Analytics 요금 페이지에서 확인할 수 있습니다.
IoT Analytics 안내
이 안내에서는 콘솔을 사용하지만 여기에 표시된 모든 내용은 CLI를 사용해서도 쉽게 수행할 수 있습니다. 콘솔을 처음 탐색할 때 채널, 파이프라인 및 데이터 스토어를 구축하는 방법을 안내하는 유용한 가이드가 있습니다.
첫 번째 단계는 채널을 생성하는 것입니다. IoT Core가 있는 MQTT 채널에 이미 데이터가 있으므로 이 채널을 선택하겠습니다. 먼저 채널의 이름을 지정하고 보존 기간을 선택합니다.
이제 IoT Core 주제를 선택하고 데이터를 가져옵니다. PutMessages API를 사용하여 메시지를 채널에 직접 게시할 수도 있습니다.
이제 채널이 생겼으므로 다음 단계는 파이프라인을 생성하는 것입니다. 파이프라인을 생성하려면 “Actions(작업)” 드롭다운에서 “Create a pipeline from this channel(이 채널에서 파이프라인 만들기)”를 선택합니다.
이제 파이프라인 마법사를 진행하면서 파이프라인에 이름과 소스를 제공합니다.
파이프라인에 필요한 메시지 속성을 선택하겠습니다. 샘플링 API를 사용하여 채널에서 속성을 가져와 어떤 속성이 필요한지 추측하거나 JSON으로 사양을 업로드할 수 있습니다.
다음으로 파이프라인 활동을 정의합니다. 이진 데이터를 다루는 중이라면 먼저 람다 함수를 사용해 메시지를 JSON으로 역직렬화하여 다른 필터 함수가 작동할 수 있도록 해야 합니다. 필터를 만들고 다른 속성을 기반으로 속성을 계산할 수 있으며, IoT Core 레지스트리의 메타데이터로 메시지를 풍부하게 만들 수 있습니다.
지금은 일부 메시지를 걸러내고 람다 함수로 약간의 변환을 만들고 싶습니다.
마지막으로, 파이프라인의 결과를 출력할 데이터 스토어를 선택하거나 생성합니다.
이제 데이터 스토어가 생겼으므로 데이터 세트를 만들어 데이터 보기를 생성할 수 있습니다.
저는 이 데이터 세트용 데이터 스토어에서 모든 데이터를 선택하기만 하지만 필요에 따라 개별 속성을 선택할 수도 있습니다.
데이터 세트가 생겼습니다! 이 데이터 세트를 원하는 대로 자주 또는 드물게 다시 실행하도록 일정에서 Cron 표현식을 조정할 수 있습니다.
데이터에서 모델을 만들고 싶다면 SageMaker Powered Jupyter 노트북을 생성할 수 있습니다. 변칙 감지 또는 출력 예상과 같이 훌륭한 시작 지점으로 활용할 수 있는 몇 가지 템플릿이 있습니다.
다음에서 변칙 감지 노트북의 예를 볼 수 있습니다.
마지막으로, 데이터에 대한 간단한 시각적 기능을 생성하려는 경우 QuickSight를 사용하여 IoT Analytics 데이터 세트를 가져올 수 있습니다.
개발자 피드백 요청
고객이 AWS IoT Analytics로 구축한 결과물을 확인하게 되어 기쁩니다. IoT 팀의 동료가 서비스에 대한 피드백을 원하므로 댓글이나 트위터를 통해 원하는 기능을 알려주십시오.
– Randall;