'Azure IoT Edge'에 해당되는 글 2건

Study

Container / IoT Edge

기본적으로 Azure IoT Edge를 구동하기 위해서는 Docker나 moby 등 컨테이너 엔진이 필요하다.
만약 Azure IoT Edge로 MS의 Certification 을 받고 싶다면 moby 컨테이너를 사용해야 한다.

라즈베리파이를 기준으로, moby-engine 과 iot-edge를 단순 설치하기 위해서는 최소한 250MB의 저장공간이 필요하다.


기본 모듈

Azure IoT Edge에서 기본 예제로 제공하는 SimulatedTemperatureSensor를 IoT Edge에서 동작해본다.

https://azuremarketplace.microsoft.com/en-us/marketplace/apps/azure-iot.simulated-temperature-sensor

Overview에는 SimulatedTemperatureSensor 의 minumum hardware requirements에 대해 적혀 있다.

  • Linux or Windows Container
  • x64 or arm32
  • 150Mb disk space
  • 50Mb RAM


기본모듈이 사용하는 메모리

moby-engine과 iot-edge를 설치하고 Azure IoT Edge runtime이 실행할때의 메모리 사용량은 215MB 정도이다.



SimulatedTemperatureSensor를 1개 동작시킬 경우 260MB 정도로 늘어난 것을 확인할 수 있다.


SimulatedTemperatureSensor를 하나 더 추가하니 386MB로 100MB 이상이 추가로 사용되고 있었다.



총 3개의 SimulatedTemperatureSensor를 구동시키니 432MB 메모리를 사용한다.




Azure IoT Edge 최소 시스템 요구사항

Azure IoT Edge의 최소 요구사항을 살펴보면, 라즈베리파이3 정도의 디바이스에서 서버등급의 장비에서 동작하는 목표로 하는 솔루션이다.
그리고 최소 시스템 요구사항에 대해 모호한 표현으로 적혀있다.
직접 라즈베리파이에 Azure IoT Edge를 설치해보고 모듈을 올려보니 최소 요구사항이 애매한 이유를 알 수 있었다.

테스트에서는 기본 모듈인 SimulatedTemperatureSensor를 사용했지만, 실제 응용에서는 다양한 동작과 데이터 처리를 해야할 것이다.

단순 설치와 동작에는 기존의 OS와 250MB 정도의 설치 공간, 그리고 300MB 정도의 RAM이 사용되었다.

여기에 Azure에서는 Azure Function, Azure Stream Analytics, Azure SQL DB 등 서비스도 Edge runtime에서 구동할 수 있도록 지원하고 있는데, 이런 처리들을 하는데 더 많은 리소스를 사용하게 될 것이다.

'Study' 카테고리의 다른 글

라즈베리파이에 Azure IoT Edge 설치하기  (0) 2020.11.10
Study

구성

기본적으로 Azure IoT Edge는 Windows/Linux 운영체제에서 moby 컨테이너를 사용하여 동작하도록 배포하고 있다.

Windows OS에서 Linux 컨테이너를 사용하거나, Linux OS에서 Windows 컨테이너를 사용하는 것은 가능하지만, 실제 제품화를 위해서는 Windows OS + Windows 컨테이너나, Linux OS + Linux 컨테이너만을 지원하는 것 같다.

Container overview

OS

2020년 9월까지만 하더라도 Azure Certified Device certification에서 계층 1 OS만을 지원했던 것으로 보인다.

최근에(2020년 10월 22일) 업데이트 된 문서를 보면 계층 2 OS도 인증을 받을 수 있도록 추가된 것 같다.
https://github.com/Azure/azure-iot-device-ecosystem/blob/master/Azure_Certified_Device/Edge_Managed/docs/Azure_Certified_Device-Edge-Managed_Requirements-v1.0.md

계층 1 OS에는 Raspbian Stretch가 포함되어 있고, Raspbian Buster 는 계층 2 OS에 포함되어 있다.

https://en.wikipedia.org/wiki/Raspberry_Pi_OS

Raspbian Strech는 Debian 버전 9에 해당하며 라즈베리파이 3+ 까지 지원하는 OS이다.
Raspbian Buster는 Debian 버전 10에 해당하고 라즈베리파이 4까지 지원한다. Buster 버전은 2019년 6월부터 Release 되었다.

이번 설치에서는 Raspbian Buster 버전으로 진행했다. MS의 가이드 상에는 Buster로 진행할 경우 OpenSSL 버전을 추가로 설치하라고 되어있는데, 진행해보니 설치하지 않아도 동작은 하는 것 같다.

OpenSSL 패키지 추가 설치

sudo apt-get install libssl1.0.2

IoT Edge runtime 설치

  1. IoT Edge 패키지 리스트 설치
curl https://packages.microsoft.com/config/debian/stretch/multiarch/prod.list > ./microsoft-prod.list
sudo cp ./microsoft-prod.list /etc/apt/sources.list.d/
curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.gpg
sudo cp ./microsoft.gpg /etc/apt/trusted.gpg.d/
  • OS 종류에 따라 curl로 다운로드하는 리스트가 다름
  1. moby 컨테이너 설치

    sudo apt-get update
    sudo apt-get install moby-engine
    sudo apt-get install moby-cli
  2. IoT Edge runtime 설치

    sudo apt-get update
    sudo apt-get install iotedge

IoT Hub와 연결하기

  1. device_connection_string 입력하기
    IoT Hub에 IoT Edge Device를 생성한 후 Device의 Connection String을 라즈베리파이의 IoT Edge runtime의 configuration file에 입력한다.
    sudo nano /etc/iotedge/config.yaml
# Manual provisioning configuration provisioning:
    source: "manual"
    device_connection_string: "HostName=EdgeTestHub.azure-devices.net;DeviceId=rpi-edge;SharedAccessKey=123412341234"
# DPS TPM provisioning configuration
  1. IoT Edge runtime 실행하기
    sudo systemctl start iotedge

'Study' 카테고리의 다른 글

Azure IoT Edge에서 사용하는 리소스  (0) 2020.11.10
1
블로그 이미지

IoT 개발자 블로그이고 싶다.

1byte