Share via


IoT Hub 및 안정성

Azure IoT Hub는 클라우드에서 호스트되는 관리 서비스이며, IoT 애플리케이션과 연결된 디바이스 간의 통신을 위한 중앙 메시지 허브 역할을 합니다. 수백만 개의 디바이스와 백 엔드 솔루션을 안정적으로 안전하게 연결할 수 있습니다. 거의 모든 디바이스를 IoT Hub에 연결할 수 있습니다.

IoT Hub는 디바이스 만들기, 디바이스 연결 및 디바이스 오류를 추적하는 데 도움이 되도록 모니터링을 지원합니다.

IoT Hub는 다음과 같은 메시지 패턴도 지원합니다.

  • 디바이스-클라우드 원격 분석
  • 디바이스에서 파일 업로드
  • 클라우드에서 디바이스를 제어하는 요청-회신 메서드

IoT Hub에 대한 자세한 내용은 IoT 개념 및 Azure IoT Hub를 참조하세요.

IoT Hub에서 신뢰할 수 있는 워크로드를 지원하는 방법을 알아보려면 다음 토픽을 참조하세요.

다음 섹션은 Azure IoT Hub 및 안정성과 관련이 있습니다.

  • 디자인 고려 사항
  • 구성 검사 목록
  • 권장 구성 옵션

디자인 고려 사항

Azure IoT Hub 서비스 수준 계약에 대한 자세한 내용은 Azure IoT Hub의 SLA를 참조하세요.

검사 목록

안정성을 염두에 두고 Azure IoT Hub를 구성했나요?

  • 다른 지역에 두 번째 IoT Hub를 프로비저닝하고 디바이스에서 라우팅 논리를 구축합니다.
  • 이벤트를 자주 보낼 때에는 AMQP 또는 MQTT 프로토콜을 사용합니다.
  • 디바이스 연결에 X.509 인증서를 사용하는 경우 프로덕션 환경에서 루트 CA가 유효성을 검사한 인증서만 사용합니다.
  • 최대 처리량을 얻으려면 기본 제공 엔드포인트를 사용하려는 경우 IoT Hub를 만들 때 최대 파티션 수(32)를 사용합니다.
  • 스케일링의 경우 지역별 IoT Hub를 여러 개 추가하지 말고 계층 및 할당된 IoT Hub 단위를 늘립니다.
  • 높은 처리량 시나리오에서는 일괄 처리 이벤트를 사용합니다.
  • 가능한 최소 대기 시간이 필요한 경우 라우팅을 사용하여 기본 제공 엔드포인트에서 이벤트를 읽지 마세요.
  • 솔루션 전체 가용성 및 재해 복구 전략의 일환으로 IoT Hub 지역 간 재해 복구 옵션을 사용하는 것이 좋습니다.
  • 기본 제공 Event Hub 호환 엔드포인트에서 디바이스 원격 분석 데이터를 읽어 오는 경우 Event Hub 호환 엔드포인트 소비자 권장 사항을 참조하세요.
  • SDK를 사용하여 IoT Hub에 이벤트를 보내는 경우 재시도 정책(EventHubsException 또는 OperationCancelledException)에 의해 throw된 예외가 제대로 catch되는지 확인합니다.
  • 제한 및 할당량 소진으로 인한 원격 분석 중단을 방지하려면 사용자 지정 자동 스케일링 솔루션을 추가하는 것이 좋습니다.

구성 권장 사항

Azure IoT Hub를 구성할 때 안정성을 최적화하려면 다음 권장 사항을 고려하세요.

권장 Description
다른 지역에 두 번째 IoT Hub를 프로비저닝하고 디바이스에서 라우팅 논리를 구축합니다. 이러한 구성은 컨시어지 서비스를 통해 더욱 향상할 수 있습니다.
이벤트를 자주 보낼 때에는 AMQP 또는 MQTT 프로토콜을 사용합니다. AMQPMQTT는 세션을 초기화할 때 네트워크 비용이 더 많이 듭니다. 그러나 HTTPS를 사용하려면 모든 요청에 추가 TLS 오버헤드가 필요합니다. AMQPMQTT는 자주 게시하는 게시자에게 더 높은 성능을 제공합니다.
디바이스 연결에 X.509 인증서를 사용하는 경우 프로덕션 환경에서 루트 CA가 유효성을 검사한 인증서만 사용합니다. 인증서가 만료되기 전에 업데이트하는 프로세스를 마련합니다.
최대 처리량을 얻으려면 기본 제공 엔드포인트를 사용하려는 경우 IoT Hub를 만들 때 최대 파티션 수(32)를 사용합니다. Event Hub 호환 엔드포인트에 대한 디바이스-클라우드 파티션 수는 달성할 수 있는 다운스트림 병렬 처리 수준을 반영합니다. 이를 통해 32개 동시 처리 엔터티로 스케일 업할 수 있으며 가장 높은 송신 및 수신 가용성이 제공됩니다. 만든 후에는 이 숫자를 변경할 수 없습니다.
스케일링의 경우 지역별 IoT Hub를 여러 개 추가하지 말고 계층 및 할당된 IoT Hub 단위를 늘립니다. 지역당 2개 이상의 IoT Hub를 추가해도 모든 허브가 동일한 기본 클러스터에서 실행될 수 있으므로 추가 복원력을 제공하지는 않습니다.
높은 처리량 시나리오에서는 일괄 처리 이벤트를 사용합니다. 이 서비스는 이벤트가 하나 있는 배열 대신 여러 이벤트가 있는 배열을 소비자에게 전달합니다. 사용 애플리케이션은 이 배열을 처리해야 합니다.
가능한 최소 대기 시간이 필요한 경우 라우팅을 사용하여 기본 제공 엔드포인트에서 이벤트를 읽지 마세요. IoT Hub에서 메시지 라우팅을 사용하는 경우 메시지 전달 대기 시간이 증가합니다. 평균적으로 대기 시간은 500 ms를 초과하지 않지만, 전달 대기 시간에 대한 보장은 없습니다.
솔루션 전체 가용성 및 재해 복구 전략의 일환으로 IoT Hub 지역 간 재해 복구 옵션을 사용하는 것이 좋습니다. 이 옵션은 IoT Hub 엔드포인트를 쌍을 이루는 Azure 지역으로 이동합니다. 디바이스 레지스트리만 복제됩니다. 이벤트는 보조 지역에 복제되지 않습니다. 고객이 시작한 장애 조치(failover)의 RTO는 10분에서 몇 시간 사이입니다. Microsoft에서 시작한 장애 조치(failover)의 RTO는 2-26시간입니다. 이 RTO가 고객의 요구 사항에 부합하고 더 광범위한 가용성 전략에 적합한지 확인합니다. 더 높은 RTO가 필요한 경우 클라이언트 쪽 장애 조치(failover) 패턴을 구현하는 것이 좋습니다.
SDK를 사용하여 IoT Hub에 이벤트를 보내는 경우 재시도 정책(EventHubsException 또는 OperationCancelledException)에 의해 throw된 예외가 제대로 catch되는지 확인합니다. HTTPS를 사용하는 경우 적절한 재시도 패턴을 구현합니다.

다음 단계