Azure IoT Central 아키텍처
IoT Central은 IoT 시나리오를 신속하게 평가할 수 있는 준비된 환경입니다. 이는 aPaaS(application platform as a service) IoT 솔루션으로, 기본 인터페이스는 웹 UI입니다. 애플리케이션과 프로그래밍 방식으로 상호 작용할 수 있는 REST API도 있습니다.
이 문서에는 IoT Central 솔루션 아키텍처의 주요 개념에 대한 개요가 나와 있습니다.
IoT Central 애플리케이션의 주요 기능은 다음과 같습니다.
디바이스 관리
IoT Central을 사용하면 솔루션에 데이터를 보내는 IoT 디바이스를 관리할 수 있습니다. 예를 들어, 다음을 수행할 수 있습니다.
- 애플리케이션에 연결할 수 있는 디바이스와 인증 방법을 제어합니다.
- 디바이스 템플릿을 사용하여 애플리케이션에 연결할 수 있는 디바이스 유형을 정의합니다.
- 속성을 설정하거나 연결된 디바이스에서 명령을 호출하여 디바이스를 관리합니다. 예를 들어, 자동 온도 조절기 디바이스에 대한 대상 온도 속성을 설정하거나 명령을 호출하여 펌웨어를 업데이트하도록 디바이스를 트리거합니다. 다음에서 속성을 설정하고 명령을 호출할 수 있습니다.
- 사용자 지정 가능한 웹 UI를 통한 개별 디바이스
- 주문형 또는 예약된 작업이 있는 여러 디바이스
- 고객 주소나 마지막 서비스 날짜와 같은 디바이스 메타데이터를 유지 관리합니다.
데이터 보기 및 분석
IoT Central 애플리케이션에서는 개별 디바이스의 데이터 또는 여러 디바이스에서 집계된 데이터를 보고 분석할 수 있습니다.
- 매핑을 사용하여 복잡한 디바이스 원격 분석을 IoT Central 내의 구조적 데이터로 변환합니다.
- 디바이스 템플릿을 사용하여 특정 유형의 개별 디바이스에 대한 사용자 지정 뷰를 정의합니다. 예를 들어, 개별 자동 온도 조절기의 온도를 시간의 경과에 따라 표시하거나 배달 트럭의 실시간 위치를 표시할 수 있습니다.
- 기본 제공되는 분석 기능을 사용하여 여러 디바이스에 대한 집계 데이터를 확인합니다. 예를 들면 여러 소매점의 총 점유율을 확인할 수도 있고, 점유율이 가장 높거나 낮은 매장을 식별할 수도 있습니다.
- 사용자 지정 대시보드를 만들어 디바이스를 관리하는 데 도움을 받을 수 있습니다. 예를 들면 맵, 타일, 차트를 추가하여 디바이스 원격 분석을 표시할 수 있습니다.
솔루션 구성
IoT Central에서 다음 영역에 대한 보안을 구성하고 관리할 수 있습니다.
- 애플리케이션에 대한 사용자 액세스.
- 애플리케이션에 대한 디바이스 액세스.
- 애플리케이션에 프로그래밍 방식으로 액세스합니다.
- 애플리케이션에서 다른 서비스에 대해 인증
- 감사 로그를 통해 애플리케이션의 활동 추적
자세히 알아보려면 IoT Central 보안 가이드를 참조하세요.
디바이스
디바이스는 센서에서 데이터를 수집하여 원격 분석 스트림으로 IoT Central 애플리케이션에 보냅니다. 예를 들면, 냉장 장치에서 온도 값 스트림을 보내거나 배달 트럭에서 해당 위치를 스트리밍합니다.
디바이스는 속성을 사용하여 밸브가 열려 있는지, 닫혀 있는지 같은 상태를 보고할 수 있습니다. 또한 IoT Central 애플리케이션은 속성을 사용하여 디바이스 상태를 설정할 수 있습니다(예: 자동 온도 조절기의 대상 온도 설정).
IoT Central은 디바이스에서 명령을 호출하여 디바이스를 제어할 수도 있습니다. 예를 들면, 펌웨어 업데이트를 다운로드하여 설치하도록 디바이스에 지시합니다.
디바이스가 구현하는 원격 분석, 속성 및 명령을 총칭하여 디바이스 기능이라고 합니다. 디바이스와 IoT Central 애플리케이션이 공유하는 모델에서 이러한 기능을 정의합니다. IoT Central에서 이 모델은 특정 유형의 디바이스를 정의하는 디바이스 템플릿의 일부입니다. 자세히 알아보려면 디바이스 템플릿에 디바이스 할당을 참조하세요.
디바이스 구현은 IoT Central과 통신할 수 있도록 IoT 플러그 앤 플레이 규칙을 따라야 합니다. 자세히 알아보려면 다양한 언어의 SDK 및 샘플을 참조하세요.
디바이스는 지원되는 프로토콜, 즉 MQTT, AMQP 또는 HTTP 중 하나를 사용하여 IoT Central에 연결합니다.
게이트웨이
로컬 게이트웨이 디바이스는 다음과 같은 여러 시나리오에서 유용합니다.
- 디바이스는 인터넷에 연결할 수 없으므로 IoT Central에 직접 연결할 수 없습니다. 예를 들면, 게이트웨이 디바이스를 통해 연결해야 하는 Bluetooth 지원 점유 센서 컬렉션이 있을 수 있습니다.
- 디바이스에서 생성된 데이터의 양이 많습니다. 비용을 절감하려면 IoT Central 애플리케이션으로 보내기 전에 로컬 게이트웨이에서 데이터를 결합하거나 집계합니다.
- 솔루션은 데이터의 변칙에 신속히 응답해야 합니다. IoT Central 애플리케이션에 데이터를 보내지 않고도 변칙을 식별하고 로컬로 작업을 수행하는 게이트웨이 디바이스에서 규칙을 실행할 수 있습니다.
게이트웨이 디바이스는 일반적으로 독립 실행형 디바이스보다 더 많은 처리 능력이 필요합니다. 게이트웨이 디바이스를 구현하는 한 가지 옵션은 Azure IoT Edge를 사용하고 표준 IoT Edge 게이트웨이 패턴 중 하나를 적용하는 것입니다. 적절한 디바이스에서 사용자 지정 게이트웨이 코드를 실행할 수도 있습니다.
데이터 내보내기
IoT Central에는 기본 제공되는 분석 기능이 있지만, 다른 서비스와 애플리케이션으로 데이터를 내보낼 수 있습니다.
IoT Central 데이터 내보내기 정의의 변환을 통해 디바이스 데이터를 대상으로 내보내기 전에 디바이스 데이터의 형식과 구조를 조작할 수 있습니다.
데이터를 내보내는 이유는 다음과 같습니다.
스토리지 및 분석
장기간 저장하고 보관 및 보존 정책을 제어하려면 다른 저장 대상으로 지속적으로 데이터를 내보낼 수 있습니다. IoT Central 외부에서 별도의 스토리지 서비스를 사용하면 다른 분석 도구를 사용하여 솔루션의 데이터에서 인사이트를 얻을 수 있습니다.
비즈니스 자동화
IoT Central의 규칙을 사용하면 IoT Central 내의 조건에 따라 이메일을 보내거나 이벤트를 발생시키는 등의 외부 작업을 트리거할 수 있습니다. 예를 들어, 디바이스 주변 온도가 임계값에 도달하면 엔지니어에게 알릴 수 있습니다.
추가 계산
IoT Central 또는 다른 서비스에서 데이터를 사용하려면 데이터를 변환하거나 계산해야 할 수 있습니다. 예를 들어, 배달 트럭에서 보고한 위치 데이터에 현지 날씨 정보를 추가할 수 있습니다.
REST API를 사용하여 확장
다른 애플리케이션과 서비스에서 애플리케이션을 관리할 수 있도록 통합을 빌드합니다. 예를 들어, 프로그래밍 방식으로 애플리케이션의 디바이스를 관리하거나 사용자 정보를 외부 시스템과 동기화합니다.
확장성
IoT Central 애플리케이션은 내부적으로 IoT Hub 및 DPS(Device Provisioning Service)와 같은 여러 Azure 서비스를 사용합니다. 이러한 기본 서비스 중 대부분은 다중 테넌트입니다. 그러나 고객 데이터를 완전히 격리하기 위해 IoT Central은 단일 테넌트 IoT 허브를 사용합니다.
IoT Central은 애플리케이션의 부하 프로필에 따라 IoT 허브의 크기를 자동으로 조정합니다. IoT Central은 개별 IoT 허브를 스케일 업하고 애플리케이션의 IoT 허브 수를 스케일 아웃할 수 있습니다. 또한 IoT Central은 다른 기본 서비스의 크기를 자동으로 조정합니다.
데이터 내보내기
IoT Central 애플리케이션에서 다른 사용자 구성 서비스를 사용하는 경우가 많습니다. 예를 들어 데이터를 서비스(예: Azure Event Hubs 및 Azure Blob Storage)로 지속적으로 내보내도록 IoT Central 애플리케이션을 구성할 수 있습니다.
구성된 데이터 내보내기에서 대상에 쓸 수 없는 경우 IoT Central은 최대 15분 동안 데이터를 다시 전송하려고 시도합니다. 그 후 IoT Central에서 대상을 실패로 표시합니다. 실패한 대상은 쓰기 가능한지 확인하기 위해 주기적으로 확인됩니다.
데이터 내보내기를 사용하지 않도록 설정했다가 다시 사용하도록 설정하여 IoT Central에서 실패한 내보내기를 다시 시작하도록 강제할 수 있습니다.
사용하는 데이터 내보내기 대상 서비스에 대한 고가용성 및 확장성 모범 사례를 검토합니다.
- Azure Blob Storage: Azure Storage 중복성 및 Blob 스토리지에 대한 성능 및 확장성 검사 목록
- Azure Event Hubs: Event Hubs의 가용성 및 일관성 및 Event Hubs를 사용하여 크기 조정
- Azure Service Bus: Service Bus 가동 중단 및 재해로부터 애플리케이션을 보호하기 위한 모범 사례 및 Azure Service Bus 네임스페이스의 메시징 단위 자동 업데이트
고가용성 및 재해 복구
HADR 기능은 IoT Central 애플리케이션을 만든 시기에 따라 달라집니다.
2021년 4월 이전에 만든 애플리케이션
2021년 4월 이전에 만든 일부 애플리케이션은 단일 IoT 허브를 사용합니다. 이러한 애플리케이션의 경우 IoT Central은 HADR 기능을 제공하지 않습니다. IoT 허브를 사용할 수 없게 되면 애플리케이션을 사용할 수 없게 됩니다.
az iot central device manual-failover
명령을 사용하여 애플리케이션에서 여전히 단일 IoT 허브를 사용하는지 확인합니다. 이 명령은 애플리케이션에 단일 IoT 허브가 있는 경우 오류를 반환합니다.
2021년 4월 이후 및 2023년 4월 이전에 만든 애플리케이션
고가용성 디바이스 연결을 위해 IoT Central 애플리케이션에는 항상 둘 이상의 IoT 허브가 있습니다. IoT Central에서 부하 프로필의 변경에 대응하여 애플리케이션의 크기를 조정함에 따라 허브의 수가 증가하거나 감소할 수 있습니다.
또한 IoT Central은 가용성 영역을 사용하여 고가용성을 사용하는 다양한 서비스를 만듭니다.
재해 복구가 필요한 인시던트는 서비스 하위 집합을 사용할 수 없게 되는 것부터 전체 지역을 사용할 수 없게 되는 것까지 다양할 수 있습니다. IoT Central은 인시던트의 특성과 규모에 따라 다양한 복구 프로세스를 따릅니다. 예를 들어 매우 심각한 오류가 발생하여 전체 Azure 지역을 사용할 수 없게 되면 재해 복구 절차에서 애플리케이션을 동일한 지역의 다른 지역으로 장애 조치(failover)합니다.
2023년 4월 이후에 만든 애플리케이션
2023년 4월 이후에 만든 IoT Central 애플리케이션에는 처음에 단일 IoT 허브가 있습니다. IoT 허브를 사용할 수 없게 되면 애플리케이션을 사용할 수 없게 됩니다. 그러나 IoT Central은 애플리케이션의 크기를 자동으로 조정하고 연결된 10,000개의 각 디바이스에 대해 새 IoT 허브를 추가합니다. 디바이스가 10,000개 미만인 애플리케이션에 여러 IoT 허브가 필요한 경우 IoT Central 고객 지원에 요청을 제출합니다.
az iot central device manual-failover
명령을 사용하여 애플리케이션에서 여전히 단일 IoT 허브를 사용하는지 확인합니다. 이 명령은 애플리케이션에 현재 단일 IoT 허브가 있는 경우 오류를 반환합니다.