다음을 통해 공유


IoT Edge 업데이트

적용 대상:예 아이콘 IoT Edge 1.1

중요

IoT Edge 1.1 지원 종료일은 2022년 12월 13일이었습니다. 이 제품, 서비스, 기술 또는 API가 지원되는 방법에 대한 정보는 Microsoft 제품 수명 주기를 확인하세요. 최신 버전의 IoT Edge 업데이트에 대한 자세한 내용은 IoT Edge 업데이트를 참조하세요.

IoT Edge 서비스가 새 버전을 릴리스하면 최신 기능 및 개선된 보안을 사용하도록 IoT Edge 디바이스를 업데이트할 수 있습니다. 이 문서에서는 새 버전을 사용할 수 있을 때 IoT Edge 디바이스를 업데이트하는 방법에 대한 정보를 제공합니다.

새 버전으로 전환하려면 IoT Edge 디바이스의 두 가지 논리 구성 요소를 업데이트해야 합니다. 첫 번째는 보안 하위 시스템입니다. 보안 하위 시스템의 아키텍처는 버전 1.1과 1.2 간에 변경되었지만 전반적인 책임은 동일하게 유지되었습니다. 디바이스에서 실행되고, 보안 기반 작업을 처리하고, 디바이스가 시작될 때 모듈을 시작합니다. 현재, 보안 하위 시스템은 디바이스 자체에서만 업데이트할 수 있습니다. 두 번째 구성 요소는 런타임으로, IoT Edge 허브 및 IoT Edge 에이전트 모듈로 구성됩니다. 배포 구성 방법에 따라 디바이스에서 또는 원격으로 런타임을 업데이트할 수 있습니다.

IoT Edge 런타임을 업데이트해야 하며 애플리케이션 계층은 동일한 릴리스 버전을 사용합니다. 일치하지 않는 버전은 지원되지만 함께 테스트되지는 않습니다. 이 문서의 다음 섹션을 사용하여 디바이스의 런타임 및 애플리케이션 계층을 모두 업데이트합니다.

  1. 보안 하위 시스템 업데이트
  2. 런타임 컨테이너 업데이트
  3. 버전이 일치하는지 확인
    • 디바이스에서 를 사용하여 iotedge version 보안 하위 시스템 버전을 확인합니다. 출력에는 주 버전, 부 버전 및 수정 버전 번호가 포함됩니다. 예를 들어 iotedge 1.4.2입니다.
    • 디바이스 배포 런타임 설정에서 edgehubedgeagent 이미지 URI 버전이 보안 하위 시스템의 주 및 부 버전과 일치하는지 확인합니다. 보안 하위 시스템 버전이 1.4.2이면 이미지 버전은 1.4가 됩니다. 예를 들어 mcr.microsoft.com/azureiotedge-hub:1.4mcr.microsoft.com/azureiotedge-agent:1.4.

최신 버전의 Azure IoT Edge를 찾으려면 Azure IoT Edge 릴리스를 참조하세요.

보안 하위 시스템 업데이트

IoT Edge 보안 하위 시스템은 IoT Edge 디바이스에서 패키지 관리자를 사용하여 업데이트해야 하는 네이티브 구성 요소의 세트를 포함합니다.

iotedge version 명령을 사용하여 디바이스에서 실행 중인 보안 하위 시스템의 버전을 확인합니다. Windows에서 Linux용 IoT Edge를 사용하는 경우 버전을 확인하려면 Linux 가상 머신에 SSH로 연결해야 합니다.

중요

버전 1.0 또는 1.1에서 최신 릴리스로 디바이스를 업데이트하는 경우 설치 및 구성 프로세스에 차이점이 있어 추가 단계가 필요합니다. 자세한 내용은 이 문서의 뒷부분에 나오는 단계(특수 사례: 1.0 또는 1.1에서 최신 릴리스로 업데이트)를 참조하세요.

Linux x64 디바이스에서는 apt-get 또는 적절한 패키지 관리자를 사용하여 런타임 모듈을 최신 릴리스로 업데이트합니다.

apt를 업데이트합니다.

sudo apt-get update

참고

