장치 관리 및 제어
이 개요에서는 일반적인 Azure IoT 솔루션에서 디바이스를 관리하고 제어하는 주요 개념을 소개합니다. 각 섹션에는 자세한 내용과 지침을 제공하는 콘텐츠에 대한 링크가 포함되어 있습니다.
IoT Central 애플리케이션은 IoT Hub 및 DPS(Device Provisioning Service) 서비스를 내부적으로 사용합니다. 따라서 이 문서의 개념은 IoT Central을 사용하여 IoT 시나리오를 탐색하든, IoT Hub와 DPS를 사용하여 솔루션을 빌드하든 관계없이 적용됩니다.
다음 다이어그램에서는 일반적인 IoT 솔루션의 구성 요소에 대한 개략적인 보기를 보여 줍니다. 이 문서에서는 IoT 솔루션의 장치 관리 및 제어 구성 요소를 중점적으로 다룹니다.
Azure IoT에서 장치 관리는 디바이스 프로비전 및 업데이트와 같은 프로세스를 나타냅니다. 장치 관리에는 다음 태스크가 포함됩니다.
- 장치 등록
- 디바이스 프로비전
- 디바이스 배포
- 디바이스 업데이트
- 장치 관리 및 회전
- 디바이스 모니터링
- 디바이스 사용 및 사용 안 함
Azure IoT에서 명령 및 컨트롤은 디바이스에 명령을 보내고 해당 디바이스로부터 응답을 받을 수 있는 프로세스를 나타냅니다. 예를 들어 다음을 위해 디바이스에 명령을 보낼 수 있습니다.
- 대상 온도를 설정합니다.
- 지난 2시간 동안의 최대 및 최소 온도 값을 요청합니다.
- 원격 분석 간격을 10초로 설정합니다.
기본 형식
Azure IoT 솔루션은 장치 관리와 명령 및 제어 모두에 대해 다음 기본 요소를 사용할 수 있습니다.
- 상태 데이터를 클라우드와 공유하고 동기화하는 디바이스 쌍. 예를 들어 디바이스는 디바이스 쌍을 사용하여 제어하는 밸브의 현재 상태를 클라우드에 보고하고 클라우드에서 원하는 대상 온도를 받을 수 있습니다.
- 디지털 세계의 디바이스를 나타내는 '디지털 트윈'. 예를 들어 디지털 트윈은 디바이스의 물리적 위치, 기능 및 다른 디바이스와의 관계를 나타낼 수 있습니다. 디바이스 쌍과 디지털 트윈의 차이점에 대해 자세히 알아보려면 IoT 플러그 앤 플레이 디지털 트윈 이해를 참조하세요.
- 클라우드에서 명령을 수신하는 직접 메서드. 직접 메서드에는 매개 변수가 있으며 응답을 반환할 수 있습니다. 예를 들어 클라우드는 직접 메서드를 호출하여 디바이스를 30초 안에 다시 부팅하도록 요청할 수 있습니다.
- 클라우드에서 단방향 알림을 수신하는 클라우드-디바이스 메시지. 업데이트를 다운로드할 준비가 되었다는 알림을 예로 들 수 있습니다.
자세한 내용은 클라우드-디바이스 통신 지침을 참조하세요.
장치 등록
디바이스를 IoT 허브에 연결하려면 먼저 등록해야 합니다. 디바이스 등록은 클라우드에서 디바이스 ID를 만드는 프로세스입니다. 각 IoT 허브에는 자체 내부 디바이스 레지스트리가 있습니다. 디바이스 ID는 Azure IoT에 연결할 때 디바이스를 인증하는 데 사용됩니다. 디바이스 등록 항목에는 다음 속성이 포함됩니다.
- 고유 디바이스 ID.
- 대칭 키 또는 X.509 인증서와 같은 인증 정보.
- 디바이스의 유형입니다. IoT Edge 디바이스인가요?
디바이스가 손상되거나 제대로 작동하지 않는 경우 디바이스 레지스트리에서 사용하지 않도록 설정하여 클라우드에 연결하지 못하도록 할 수 있습니다. 문제가 해결된 후 디바이스가 클라우드에 다시 연결할 수 있도록 하려면 디바이스 레지스트리에서 다시 사용하도록 설정할 수 있습니다. 디바이스 레지스트리에서 디바이스를 영구적으로 제거하여 디바이스가 클라우드에 연결되지 않도록 할 수도 있습니다.
자세한 내용은 IoT 허브의 ID 레지스트리 이해를 참조하세요.
IoT Central은 기본 IoT 허브에서 디바이스 레지스트리를 관리하기 위한 UI를 제공합니다. 자세한 내용은 디바이스 추가(IoT Central)를 참조하세요.
디바이스 프로비전
연결해야 하는 IoT 허브의 세부 정보를 사용하여 솔루션의 각 디바이스를 구성해야 합니다. 솔루션에서 각 디바이스를 수동으로 구성할 수 있지만 이 방법은 많은 디바이스에서 실용적이지 않을 수 있습니다. 이 문제를 해결하려면 DPS(Device Provisioning Service)를 사용하여 각 디바이스를 IoT 허브에 자동으로 등록한 다음, 필요한 연결 정보를 사용하여 각 디바이스를 프로비전할 수 있습니다. IoT 솔루션이 여러 IoT 허브를 사용하는 경우 DPS를 사용하여 디바이스에 가장 가까운 허브인 등의 기준에 따라 허브에 디바이스를 프로비전할 수 있습니다. 필드에 디바이스를 물리적으로 배포하기 전에 디바이스를 등록하고 프로비전하는 규칙을 사용하여 DPS를 구성할 수 있습니다.
IoT 솔루션에서 IoT Hub를 사용하는 경우 DPS를 사용하는 것은 선택 사항입니다. IoT Central을 사용하는 경우 솔루션은 IoT Central에서 관리하는 DPS 인스턴스 자동으로 사용합니다.
자세한 내용은 디바이스 프로비저닝 서비스 개요를 참조하세요.
디바이스 배포
Azure IoT에서 디바이스 배포는 일반적으로 IoT Edge 디바이스에 소프트웨어를 설치하는 프로세스를 나타냅니다. IoT Edge 디바이스가 IoT 허브에 연결되면 디바이스에서 실행할 모듈의 세부 정보가 포함된 배포 매니페스트를 받습니다. 배포 매니페스트에는 모듈에 대한 구성 정보도 포함됩니다. IoT Edge 디바이스에 사용할 수 있는 여러 표준 모듈이 있습니다. 사용자 고유의 사용자 지정 모듈을 만들 수도 있습니다.
자세한 내용을 알아보려면 Azure IoT Edge이란?을 참조하세요.
IoT Central을 사용하는 경우 IoT Central UI를 사용하여 배포 매니페스트를 관리할 수 있습니다.
디바이스 업데이트
일반적으로 IoT 솔루션에는 디바이스 소프트웨어를 업데이트하는 방법이 포함되어야 합니다. IoT Edge 디바이스의 경우 배포 매니페스트를 업데이트하여 디바이스에서 실행되는 모듈을 업데이트할 수 있습니다.
비 IoT Edge 디바이스의 경우 디바이스 펌웨어를 업데이트하는 방법이 있어야 합니다. 이 업데이트 프로세스는 클라우드-디바이스 메시지를 사용하여 디바이스에 펌웨어 업데이트를 사용할 수 있음을 알릴 수 있습니다. 그런 다음, 디바이스는 사용자 지정 코드를 실행하여 업데이트를 다운로드하고 설치합니다.
Device Update for IoT Hub는 디바이스를 업데이트하기 위한 관리형 솔루션을 제공합니다. 이를 통해 펌웨어 업데이트를 클라우드에 업로드한 다음, 디바이스에 배포할 수 있습니다. 또한 업데이트 프로세스를 모니터링하고 업데이트가 실패할 경우 이전 버전으로 롤백할 수 있습니다.
장치 관리 및 회전
IoT 솔루션의 수명 주기 동안 디바이스를 인증하는 데 사용되는 키를 롤오버해야 할 수 있습니다. 예를 들어 키가 손상된 것으로 의심되거나 인증서가 만료되는 경우 키를 롤오버해야 할 수 있습니다.
디바이스 모니터링
전체 솔루션 모니터링의 일환으로 디바이스의 상태를 모니터링할 수 있습니다. 예를 들어 디바이스의 상태를 모니터링하거나 디바이스가 더 이상 클라우드에 연결되지 않은 경우를 감지할 수 있습니다. 디바이스 모니터링 옵션은 다음과 같습니다.
- 디바이스는 디바이스 쌍을 사용하여 현재 상태를 클라우드에 보고합니다. 예를 들어 디바이스는 현재 내부 온도 또는 현재 배터리 수준을 보고할 수 있습니다.
- 디바이스는 클라우드로 원격 분석 메시지를 전송하여 경고를 발생시킬 수 있습니다.
- IoT Hub는 디바이스가 클라우드에 연결하거나 연결을 끊을 때 이벤트를 발생할 수 있습니다.
- IoT Central은 지정된 조건이 충족될 때 규칙을 사용하여 작업을 실행할 수 있습니다.
- 기계 학습 도구를 사용하여 디바이스 원격 분석 스트림을 분석하여 디바이스 문제를 나타내는 변칙을 식별합니다.
자세한 내용은 디바이스 연결 상태 모니터링(IoT Hub)을 참조하세요.
디바이스 마이그레이션
디바이스를 IoT Central에서 IoT Hub로 마이그레이션해야 하는 경우 디바이스 마이그레이션 도구를 사용할 수 있습니다. 자세한 내용은 IoT Central에서 IoT Hub로 디바이스 마이그레이션을 참조하세요.
명령 및 제어
디바이스에 명령을 보내 동작을 제어하려면 다음을 사용합니다.
직접 메서드는 결과를 즉시 확인해야 하는 통신에 사용됩니다. 대화형 디바이스 제어(예: 선풍기 켜기)에 대해 직접 메서드를 자주 사용합니다.
디바이스를 원하는 특정 상태로 만들려는 장기 실행 명령의 경우 디바이스 쌍 원하는 속성. 예를 들어 원격 분석 송신 간격을 30분으로 설정합니다.
디바이스에 대한 단방향 알림의 경우 클라우드-디바이스 메시지.
자세한 내용은 클라우드-디바이스 통신 지침을 참조하세요.
일부 시나리오에서는 피드백 루프를 기반으로 디바이스 제어를 자동화할 수 있습니다. 예를 들어 디바이스 온도가 너무 높으면 클라우드에서 실행되는 논리가 팬을 켜는 명령을 보낼 수 있습니다. 그런 다음, 온도가 정상으로 돌아오면 클라우드 프로세스에서 팬을 끄는 명령을 보낼 수 있습니다.
이러한 종류의 자동화를 로컬로 실행할 수도 있습니다. 예를 들어 IoT Edge를 사용하여 게이트웨이 디바이스를 구현하는 경우 IoT Edge 모듈에서 디바이스를 제어하는 논리를 실행할 수 있습니다. 에지에서 이러한 종류의 논리를 실행하면 대기 시간을 줄이고 네트워크 중단이 있는 경우 복원력을 제공할 수 있습니다.
작업
직접 메서드, 원하는 속성 및 클라우드-디바이스 메시지를 사용하여 개별 디바이스에 명령을 보낼 수 있습니다. 여러 디바이스에 명령을 보내야 하는 경우 작업을 사용할 수 있습니다. 작업을 사용하면 명령 및 원하는 속성 업데이트를 동시에 여러 디바이스에 예약하고 보낼 수 있습니다. 작업을 사용하여 명령의 진행률을 모니터링하고 명령이 실패할 경우 이전 상태로 롤백할 수도 있습니다.
자세한 내용은 다음을 참조하세요.
다음 단계
이제 Azure IoT 솔루션에서 디바이스 관리 및 제어에 대한 개요를 살펴보았으므로 몇 가지 제안되는 다음 단계는 다음과 같습니다.