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 프로토콜을 사용합니다. |
AMQP 및 MQTT 는 세션을 초기화할 때 네트워크 비용이 더 많이 듭니다. 그러나 HTTPS 를 사용하려면 모든 요청에 추가 TLS 오버헤드가 필요합니다. AMQP 및 MQTT 는 자주 게시하는 게시자에게 더 높은 성능을 제공합니다. |
디바이스 연결에 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 를 사용하는 경우 적절한 재시도 패턴을 구현합니다. |
다음 단계
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기