Microsoft에서 최신 리포지토리 구성을 가져오는 지침은 IoT Edge 설치에 대한 예비 단계를 참조하세요.

사용할 수 있는 IoT Edge 버전을 확인합니다.

apt list -a iotedge

런타임 모듈의 최신 버전으로 업데이트하려면 다음 명령을 사용하여 libiothsm-std 도 최신 버전으로 업데이트합니다.

sudo apt-get install iotedge

특정 버전의 런타임 모듈로 업데이트하려는 경우 apt 목록 출력에서 버전을 지정합니다. iotedge는 업데이트될 때마다 자동으로 libiothsm-std 패키지를 최신 버전으로 업데이트하려고 시도하므로 종속성 충돌이 발생할 수 있습니다. 최신 버전으로 전환하지 않는 경우 동일한 버전에 대해 두 패키지를 모두 대상으로 지정해야 합니다. 예를 들어 다음 명령은 특정 버전의 1.1 릴리스를 설치합니다.

sudo apt-get install iotedge=1.1.1 libiothsm-std=1.1.1

설치하려는 버전을 apt-get을 통해 사용할 수 없는 경우 curl을 사용하여 IoT Edge 릴리스 리포지토리의 모든 버전을 대상으로 지정할 수 있습니다. 설치하려는 버전이 무엇이든 디바이스에 대해 적절한 libiothsm-stdiotedge 파일을 찾습니다. 파일별로 파일 링크를 마우스 오른쪽 단추로 클릭하고 링크 주소를 복사합니다. 링크 주소를 사용하여 해당 구성 요소의 특정 버전을 설치합니다.

curl -L <libiothsm-std link> -o libiothsm-std.deb && sudo apt-get install ./libiothsm-std.deb
curl -L <iotedge link> -o iotedge.deb && sudo apt-get install ./iotedge.deb

그런 다음 구성을 다시 적용하여 시스템이 완전히 업데이트되었는지 확인합니다.

sudo iotedge config apply

런타임 컨테이너 업데이트

IoT Edge 에이전트 및 IoT Edge 허브 컨테이너를 업데이트하는 방법은 배포에서 롤링 태그(예: 1.1)를 사용할지 또는 특정 태그(예: 1.1.1)를 사용할지에 따라 다릅니다.

iotedge logs edgeAgent 또는 iotedge logs edgeHub 명령을 사용하여 현재 사용 중인 디바이스에 있는 IoT Edge 에이전트 및 IoT Edge 허브 모듈 버전을 확인합니다. Windows에서 Linux용 IoT Edge를 사용하는 경우 런타임 모듈 버전을 확인하려면 Linux 가상 머신에 SSH로 연결해야 합니다.

로그의 컨테이너 버전 찾기

IoT Edge 태그 이해

IoT Edge 에이전트 및 IoT Edge 허브 이미지는 연결된 IoT Edge 버전으로 태그가 지정됩니다. 런타임 이미지에 태그를 사용하는 방법에는 다음 두 가지가 있습니다.

  • 롤링 태그 - 버전 번호의 처음 두 개 값만 사용하여 해당 숫자와 일치하는 최신 이미지를 가져옵니다. 예를 들어, 최신 1.1.x 버전을 가리키는 새 릴리스가 있을 때마다 1.1이 업데이트됩니다. IoT Edge 디바이스의 컨테이너 런타임이 이미지를 다시 끌어오면 런타임 모듈은 최신 버전으로 업데이트됩니다. Azure Portal에서 배포할 때는 기본적으로 롤링 태그가 사용됩니다. 이 접근 방법은 개발 목적으로 제안됩니다.

  • 특정 태그 - 버전 번호의 세 값을 모두 사용하여 이미지 버전을 명시적으로 설정합니다. 예를 들어, 1.1.0은 초기 릴리스 이후에 변경되지 않습니다. 업데이트할 준비가 되면 배포 매니페스트에서 새 버전 번호를 선언할 수 있습니다. 이 접근 방법은 프로덕션 목적으로 제안됩니다.

롤링 태그 이미지 업데이트

