디바이스를 Azure IoT Hub로 마이그레이션

IoT Central 기반 솔루션에서 IoT Hub 기반 솔루션으로 마이그레이션하려는 경우 현재 애플리케이션에 연결된 모든 디바이스의 구성을 변경해야 합니다. IoTC Migrator 도구는 이 디바이스 마이그레이션 프로세스를 자동화합니다.

마이그레이션 도구는 다음을 수행합니다.

  • 현재 IoT Central 애플리케이션에 연결되는 디바이스에 대해 IoT 허브에서 디바이스 등록을 만듭니다.
  • 명령을 사용하여 IoT 허브와 연결된 DPS(Device Provisioning Service) 인스턴스의 ID 범위를 디바이스에 보냅니다.

도구를 사용하려면 연결된 디바이스에서 IoT Central 애플리케이션의 디바이스 템플릿에 정의된 DeviceMove 명령을 구현해야 합니다. 명령 페이로드는 대상 DPS 인스턴스의 ID 범위입니다. 디바이스에서 이 명령을 받으면 다음을 수행해야 합니다.

  • 원격 분석 보내기를 중지하고 IoT Central 애플리케이션의 연결을 끊습니다.
  • 명령 페이로드에서 새 ID 범위를 사용하여 DPS를 통해 자체를 프로비전합니다.
  • 프로비전 결과를 사용하여 대상 IoT 허브에 연결하고 원격 분석 보내기를 다시 시작합니다.

마이그레이션 도구를 사용하여 IoT Cental 애플리케이션 간의 또는 IoT 허브에서 IoT Central 애플리케이션으로 디바이스를 마이그레이션할 수도 있습니다.

중단 최소화

중단을 최소화하기 위해 디바이스를 단계적으로 마이그레이션할 수 있습니다. 마이그레이션 도구는 디바이스 그룹을 사용하여 디바이스를 IoT Central에서 IoT Hub로 이동합니다. 디바이스 집합을 텍사스에 있는 디바이스, 뉴욕에 있는 디바이스 및 미국 나머지 지역에 있는 디바이스와 같은 디바이스 그룹으로 나눕니다. 그런 다음, 각 디바이스 그룹을 독립적으로 마이그레이션합니다.

Warning

할당되지 않은 디바이스는 디바이스 그룹에 추가할 수 없습니다. 따라서 현재는 마이그레이션 도구를 사용하여 할당되지 않은 디바이스를 마이그레이션할 수 없습니다.

다음 단계에 따라 비즈니스 영향을 최소화합니다.

  • PaaS 솔루션을 만들고 IoT Central 애플리케이션과 동시에 실행합니다.

  • IoT Central 애플리케이션에서 연속 데이터 내보내기를 설정하고 PaaS 솔루션 IoT Hub로 적절한 경로를 설정합니다. 두 데이터 채널을 모두 변환하고 데이터를 동일한 데이터 레이크에 저장합니다.

  • 디바이스를 단계적으로 마이그레이션하고 각 단계에서 확인합니다. 계획대로 진행되지 않는 경우 디바이스를 IoT Central로 장애 복구(failback)합니다.

  • 모든 디바이스를 PaaS 솔루션으로 마이그레이션하고 IoT Central에서 데이터를 완전히 내보낸 경우 IoT Central 솔루션에서 디바이스를 제거할 수 있습니다.

마이그레이션 후 디바이스는 IoT Central 애플리케이션에서 자동으로 삭제되지 않습니다. 이러한 디바이스는 애플리케이션에서 프로비전된 모든 디바이스에 대해 IoT Central 요금으로 계속 청구됩니다. IoT Central 애플리케이션에서 이러한 디바이스를 제거하면 더 이상 요금이 청구되지 않습니다. 최종적으로는 IoT Central 애플리케이션을 제거합니다.

IoT Central에서 기존 데이터 이동

원격 분석 및 속성 값을 지속적으로 내보내도록 IoT Central을 구성할 수 있습니다. 내보내기 대상은 Azure Data Lake, Event Hubs 및 웹후크와 같은 데이터 저장소입니다. IoT Central UI 또는 REST API를 사용하여 디바이스 템플릿을 내보낼 수 있습니다. REST API를 사용하면 IoT Central 애플리케이션에서 사용자를 내보낼 수 있습니다.

필수 조건

