할당 정책을 사용하여 IoT 허브에서 디바이스를 프로비전하는 방법
Azure IoT Hub DPS(Device Provisioning Service)는 하나 이상의 IoT 허브에서 디바이스를 할당하는 방법을 결정하는 몇 가지 기본 제공 할당 정책을 지원합니다. DPS에는 사용자 지정 할당 정책에 대한 지원도 포함되어 있어 IoT 시나리오에 기본 제공 정책에서 제공하지 않는 기능이 필요한 경우 고유한 할당 정책을 만들고 사용할 수 있습니다.
이 문서는 DPS 할당 정책을 사용하고 관리하는 방법을 이해하는 데 도움이 됩니다.
할당 정책 이해
할당 정책은 DPS가 디바이스를 IoT Hub에 할당하는 방법을 결정합니다. 각 DPS 인스턴스에는 기본 할당 정책이 있지만 이 정책은 등록에 설정된 할당 정책으로 재정의될 수 있습니다. DPS 인스턴스에 연결된 IoT 허브만 할당에 참여할 수 있습니다. 연결된 IoT Hub가 할당에 참여할지 여부는 디바이스가 프로비전하는 등록 설정에 따라 다릅니다.
DPS는 네 가지 할당 정책을 지원합니다.
균등 가중치 배포: 디바이스는 가중치 해시를 사용하여 IoT 허브에 프로비전됩니다. 기본적으로 연결된 IoT 허브는 동일한 할당 가중치 설정을 가지므로 디바이스를 프로비전할 가능성이 동일합니다. IoT 허브의 할당 가중치를 조정하여 할당 가능성을 높이거나 낮출 수 있습니다. 균등 가중치 배포는 DPS 인스턴스의 기본 할당 정책입니다. 하나의 IoT Hub에만 디바이스를 프로비전하는 경우 이 정책을 사용하는 것이 좋습니다.
최소 대기 시간: 디바이스가 디바이스에 대한 최소 대기 시간으로 IoT 허브에 프로비전됩니다. 여러 IoT 허브가 가장 낮은 대기 시간을 제공하는 경우 DPS는 구성된 할당 가중치에 따라 해당 허브에서 디바이스를 해시합니다.
정적 구성: 디바이스는 등록 시 지정해야 하는 단일 IoT 허브에 프로비전됩니다.
사용자 지정(Azure 함수 사용): 사용자 지정 할당 정책을 사용하면 IoT Hub에 디바이스를 할당하는 방법을 더 구체적으로 제어할 수 있습니다. 이는 Azure Functions에서 호스트되는 사용자 지정 웹후크를 사용하여 디바이스를 IoT Hub에 할당함으로써 수행됩니다. DPS는 디바이스 및 등록에 대한 모든 관련 정보를 제공하는 웹후크를 호출합니다. 웹후크는 디바이스를 프로비전하는 데 사용되는 IoT Hub 및 초기 디바이스 트윈(선택 사항)을 반환합니다. 사용자 지정 페이로드를 디바이스와 주고받을 수도 있습니다. 자세한 내용은 사용자 지정 할당 정책 이해를 참조하세요. DPS 인스턴스 기본 정책으로 설정할 수 없습니다.
참고 항목
앞의 목록은 Azure Portal에 표시되는 할당 정책의 이름을 보여 줍니다. DPS REST API, Azure CLI 및 DPS 서비스 SDK를 사용하여 할당 정책을 설정할 때 hashed, geolatency, static 및 custom이라고 합니다.
연결된 IoT Hub에는 할당에 참여하는 방법을 제어하는 두 가지 설정이 있습니다.
할당 가중치: 여러 IoT Hub가 관련된 할당 정책에 참여할 때 IoT Hub에 포함할 가중치를 설정합니다. 1에서 1000 사이의 값일 수 있습니다. 기본값은 1(또는 null)입니다.
균등 가중치 배포 할당 정책을 사용하면 할당 가중치가 높은 IoT Hub가 가중치가 낮은 IoT Hub에 비해 선택될 가능성이 더 큽니다.
최저 대기 시간 할당 정책을 사용하면 둘 이상의 IoT Hub가 최저 대기 시간 요구 사항을 충족할 때 할당 가중치 값이 IoT Hub가 선택될 확률에 영향을 미칩니다.
사용자 지정 할당 정책을 사용하면 할당 가중치 값의 사용 여부와 방법은 웹후크 논리에 따라 달라집니다.
할당 정책 적용: IoT Hub가 할당 정책에 참여하는지 여부를 지정합니다. 기본값은 예(true)입니다. 아니요(false)로 설정하면 디바이스가 IoT 허브에 할당되지 않습니다. IoT 허브는 여전히 등록 시 선택할 수 있지만 할당에는 참여하지 않습니다. 이 설정을 사용하여 IoT 허브가 할당에 참여하지 못하도록 일시적으로 또는 영구적으로 제거할 수 있습니다. 예를 들어 허용된 디바이스 수에 근접할 때 이렇게 할 수 있습니다.
DPS 인스턴스에서 IoT 허브를 연결하고 관리하는 방법에 대해 자세히 알아보려면 IoT 허브 연결 및 관리를 참조하세요.
디바이스가 DPS를 통해 프로비전되면 서비스는 다음 지침에 따라 디바이스를 IoT Hub에 할당합니다.
등록에서 할당 정책을 지정하는 경우 해당 정책을 사용합니다. 그렇지 않으면 DPS 인스턴스에 대한 기본 할당 정책을 사용합니다.
등록에서 하나 이상의 IoT Hub를 지정하는 경우 해당 IoT Hub에 할당 정책을 적용합니다. 그렇지 않으면 DPS 인스턴스에 연결된 모든 IoT 허브에 할당 정책을 적용합니다. 할당 정책이 정적 구성인 경우 등록은 반드시 IoT 허브를 지정해야 합니다.
Important
할당 정책 또는 적용되는 IoT 허브를 변경하면 변경 내용은 후속 디바이스 등록에만 영향을 미칩니다. IoT 허브에 이미 프로비전된 디바이스는 영향을 받지 않습니다. 변경 내용을 이러한 디바이스에 소급 적용하려면 디바이스를 다시 프로비전해야 합니다. 자세한 내용은 디바이스 다시 프로비전 방법을 참조하세요.
DPS 인스턴스에 대한 기본 할당 정책 설정
할당 정책이 등록에 지정되지 않은 경우 DPS 인스턴스에 대한 기본 할당 정책이 사용됩니다. 기본 할당 정책에는 균등 가중치 배포, 최저 대기 시간 및 정적 구성만 지원됩니다. 사용자 지정 할당은 지원되지 않습니다. DPS 인스턴스가 만들어지면 기본 정책이 자동으로 균등 가중치 배포로 설정됩니다.
참고 항목
정적 구성을 DPS 인스턴스의 기본 할당 정책으로 설정하는 경우 기본 정책에 의존하는 등록에 연결된 IoT Hub를 지정해야 합니다.
Azure Portal을 사용하여 기본 할당 정책 설정
Azure Portal에서 DPS 인스턴스에 대한 기본 할당 정책을 설정하려면 다음을 수행합니다.
DPS 인스턴스의 왼쪽 메뉴에서 할당 정책 관리를 선택합니다.
최저 대기 시간, 균등 가중치 배포 또는 정적 구성 중에서 설정하려는 할당 정책에 대한 단추를 선택합니다. (기본 할당 정책에는 사용자 지정 할당이 지원되지 않습니다.)
저장을 선택합니다.
Azure CLI를 사용하여 기본 할당 정책 설정
az iot dps update Azure CLI 명령을 사용하여 DPS 인스턴스에 대한 기본 할당 정책을 설정합니다. --set properties.allocationPolicy
를 사용하여 정책을 지정합니다. 예를 들어, 다음 명령은 할당 정책을 균등 가중치 배포(기본값)로 설정합니다.
az iot dps update --name MyExampleDps --set properties.allocationPolicy=hashed
DPS는 또한 DPS 리소스 만들기 또는 업데이트 REST API, Resource Manager 템플릿 및 DPS 관리 SDK를 사용하여 기본 할당 정책 설정을 지원합니다.
등록에 대한 할당 정책 및 IoT 허브 설정
개별 등록 및 등록 그룹은 적용해야 하는 할당 정책 및 연결된 IoT 허브를 지정할 수 있습니다. 등록에서 할당 정책을 지정하지 않으면 DPS 인스턴스에 대한 기본 할당 정책이 사용됩니다.
두 경우 모두 다음 조건이 적용됩니다.
균등 가중치 배포, 최저 대기 시간 및 사용자 지정 할당 정책의 경우 등록에서 사용해야 하는 연결된 IoT Hub를 지정할 수 있습니다. 등록에서 IoT Hub를 선택하지 않으면 DPS 인스턴스에 연결된 모든 IoT Hub가 사용됩니다.
정적 구성의 경우 등록은 반드시 연결된 IoT Hub 목록에서 단일 IoT Hub를 지정해야 합니다.
개별 등록 및 등록 그룹 모두에 대해 할당 정책 및 연결된 IoT 허브를 지정하여 등록을 만들거나 업데이트할 때 적용할 수 있습니다.
Azure Portal을 사용하여 등록 할당 정책 및 IoT Hub 관리
할당 정책을 설정하고 Azure Portal의 등록에서 IoT 허브를 선택하려면 다음을 수행합니다.
DPS 인스턴스의 왼쪽 메뉴에서 등록 관리를 선택합니다.
등록 관리 페이지에서:
새 등록을 만들려면 등록 그룹 또는 개별 등록 탭을 선택한 다음, 등록 그룹 추가 또는 개별 등록 추가를 선택합니다.
기존 등록을 업데이트하려면 등록 그룹 또는 개별 등록 탭 아래 목록에서 선택합니다.
등록 추가 페이지(만들기 시) 또는 등록 세부 정보 페이지(업데이트 시)에서 IoT 허브 탭을 선택합니다. 이 탭에서는 등록에 적용할 할당 정책을 선택하고 사용해야 하는 IoT 허브를 선택할 수 있습니다.
드롭다운 목록에서 디바이스를 할당할 수 있는 IoT 허브를 선택합니다. 정적 구성 할당 정책을 선택한 경우 연결된 단일 IoT 허브를 선택하도록 제한됩니다. 다른 모든 할당 정책의 경우 연결된 모든 IoT Hub가 기본적으로 선택되지만 드롭다운을 사용하여 이 선택을 수정할 수 있습니다. 연결된 IoT Hub가 DPS 인스턴스에 추가(또는 삭제)될 때 등록에서 자동으로 사용하도록 하려면 모든 IoT Hub를 선택 취소합니다.
선택적으로 새 IoT Hub 연결 단추를 선택하여 새 IoT Hub를 DPS 인스턴스에 연결하고 선택할 수 있는 IoT Hub 목록에서 사용할 수 있도록 할 수 있습니다. IoT Hub 연결에 대한 자세한 내용은 연결된 IoT Hub 추가를 참조하세요.
등록에서 적용하려는 할당 정책을 선택합니다. DPS 인스턴스에 대한 기본 할당 정책은 기본적으로 선택됩니다. 사용자 지정 할당의 경우 Azure Functions에서 사용자 지정 할당 정책 웹후크도 지정해야 합니다. 자세한 내용은 사용자 지정 할당 정책 사용 자습서를 참조하세요.
등록에 필요한 다른 속성을 설정한 다음 설정을 저장합니다.
Azure CLI를 사용하여 등록 할당 정책 및 IoT Hub 관리
az iot dps enrollment create, az iot dps enrollment update, az iot dps enrollment-group create, az iot dps enrollment-group update Azure CLI 명령을 사용하여 개별 등록 또는 등록 그룹을 만들거나 업데이트합니다.
예를 들어, 다음 명령은 DPS 인스턴스 및 DPS 인스턴스에 연결된 모든 IoT Hub에 설정된 기본 할당 정책을 사용하도록 기본 설정되는 대칭 키 등록 그룹을 만듭니다.
az iot dps enrollment-group create --dps-name MyExampleDps --enrollment-id MyEnrollmentGroup
다음 명령은 동일한 등록 그룹을 업데이트하여 MyExampleHub 및 MyExampleHub-2라는 IoT 허브와 함께 최저 대기 시간 할당 정책을 사용합니다.
az iot dps enrollment-group update --dps-name MyExampleDps --enrollment-id MyEnrollmentGroup --allocation-policy geolatency --iot-hubs "MyExampleHub.azure-devices.net MyExampleHub-2.azure-devices.net"
또한 DPS는 개별 등록 만들기 또는 업데이트 및 등록 그룹 만들기 또는 업데이트 REST API와 DPS 서비스 SDK를 사용하여 등록에서 할당 정책 및 선택한 IoT Hub 설정을 지원합니다.
할당 동작
IoT Hub에서 할당 정책을 사용할 때 다음 동작에 유의합니다.
Azure CLI, REST API 및 DPS 서비스 SDK를 사용하여 할당 정책 없이 등록을 만들 수 있습니다. 이 경우 DPS는 디바이스가 등록을 통해 프로비전할 때 DPS 인스턴스에 대한 기본 정책을 사용합니다. DPS 인스턴스에서 기본 정책 설정을 변경하면 등록을 통해 디바이스가 프로비전되는 방식이 변경됩니다.
Azure Portal에서 등록에 대한 할당 정책 설정은 기본 할당 정책으로 미리 채워집니다. 이 설정을 유지하거나 다른 정책으로 변경할 수 있지만 등록을 저장하면 할당 정책이 등록에 설정됩니다. 서비스 기본 할당 정책에 대한 후속 변경 내용은 등록을 통해 디바이스가 프로비전되는 방식을 변경하지 않습니다.
균등 가중치 배포, 최저 대기 시간 및 사용자 지정 할당 정책의 경우 DPS 인스턴스에 연결된 모든 IoT Hub를 사용하도록 등록을 구성할 수 있습니다.
Azure CLI 및 DPS 서비스 SDK를 사용하여 IoT 허브를 지정하지 않고 등록을 만듭니다.
Azure Portal을 사용하면 선택한 DPS 인스턴스에 연결된 모든 IoT 허브로 등록이 미리 채워집니다. 등록을 저장하기 전에 모든 IoT Hub를 선택 취소합니다.
등록 시 선택된 IoT Hub가 없으면 새 IoT Hub가 DPS 인스턴스에 연결될 때마다 할당에 참여합니다. DPS 인스턴스에서 제거된 IoT Hub의 경우 그 반대입니다.
등록에 IoT Hub가 지정된 경우 새로 연결된 IoT Hub를 추가하거나 삭제된 IoT Hub를 할당에서 제거하려면 등록의 IoT Hub 설정을 수동으로 또는 프로그래밍 방식으로 업데이트해야 합니다.
등록에 사용되는 할당 정책 또는 IoT 허브를 변경하면 해당 등록을 통한 후속 등록에만 영향을 미칩니다. 변경 내용을 이전 등록에 적용하려면 이전에 등록된 모든 디바이스를 다시 프로비전해야 합니다.
제한 사항
할당 정책 및 프라이빗 엔드포인트로 작업할 때 몇 가지 제한 사항이 있습니다. 자세한 내용은 프라이빗 엔드포인트 제한을 참조하세요.
다음 단계
연결된 IoT Hub 연결 및 관리에 대한 자세한 내용은 연결된 IoT Hub 관리를 참조하세요.
사용자 지정 할당 정책에 대한 자세한 내용은 사용자 지정 할당 정책 이해를 참조하세요.
대기 시간이 가장 짧은 할당 정책을 사용하는 엔드투엔드 예는 지리적 대기 시간 프로비전 자습서를 참조하세요.
사용자 지정 할당 정책을 사용하는 엔드투엔드 예는 사용자 지정 할당 정책 사용 자습서를 참조하세요.