배포에 롤링 태그를 사용하는 경우(예: mcr.microsoft.com/azureiotedge-hub:1.1) 디바이스의 컨테이너 런타임이 강제로 최신 버전의 이미지를 가져오도록 해야 합니다.

IoT Edge 디바이스에서 이미지의 로컬 버전을 삭제합니다. Windows 머신에서 보안 하위 시스템을 제거하면 런타임 이미지도 제거되므로 이 단계를 다시 수행할 필요가 없습니다.

docker rmi mcr.microsoft.com/azureiotedge-hub:1.1
docker rmi mcr.microsoft.com/azureiotedge-agent:1.1

이미지를 제거하기 위해 강제 -f 플래그를 사용해야 할 수 있습니다.

IoT Edge 서비스는 최신 버전의 런타임 이미지를 끌어오고 해당 이미지를 디바이스에서 자동으로 다시 시작합니다.

특정 태그 이미지 업데이트

배포에서 특정 태그를 사용하는 경우(예: mcr.microsoft.com/azureiotedge-hub:1.1.1) 배포 매니페스트에서 태그를 업데이트하고 변경 내용을 디바이스에 적용하기만 하면 됩니다.

  1. Azure Portal의 IoT Hub에서 IoT Edge 디바이스를 선택하고 모듈 설정을 선택합니다.

  2. IoT Edge 모듈 섹션에서 런타임 설정을 선택합니다.

    런타임 설정 구성

  3. 런타임 설정에서 Edge 허브이미지 값을 원하는 버전으로 업데이트합니다. 아직 저장을 선택하지 않습니다.

    Edge 허브 이미지 버전 업데이트

  4. Edge 허브 설정을 축소하거나 아래로 스크롤하고 Edge 에이전트이미지 값을 원하는 동일 버전으로 업데이트합니다.

    Edge 허브 에이전트 버전 업데이트

  5. 저장을 선택합니다.

  6. 검토 + 만들기를 선택하고 배포를 검토한 다음 만들기를 선택합니다.

특수 사례: 1.0 또는 1.1에서 최신 릴리스로 업데이트

버전 1.2부터 IoT Edge 서비스는 새 패키지 이름을 사용하며 설치 및 구성 프로세스가 약간 달라졌습니다. 1.0 또는 1.1 버전을 실행하는 IoT Edge 디바이스가 있는 경우 다음 지침을 사용하여 최신 릴리스로 업데이트하는 방법을 알아보세요.