디바이스 마이그레이션 단계를 완료하려면 다음 필수 구성 요소가 필요합니다.

디바이스 요구 사항

마이그레이션하려는 디바이스는 마이그레이션이라는 구성 요소에서 DeviceMove 명령을 구현해야 합니다. 명령 페이로드에는 대상 DPS 인스턴스의 ID 범위가 포함됩니다. 마이그레이터 도구 리포지토리에는 DeviceMove 명령을 정의하는 예제 DTDL 구성 요소 모델이 포함되어 있습니다. 이 구성 요소를 기존 디바이스 템플릿에 추가할 수 있습니다.

도구는 구성 요소 이름이 migration이고 인터페이스 ID가 dtmi:azureiot:DeviceMigration;1인 것으로 가정합니다.

Screenshot that highlights the component name and interface ID.

도구 리포지토리에는 디바이스가 DeviceMove 명령을 구현하는 방법을 보여 주는 샘플 코드도 포함되어 있습니다.

도구 설정

다음 설정 작업을 완료하여 마이그레이션을 준비합니다.

Microsoft Entra 애플리케이션

마이그레이터 도구를 사용하려면 Azure 구독으로 인증할 수 있도록 Microsoft Entra 애플리케이션 등록이 필요합니다.

  1. Azure Portal > Microsoft Entra ID > 앱 등록으로 이동합니다.

  2. 새 등록을 선택합니다.

  3. "IoTC Migrator 앱"과 같은 이름을 입력합니다.

  4. 모든 조직 디렉터리(모든 Microsoft Entra 디렉터리 - 다중 테넌트)의 계정 및 개인 Microsoft 계정(예: Skype, Xbox)을 선택합니다.

  5. SPA(단일 페이지 애플리케이션)를 선택합니다.

  6. 리디렉션 URI로 http://localhost:3000을 입력합니다. 나중에 이 값을 마이그레이터 앱 구성에 추가합니다.

  7. 등록을 선택합니다.

  8. 애플리케이션(클라이언트) ID디렉터리(테넌트) ID 값을 적어 둡니다. 나중에 이러한 값을 사용하여 마이그레이터 앱을 구성합니다.

    Screenshot that shows the Microsoft Entra application in the Azure portal.

  9. 등록에서 매니페스트 페이지로 이동하고 requiredResourceAccess의 콘텐츠를 다음 구성으로 바꿉니다.

    [
      {
        "resourceAppId": "9edfcdd9-0bc5-4bd4-b287-c3afc716aac7",
        "resourceAccess": [
          {
            "id": "73792908-5709-46da-9a68-098589599db6",
            "type": "Scope"
          }
        ]
      },
      {
        "resourceAppId": "797f4846-ba00-4fd7-ba43-dac1f8f63013",
        "resourceAccess": [
          {
            "id": "41094075-9dad-400e-a0bd-54e686782033",
            "type": "Scope"
          }
        ]
      },
      {
        "resourceAppId": "00000003-0000-0000-c000-000000000000",
        "resourceAccess": [
          {
            "id": "e1fe6dd8-ba31-4d61-89e7-88639da4683d",
            "type": "Scope"
          }
        ]
      }
    ]
    
  10. 변경 내용을 저장합니다.

DPS에 디바이스 키 추가

IoT Central 애플리케이션의 공유 액세스 서명 키 또는 X.509 인증서를 DPS 할당 그룹에 추가합니다.

디바이스에서 공유 액세스 서명을 사용하여 IoT Central 애플리케이션에 인증하는 경우:

  • IoT Central 애플리케이션에서 권한 > 디바이스 연결 그룹으로 차례로 이동합니다.
  • 디바이스에서 사용하는 등록 그룹을 선택합니다.
  • 기본 및 보조 키를 적어 둡니다.
  • Azure Portal에서 DPS 인스턴스로 이동합니다.
  • 등록 관리를 선택합니다.
  • 새 등록을 만들고, 증명 유형을 대칭 키로 설정하고, 키 자동 생성을 선택 취소한 다음, 적어 둔 기본 및 보조 키를 추가합니다.
  • 저장을 선택합니다.

