Ubuntu Virtual Machines에서 Azure IoT Edge 실행

적용 대상:IoT Edge 1.5 확인 표시 IoT Edge 1.5 IoT Edge 1.4 확인 표시 IoT Edge 1.4

Important

IoT Edge 1.5 LTS 및 IoT Edge 1.4 LTS는 지원되는 릴리스입니다. IoT Edge 1.4 LTS는 2024년 11월 12일에 수명이 종료됩니다. 이전 릴리스에 있는 경우 IoT Edge 업데이트를 참조하세요.

Azure IoT Edge 런타임은 디바이스를 IoT Edge 디바이스로 바꿔줍니다. 런타임은 Raspberry Pi처럼 작은 디바이스 또는 산업용 서버처럼 큰 디바이스에 배포할 수 있습니다. 디바이스가 IoT Edge 런타임을 사용하여 구성되면 클라우드에서 디바이스에 비즈니스 논리를 배포할 수 있습니다.

IoT Edge 런타임의 작동 방식 및 포함되는 구성 요소에 대한 자세한 내용은 Azure IoT Edge 런타임 및 해당 아키텍처 이해를 참조하세요.

이 문서에는 미리 제공된 디바이스 연결 문자열을 사용하여 설치 및 구성된 Azure IoT Edge 런타임으로 Ubuntu 20.04 LTS 가상 머신을 배포하는 단계가 나와 있습니다. 배포는 iotedge-vm-deploy 프로젝트 리포지토리에서 유지 관리되는 cloud-init 기반 Azure Resource Manager 템플릿을 사용하여 수행됩니다.

처음 부팅할 때 가상 머신은 cloud-init를 통해 최신 버전의 Azure IoT Edge 런타임을 설치합니다. 또한 런타임이 시작되기 전에 제공된 연결 문자열을 설정하여 SSH 또는 원격 데스크톱 세션을 시작할 필요 없이 IoT Edge 디바이스를 쉽게 구성하고 연결할 수 있습니다.

[Azure에 배포] 단추를 사용하여 배포

Azure에 배포 단추를 사용하면 GitHub에서 유지 관리되는 Azure Resource Manager 템플릿을 효율적으로 배포할 수 있습니다. 이 섹션에서는 iotedge-vm-deploy 프로젝트 리포지토리에 포함된 Azure에 배포 단추의 사용법을 보여 줍니다.

  1. iotedge-vm-deploy Azure Resource Manager 템플릿을 사용하여 Azure IoT Edge 지원 Linux VM을 배포합니다. 시작하려면 다음 단추를 선택합니다.

    iotedge-vm-deploy를 위한 Azure에 배포하기 단추

  2. 새로 시작된 창에서 사용 가능한 양식 필드를 채웁니다.

    iotedge-vm-deploy 템플릿을 보여 주는 스크린샷

    필드 Description
    구독 가상 머신을 배포할 활성 Azure 구독입니다.
    리소스 그룹 가상 머신 및 연결되는 해당 리소스를 포함할 기존 리소스 그룹 또는 새로 만든 리소스 그룹입니다.
    지역 가상 머신을 배포할 지리적 지역입니다. 이 값은 기본적으로 선택한 리소스 그룹의 위치로 설정됩니다.
    DNS 레이블 접두사 가상 머신의 호스트 이름을 접두사로 지정하는 데 사용되는 선택 항목의 필수 값입니다.
    관리 사용자 이름 배포에 대한 루트 권한이 제공되는 사용자 이름입니다.
    디바이스 연결 문자열 의도한 IoT Hub 내에서 만들어진 디바이스에 대한 디바이스 연결 문자열입니다.
    VM 크기 배포할 가상 머신의 크기입니다.
    Ubuntu OS 버전 기본 가상 머신에 설치할 Ubuntu OS의 버전입니다.
    인증 유형 기본 설정에 따라 sshPublicKey 또는 password를 선택합니다.
    관리자 암호 또는 키 선택한 인증 유형에 따른 SSH 공개 키 또는 암호의 값입니다.

    모든 필드를 입력했으면 하단의 단추를 선택하여 약관을 검토할 수 있는 Next : Review + create로 이동하고 만들기를 선택하여 배포를 시작합니다.

  3. 배포가 성공적으로 완료되었는지 확인합니다. 가상 머신 리소스가 선택한 리소스 그룹에 배포됩니다. 머신 이름을 적어 둡니다. 이는 vm-0000000000000 형식이어야 합니다. 또한 연결된 DNS 이름을 기록해 둡니다. 형식은 <dnsLabelPrefix>.<location>.cloudapp.azure.com이어야 합니다.

    DNS 이름은 Azure Portal 내에 새로 배포된 가상 머신의 개요 섹션에서 가져올 수 있습니다.

    IoT Edge VM의 DNS 이름을 보여 주는 스크린샷.

  4. 설정 후에 SSH를 이 VM에 연결하려면 ssh <adminUsername>@<DNS_Name> 명령에서 연결된 DNS 이름을 사용합니다.