최신 릴리스와 버전 1.1 이전의 주요 차이점은 다음과 같습니다.

  • 패키지 이름이 iotedge에서 aziot-edge로 변경되었습니다.
  • libiothsm-std 패키지가 더 이상 사용되지 않습니다. IoT Edge 릴리스의 일부로 제공된 표준 패키지를 사용한 경우 구성이 새 버전으로 이전될 수 있습니다. libiothsm-std의 다른 구현을 사용한 경우 디바이스 ID 인증서, 디바이스 CA, 신뢰 번들과 같은 사용자 제공 인증서를 다시 구성해야 합니다.
  • 새 ID 서비스인 aziot-identity-service가 1.2 릴리스의 일부로 도입되었습니다. 이 서비스는 IoT Edge 및 IoT Hub와 통신해야 하는 기타 디바이스 구성 요소(예: Device Update for IoT Hub)에 대한 ID 프로비저닝 및 관리를 처리합니다.
  • 기본 구성 파일이 새 이름과 위치를 갖게 되었습니다. 이전에 /etc/iotedge/config.yaml에 있었던 디바이스 구성 정보가 이제는 기본적으로 /etc/aziot/config.toml에 있을 것으로 예상됩니다. 구성 정보를 이전 위치와 구문에서 새 위치와 구문으로 이전하는 데 iotedge config import 명령을 사용하는 것이 도움이 될 수 있습니다.
    • 가져오기 명령은 디바이스의 신뢰할 수 있는 플랫폼 모듈(TPM)에 대한 액세스 규칙을 검색하거나 수정할 수 없습니다. 디바이스에서 TPM 증명을 사용하는 경우 aziottpm 서비스에 대한 액세스 권한을 부여하려면 /etc/udev/rules.d/tpmaccess.rules 파일을 수동으로 업데이트해야 합니다. 자세한 내용은 TPM에 대한 IoT Edge 액세스 권한 부여를 참조하세요.
  • 최신 버전의 워크로드 API는 암호화된 비밀을 새 형식으로 저장합니다. 이전 버전에서 최신 버전으로 업그레이드하는 경우 기존 마스터 암호화 키를 가져옵니다. 워크로드 API는 가져온 암호화 키를 사용하여 이전 형식으로 저장된 비밀을 읽을 수 있습니다. 그러나 워크로드 API는 암호화된 비밀을 이전 형식으로 쓸 수 없습니다. 비밀이 모듈에 의해 다시 암호화되면 새 형식으로 저장됩니다. 최신 버전에서 암호화된 비밀은 버전 1.1의 동일한 모듈에서 읽을 수 없습니다. 암호화된 데이터를 호스트 탑재 폴더 또는 볼륨에 유지하는 경우 업그레이드하기 에 항상 데이터의 백업 복사본을 만들어 필요한 경우 다운그레이드 기능을 유지합니다.
  • TLS 1.2를 지원하지 않는 디바이스를 연결할 때 이전 버전과의 호환성을 위해 SslProtocols 환경 변수를 통해 TLS 1.0 또는 1.1을 계속 허용하도록 Edge Hub를 구성할 수 있습니다. IoT Hub TLS 1.0 및 1.1에 대한 지원은 레거시로 간주되며 향후 릴리스에서 Edge Hub에서 제거될 수도 있습니다.†1 향후 문제를 방지하려면 Edge Hub 또는 IoT Hub 연결할 때 TLS 1.2를 유일한 TLS 버전으로 사용합니다.
  • Edge Hub 1.2의 실험적 MQTT 브로커에 대한 미리 보기가 종료되었으며 Edge Hub 1.4.â€에 포함되지 않습니다. 받은 피드백에 따라 MQTT 브로커에 대한 계획을 계속 구체화하고 있습니다. 그동안 IoT Edge 표준 규격 MQTT 브로커가 필요한 경우 IoT Edge 모듈과 같은 오픈 소스 브로커를 배포하는 것이 좋습니다.
  • 버전 1.2부터 컨테이너에서 백업 이미지가 제거되면 컨테이너가 계속 실행되고 다시 시작할 때 유지됩니다. 1.1에서 백업 이미지가 제거되면 컨테이너가 즉시 다시 만들어지고 백업 이미지가 업데이트됩니다.

업데이트 프로세스를 자동화하기 전에 IoT Edge 버전 1.2가 테스트 머신에서 작동하는지 확인합니다.

준비가 되면 다음 단계에 따라 디바이스에서 IoT Edge를 업데이트합니다.

  1. apt를 업데이트합니다.

    sudo apt-get update
    
  2. 구성 파일은 그대로 두고 이전 버전의 IoT Edge를 제거합니다.

    sudo apt-get remove iotedge
    
  3. IoT ID 서비스 및 Edge용 Microsoft Defender for IoT 마이크로 에이전트와 함께 최신 버전의 IoT Edge를 설치합니다.

    sudo apt-get install aziot-edge defender-iot-micro-agent-edge
    

Edge 디바이스의 보안 모니터링 및 강화를 사용하도록 설정하려면 Edge 에이전트와 함께 마이크로 에이전트를 설치하는 것이 좋습니다. Microsoft Defender for IoT에 대한 자세한 내용은 디바이스 빌더용 Microsoft Defender for IoT란?을 참조하세요.

  1. 이전 config.xml 파일을 새 형식으로 가져오고 구성 정보를 적용합니다.

    sudo iotedge config import
    

이제 디바이스에서 실행되는 IoT Edge 서비스가 업데이트되었으므로 이 문서의 단계에 따라 런타임 컨테이너도 업데이트합니다.

다음 단계

최신 Azure IoT Edge 릴리스를 확인합니다.

IoT(사물 인터넷) 블로그에서 최신 업데이트 및 알림을 받아 보세요.