디바이스에서 X.509 인증서를 사용하여 IoT Central 애플리케이션에 인증하는 경우:

  • Azure Portal에서 DPS 인스턴스로 이동합니다.
  • 인증서를 선택한 다음, 추가를 선택합니다.
  • IoT Central 애플리케이션에서 사용하는 루트 또는 중간 X.509 인증서를 업로드하고 확인합니다.
  • 등록 관리를 선택합니다.
  • 새 등록을 만들고, 증명 유형을 인증서로 설정한 다음, 업로드한 기본 및 보조 인증서를 선택합니다.
  • 저장을 선택합니다.

마이그레이션 도구 다운로드 및 구성

마이그레이터 도구의 복사본을 로컬 컴퓨터에 다운로드하거나 복제합니다.

git clone https://github.com/Azure/iotc-migrator.git

다운로드한 리포지토리의 루트에서 .env 파일을 만듭니다. REACT_APP_AAD_APP_CLIENT_ID, REACT_APP_AAD_APP_TENANT_ID, REACT_APP_AAD_APP_REDIRECT_URI를 이전에 만든 Microsoft Entra 애플리케이션 등록의 값으로 업데이트합니다. 그런 다음, 변경 내용을 저장합니다.

PORT=3000
REACT_APP_AAD_APP_CLIENT_ID=<your-AAD-Application-(client)-ID>
REACT_APP_AAD_APP_TENANT_ID=<your-AAD-Directory-(tenant)-ID>
REACT_APP_AAD_APP_REDIRECT_URI=http://localhost:3000

REACT_APP_AAD_APP_REDIRECT_URI가 Microsoft Entra 애플리케이션 등록에서 사용한 리디렉션 URI와 일치하는지 확인합니다.

명령줄 환경에서 iotc-migrator 리포지토리의 루트로 이동합니다. 그런 다음, 다음 명령을 실행하여 필요한 node.js 패키지를 설치하고, 도구를 실행합니다.

npm install
npm start

마이그레이터 앱이 시작되면 http://localhost:3000으로 이동하여 도구를 봅니다. 메시지가 표시되면 로그인합니다.

디바이스 마이그레이션

이 도구를 사용하여 디바이스를 일괄적으로 마이그레이션합니다. 새 마이그레이션 페이지에서 마이그레이션 세부 정보를 입력합니다.

  1. 마이그레이션 이름을 입력합니다.
  2. IoT Central 애플리케이션에서 디바이스 그룹을 선택합니다.
  3. DeviceMove 명령 정의가 포함된 디바이스 템플릿을 선택합니다.
  4. 사용자 고유의 Azure IoT Hub로 이동을 선택합니다.
  5. 대상 IoT 허브에 연결된 DPS 인스턴스를 선택합니다.
  6. 마이그레이션을 선택합니다. 이 도구에는 IoT Central 애플리케이션에서 DPS 등록 그룹으로 키를 복사하라는 메시지가 표시됩니다. 이전에 DPS에 디바이스 키 추가 단계에서 이 단계를 완료했습니다.

Screenshot of migration tool that shows the migration definition.

이제 이 도구에서 대상 IoT 허브의 대상 디바이스 필터와 일치하는 모든 연결된 디바이스를 등록합니다. 그런 다음, 이 도구는 모든 디바이스에서 DeviceMove 메서드를 호출하는 작업을 IoT Central 애플리케이션에 만듭니다. 명령 페이로드에는 대상 DPS 인스턴스의 ID 범위가 포함됩니다.

마이그레이션 확인

마이그레이션 도구의 마이그레이션 상태 페이지를 사용하여 진행 상황을 모니터링합니다.

Screenshot that shows the migration status page in the tool.

마이그레이션 상태 페이지에서 작업을 선택하여 IoT Central 애플리케이션에서 작업 상태를 확인합니다. 이 페이지를 사용하여 작업의 개별 디바이스 상태를 확인합니다.

Screenshot showing completed migration status for IoT Central job.

성공적으로 마이그레이션된 디바이스에서 다음을 수행합니다.

  • IoT Central 애플리케이션의 디바이스 페이지에서 연결 끊김으로 표시합니다.

  • IoT 허브에 등록되고 프로비전된 것으로 표시합니다.

    Screenshot of IoT Hub in the Azure portal that shows the provisioned devices.

  • 이제 원격 분석을 IoT 허브에 보내고 있습니다.

    Screenshot of IoT Hub in the Azure portal that shows telemetry metrics for the migrated devices.