Azure CLI에서 배포

  1. 다음을 사용하여 Azure CLI iot 확장을 설치했는지 확인합니다.

    az extension add --name azure-iot
    
  2. 다음으로, 데스크톱에서 Azure CLI를 사용하는 경우 다음에 로그인하여 시작합니다.

    az login
    
  3. 구독이 여러 개인 경우 사용할 구독을 선택합니다.

    1. 구독 나열:

      az account list --output table
      
    2. 사용하려는 구독의 SubscriptionID 필드를 복사합니다.

    3. 복사한 ID를 사용하여 작업 구독을 설정합니다.

      az account set -s <SubscriptionId>
      
  4. 새 리소스 그룹을 만들거나, 다음 단계에서 기존 리소스 그룹을 지정합니다.

    az group create --name IoTEdgeResources --location westus2
    
  5. 새 가상 머신을 만듭니다.

    passwordauthenticationType을 사용하려면 다음 예를 참조하세요.

    az deployment group create \
    --resource-group IoTEdgeResources \
    --template-uri "https://raw.githubusercontent.com/Azure/iotedge-vm-deploy/main/edgeDeploy.json" \
    --parameters dnsLabelPrefix='my-edge-vm1' \
    --parameters adminUsername='<REPLACE_WITH_USERNAME>' \
    --parameters deviceConnectionString=$(az iot hub device-identity connection-string show --device-id <REPLACE_WITH_DEVICE-NAME> --hub-name <REPLACE-WITH-HUB-NAME> -o tsv) \
    --parameters authenticationType='password' \
    --parameters adminPasswordOrKey="<REPLACE_WITH_SECRET_PASSWORD>"
    

    SSH 키로 인증하려면 sshPublicKeyauthenticationType을 지정한 다음, adminPasswordOrKey 매개 변수에서 SSH 키의 값을 제공하면 됩니다. 다음 예제를 참조하십시오.

    #Generate the SSH Key
    ssh-keygen -m PEM -t rsa -b 4096 -q -f ~/.ssh/iotedge-vm-key -N ""
    
    #Create a VM using the iotedge-vm-deploy script
    az deployment group create \
    --resource-group IoTEdgeResources \
    --template-uri "https://raw.githubusercontent.com/Azure/iotedge-vm-deploy/main/edgeDeploy.json" \
    --parameters dnsLabelPrefix='my-edge-vm1' \
    --parameters adminUsername='<REPLACE_WITH_USERNAME>' \
    --parameters deviceConnectionString=$(az iot hub device-identity connection-string show --device-id <REPLACE_WITH_DEVICE-NAME> --hub-name <REPLACE-WITH-HUB-NAME> -o tsv) \
    --parameters authenticationType='sshPublicKey' \
    --parameters adminPasswordOrKey="$(< ~/.ssh/iotedge-vm-key.pub)"
    
  6. 배포가 성공적으로 완료되었는지 확인합니다. 가상 머신 리소스는 선택한 리소스 그룹에 배포되어야 합니다. 머신 이름을 적어 둡니다. 이는 vm-0000000000000 형식이어야 합니다. 또한 연결된 DNS 이름을 기록해 둡니다. 형식은 <dnsLabelPrefix>.<location>.cloudapp.azure.com이어야 합니다.

    DNS 이름공용 SSH 항목의 일부로 출력 섹션 내에 있는 이전 단계의 JSON 형식 출력에서 가져올 수 있습니다. 이 항목의 값을 사용하여 새로 배포된 머신에 SSH를 수행할 수 있습니다.

    "outputs": {
      "public SSH": {
        "type": "String",
        "value": "ssh <adminUsername>@<DNS_Name>"
      }
    }
    

    DNS 이름은 Azure Portal 내에 새로 배포된 가상 머신의 개요 섹션에서도 가져올 수 있습니다.

    IoT Edge VM의 DNS 이름을 보여 주는 스크린샷.

  7. 설정 후에 SSH를 이 VM에 연결하려면 ssh <adminUsername>@<DNS_Name> 명령에서 연결된 DNS 이름을 사용합니다.

다음 단계

런타임을 설치하여 IoT Edge 디바이스를 프로비전했으므로 IoT Edge 모듈을 배포할 수 있습니다.

IoT Edge 런타임을 제대로 설치하는 데 문제가 있는 경우 문제 해결 페이지를 체크 아웃하세요.

기존 설치를 최신 버전의 IoT Edge로 업데이트하려면 IoT Edge 보안 디먼 및 런타임 업데이트를 참조하세요.

SSH 또는 기타 인바운드 연결을 통해 VM에 액세스하는 포트를 열려면 Linux VM에 대한 포트 및 엔드포인트 열기에 대한 Azure Virtual Machines 설명서를 참조하세요.