IoT Edge를 위한 개발 및 테스트 환경 준비
적용 대상: IoT Edge 1.5 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 업데이트를 참조하세요.
IoT Edge는 에지에서 작동하는 디바이스로 기존 비즈니스 논리를 이동합니다. IoT Edge 모듈로 실행하도록 애플리케이션 및 워크로드를 준비하려면 컨테이너로 빌드해야 합니다. 이 문서에서는 IoT Edge 솔루션을 성공적으로 만들 수 있도록 개발 환경을 구성하는 방법에 관한 지침을 제공합니다. 개발 환경을 설정했으면 사용자 고유의 IoT Edge 모듈을 개발하는 방법을 알아볼 수 있습니다.
모든 IoT Edge 솔루션에는 IoT Edge 모듈을 실행하는 IoT Edge 디바이스(또는 디바이스)와 모듈을 빌드, 테스트 및 배포하는 개발 머신이라는 두 개 이상의 머신이 있습니다. 이 문서에서는 개발 컴퓨터에 주로 중점을 둡니다. 테스트를 위해 두 컴퓨터가 동일할 수 있습니다. 개발 컴퓨터에서 IoT Edge를 실행하고 모듈을 배포할 수 있습니다.
운영 체제
IoT Edge는 특정 지원되는 운영 체제 세트에서 실행됩니다. IoT Edge용으로 개발하는 경우 컨테이너 엔진을 실행할 수 있는 대부분의 운영 체제를 사용할 수 있습니다. 개발 컴퓨터에서 모듈을 컨테이너로 빌드한 후 컨테이너 레지스트리에 푸시하려면 컨테이너 엔진이 필요합니다.
개발 머신이 IoT Edge를 실행할 수 없는 경우 이 문서의 테스트 도구 섹션으로 건너뛰어 로컬로 테스트하고 디버그하는 방법을 알아봅니다.
개발 머신 및 IoT Edge 디바이스의 운영 체제는 일치시킬 필요가 없습니다. 그러나 개발 머신과 IoT Edge 디바이스를 사용하여 컨테이너 운영 체제는 일정해야 합니다. 예를 들어, Windows 컴퓨터에서 모듈을 개발한 후 Linux 디바이스에 배포할 수 있습니다. Windows 컴퓨터는 Linux 디바이스용 모듈을 빌드하기 위해 Linux 컨테이너를 실행해야 합니다.
컨테이너 엔진
IoT Edge의 중심 개념은 비즈니스 및 클라우드 논리를 컨테이너로 패키지하여 원격으로 배포할 수 있다는 것입니다. 컨테이너를 빌드하려면 개발 컴퓨터에 컨테이너 엔진이 있어야 합니다.
Docker와 같은 Open Container Initiative와 호환되는 컨테이너 엔진은 IoT Edge 모듈 이미지를 빌드할 수 있습니다. Moby는 프로덕션 환경의 IoT Edge 디바이스에 대해 지원되는 컨테이너 엔진입니다. Ubuntu Core 스냅을 사용하는 경우 Docker 스냅은 Canonical에서 서비스되고 프로덕션 시나리오에서 지원됩니다.
개발 도구
Azure IoT Edge 개발 도구는 IoT Edge 모듈을 개발하고 테스트하기 위한 명령줄 도구입니다. 새 IoT Edge 시나리오를 만들고, 모듈 이미지를 빌드하고, 시뮬레이터에서 모듈을 실행하고, IoT Hub로 보낸 메시지를 모니터링할 수 있습니다. iotedgedev 도구는 IoT Edge 모듈 개발에 권장되는 도구입니다.
Visual Studio와 Visual Studio Code에는 IoT Edge 솔루션 개발에 도움이 되는 추가 기능 확장이 있습니다. 이러한 확장은 새 IoT Edge 시나리오를 쉽게 만들고 배포할 수 있도록 하는 언어별 템플릿을 제공합니다. Visual Studio 및 Visual Studio Code용 Azure IoT Edge 확장은 IoT Edge 솔루션을 편리하게 코딩, 빌드, 배포 및 디버그할 수 있도록 합니다. 여러 모듈을 포함하는 전체 IoT Edge 솔루션을 만들 수 있습니다. 그러면 확장 모듈은 새 모듈이 추가될 때마다 배포 매니페스트 템플릿을 자동으로 업데이트합니다. 또한 확장을 통해 Visual Studio 또는 Visual Studio Code 내에서 IoT 디바이스를 관리할 수 있습니다. 디바이스에 모듈을 배포하고, 상태를 모니터링하고, IoT Hub에 발생하는 메시지를 확인할 수 있습니다. 마지막으로 두 확장 모두 IoT EdgeHub 개발 도구를 사용하여 개발 머신에서 모듈의 로컬 실행 및 디버그를 사용하도록 설정합니다.
IoT Edge 개발자 도구
Azure IoT Edge 개발자 도구는 명령줄 기능을 제공하여 IoT Edge 개발을 간소화합니다. 이 도구는 모듈을 개발, 디버그 및 테스트하기 위한 CLI 명령을 제공합니다. IoT Edge 개발 도구는 컴퓨터에 종속성을 수동으로 설치했는지 또는 미리 빌드된 IoT Edge Dev Container를 사용하여 iotedgedev 도구를 실행하는지에 관계없이 개발 시스템과 함께 작동합니다. 컨테이너.
자세한 내용을 확인하고 시작하려면 IoT Edge 개발자 도구 wiki를 참조하세요.
Visual Studio Code 확장
Visual Studio Code용 Azure IoT Edge 확장은 C, C#, Java, Node.js 및 Python을 비롯한 프로그래밍 언어를 기준으로 하는 IoT Edge 모듈 템플릿을 제공합니다. C#의 Azure 함수에 대한 템플릿도 포함되어 있습니다.
Important
Azure IoT Edge Visual Studio Code 확장은 유지 관리 모드에 있습니다. iotedgedev 도구는 IoT Edge 모듈 개발에 권장되는 도구입니다.
자세한 내용을 확인하고 다운로드하려면 Visual Studio Code용 Azure IoT Edge를 참조하세요.
IoT Edge 확장 외에도 개발을 위한 추가 확장을 설치하면 유용할 수 있습니다. 예를 들어 Visual Studio Code용 Docker 지원을 사용하여 이미지, 컨테이너 및 레지스트리를 관리할 수 있습니다. 또한 지원되는 모든 주요 언어 모듈에는 개발 시 도움이 될 수 있는 Visual Studio Code용 확장이 있습니다.
Azure IoT Hub 확장은 Azure IoT Edge 확장의 도우미로 유용합니다.
Visual Studio 2017/2019 확장
Visual Studio용 Azure IoT Edge 도구는 C# 및 C로 빌드한 IoT Edge 모듈 템플릿을 제공합니다.
Important
Azure IoT Edge Visual Studio 확장은 유지 관리 모드에 있습니다. iotedgedev 도구는 IoT Edge 모듈 개발에 권장되는 도구입니다.
자세한 내용을 확인하고 다운로드하려면 Azure IoT Edge Tools for Visual Studio 2017 또는 Azure IoT Edge Tools for Visual Studio 2019를 참조하세요.
테스트 도구
IoT Edge 디바이스를 시뮬레이트하거나 모듈을 보다 효율적으로 디버그하기 위한 몇 가지 테스트 도구가 있습니다. 아래 표에서는 도구 간을 대략적으로 비교하며 다음 개별 섹션에서는 각 도구를 보다 구체적으로 설명합니다.
IoT Edge 런타임만 프로덕션 환경에 배포할 수 있지만, 다음 도구를 사용하면 개발 및 테스트 목적으로 IoT Edge 디바이스를 쉽게 시뮬레이트하거나 만들 수 있습니다. 이러한 도구는 상호 배타적이지 않으며 완전한 개발 환경을 위해 함께 작동할 수 있습니다.
도구 | 다른 명칭 | 지원되는 플랫폼 | 적합한 대상 |
---|---|---|---|
IoT EdgeHub 개발자 도구 | iotedgehubdev | Windows, Linux, macOS | 모듈을 디버그하는 디바이스 시뮬레이트 |
IoT Edge 개발자 컨테이너 | iotedgedev | Windows, Linux, macOS | 종속성을 설치하지 않고 개발 |
IoT EdgeHub 개발자 도구
Azure IoT EdgeHub 개발자 도구는 로컬 개발 및 디버그 환경을 제공합니다. 이 도구는 IoT Edge 런타임 없이 IoT Edge 모듈을 시작할 수 있도록 하므로 IoT Edge 모듈 및 솔루션을 로컬로 만들고 개발하고 테스트하고 실행하고 디버그할 수 있습니다. 이미지를 컨테이너 레지스트리로 푸시한 후 테스트용 디바이스에 배포할 필요가 없습니다.
IoT EdgeHub 개발자 도구는 IoT Edge 개발자 도구뿐만 아니라 Visual Studio 및 Visual Studio Code 확장에서도 잘 작동하도록 디자인되었습니다. 개발 도구는 외부 루프 테스트뿐만 아니라 내부 루프 개발을 지원하므로 DevOps 도구와도 통합됩니다.
Important
IoT EdgeHub 개발 도구는 유지 관리 모드에 있습니다. IoT Edge 런타임이 설치된 Linux 가상 머신, 물리적 디바이스 또는 EFLOW를 사용해 보세요.
자세한 내용을 참조하고 설치하려면 Azure IoT EdgeHub 개발자 도구를 참조하세요.
IoT Edge 개발자 컨테이너
Azure IoT Edge 개발 컨테이너는 IoT Edge 개발에 필요한 종속성이 모두 있는 Docker 컨테이너입니다. 이 컨테이너를 사용하면 C#, Python, Node.js 및 Java를 비롯하여 원하는 어떤 언어로도 쉽게 시작할 수 있습니다. Docker 또는 Moby와 같은 컨테이너 엔진을 설치하여 개발 컴퓨터로 컨테이너를 끌어오기만 하면 됩니다.
자세한 내용은 Azure IoT Edge 개발자 컨테이너를 참조하세요.
DevOps 도구
광범위한 프로덕션 시나리오를 위한 대규모 솔루션을 개발할 준비가 완료되면 자동화, 모니터링 및 간소화된 소프트웨어 엔지니어링 프로세스를 포함하는 최신 DevOps 원리를 활용하세요. IoT Edge에는 Azure DevOps, Azure DevOps Projects 및 Jenkins를 비롯한 DevOps 도구를 지원하기 위한 확장이 있습니다. 기존 파이프라인을 사용자 지정하거나 CircleCI 또는 TravisCI 등의 다른 DevOps 도구를 사용하려는 경우 IoT Edge 개발자 도구에 포함된 CLI 기능을 사용할 수 있습니다.
자세한 내용, 지침 및 예제를 보려면 다음 페이지를 참조하세요.