IoT Hub 작동 방식
Azure IoT Hub는 IoT 디바이스와 클라우드 솔루션 간 양방향 통신을 가능하게 하는 주요 Azure PaaS(Platform as a Service)입니다. IoT Hub는 모든 IoT 솔루션의 시작점으로, IoT 배포에 공통적인 몇 가지 필수 기능을 구현합니다. 여기에는 네트워킹, 컴퓨팅, 스토리지 기능, 보안이 포함됩니다. 이러한 기능은 아래에서 설명합니다.
지원되는 프로토콜: IoT Hub를 사용하면 디바이스가 디바이스 쪽 통신에 다음 프로토콜을 사용할 수 있습니다. MQTT, WebSocket을 통한 MQTT, AMQP, WebSocket을 통한 AMQP, HTTPS.
디바이스 ID 레지스트리: IoT Hub는 ID 레지스트리를 유지합니다. ID 레지스트리는 IoT Hub 연결이 허용된 디바이스 및 모듈에 대한 정보를 저장합니다. 디바이스 또는 모듈의 ID 레지스트리 항목이 있어야 엔터티가 IoT Hub에 연결할 수 있습니다. 또한 디바이스 또는 모듈은 ID 레지스트리에 저장된 자격 증명을 기반으로 IoT Hub에 인증해야 합니다.
인증: Azure IoT Hub는 공유 액세스 정책 및 ID 레지스트리 보안 자격 증명과 비교해 토큰을 확인함으로써 엔드포인트에 대한 액세스 권한을 부여합니다. X.509 인증서를 사용하여 디바이스를 IoT Hub에 인증할 수 있습니다. 지원되는 인증서에는 기존 X.509 인증서, CA 서명된 X.509 인증서, 자체 생성되고 자체 서명된 X.509 인증서가 포함됩니다.
디바이스 쌍: 디바이스 쌍은 메타데이터, 구성, 조건을 비롯한 디바이스 상태 정보를 저장하는 JSON 문서입니다. Azure IoT Hub는 IoT Hub에 연결하는 디바이스마다 하나의 디바이스 쌍을 유지합니다. 디바이스 쌍은 디바이스와 백 엔드가 디바이스 조건 및 구성 동기화에 사용할 수 있는 디바이스 관련 정보를 저장합니다.
IoT Hub가 노출하는 엔드포인트: IoT Hub는 ID 레지스트리의 각 디바이스에 대해 엔드포인트 집합을 노출합니다. 디바이스-클라우드 메시지 보내기, 클라우드-디바이스 메시지 받기, 파일 업로드 시작, 디바이스 쌍 속성 검색 및 업데이트, 직접 메서드 요청 받기. IoT Hub는 현재 추가(사용자 지정) 엔드포인트로 다음과 같은 Azure 서비스를 지원합니다. Azure Storage 컨테이너, Event Hubs, Service Bus 큐, Service Bus 항목.
Azure IoT Hub Device Provisioning Service로 디바이스 프로비전: IoT Hub Device Provisioning Service는 IoT Hub의 도우미 서비스입니다. 이 디바이스 프로비저닝 서비스는 사람이 개입할 필요 없이 적절한 IoT Hub에 자동 적시 프로비전이 가능하므로 고객은 안전하고 확장성이 뛰어난 방식으로 수백만 대의 디바이스를 프로비전할 수 있습니다.
원격 분석 함수는 IoT Hub의 필수 구성 요소입니다. 원격 분석 함수에는 IoT 디바이스에서 받은 값의 기록 및 전송이 필요합니다. 그러나 IoT Hub는 기본 원격 분석 함수 정도에 그치지 않습니다. IoT Hub의 크기 조정 기능을 사용하면 솔루션의 범위를 늘리거나 줄일 수 있습니다. 솔루션의 크기를 조정하는 기능은 사용하려는 기능과 매일 이동하려는 데이터의 양이라는 두 가지 고려 사항에 따라 달라집니다. 대규모로 디바이스를 배포하려면 이러한 디바이스를 관리해야 합니다. IoT Hub의 프로비전 기능을 사용하면 디바이스의 수명 주기 동안 디바이스를 관리할 수 있습니다. 또한 프로비전은 디바이스의 보안 프로토콜, 액세스 권한, 권한을 설정합니다. 보안 요구 사항은 여러 인증 유형을 사용하여 디바이스 단위 인증 및 액세스 요구 사항을 관리하는 보안 함수의 일부로 볼 수 있습니다. 라우팅 함수는 보안 함수에 따라 메시지 흐름과 메시지 수신자를 결정합니다. 마지막으로 SDK 기능을 사용하여 기본적으로 외부 장치에 연결하고 서비스 통합 기능을 사용하여 다른 서비스와 통합할 수 있습니다.
앞서 설명한, 도시의 다중 센서 작업을 하는 솔루션 개발자에 대한 시나리오를 생각하면 프로토타입은 기본 원격 측정 함수로 시작했을 것입니다. 하지만 도시 전체에 배포하기 위해서는 훨씬 많은 요소가 필요합니다. 여기에는 디바이스를 대규모로 배포 및 프로비전하고 디바이스 수준 보안을 구현하며 메시지 수준 라우팅을 보장하는 기능이 포함됩니다. 도시에 있는 디바이스의 다양성 때문에 SDK를 사용한 기본적 연결 기능은 솔루션의 사용자 기반을 확장합니다. IoT Hub의 기능 없이는 기본 원격 분석 함수 이상으로 솔루션을 배포하기가 어렵습니다.