IoT Edge를 위한 개발 및 테스트 환경 준비

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

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의 중심 개념은 비즈니스 및 클라우드 논리를 컨테이너로 패키지하여 원격으로 배포할 수 있다는 것입니다. 컨테이너를 빌드하려면 개발 컴퓨터에 컨테이너 엔진이 있어야 합니다.

프로덕션 환경에서 IoT Edge 디바이스에 대해 지원되는 유일한 컨테이너 엔진은 Moby입니다. 그러나 Docker와 같은 Open Container Initiative와 호환되는 컨테이너 엔진은 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 개발 도구를 사용하여 개발 머신에서 모듈의 로컬 실행 및 디버깅을 사용하도록 설정합니다.

다른 편집기 또는 CLI를 사용하여 개발하려는 경우 Azure IoT Edge 개발자 도구는 명령줄에서 개발 및 테스트할 수 있도록 명령을 제공합니다. 새 IoT Edge 시나리오를 만들고, 모듈 이미지를 빌드하고, 시뮬레이터에서 모듈을 실행하고, IoT Hub로 보낸 메시지를 모니터링할 수 있습니다.

Visual Studio Code 확장

Visual Studio Code용 Azure IoT Edge 확장은 C, C#, Java, Node.js 및 Python을 비롯한 프로그래밍 언어를 기준으로 하는 IoT Edge 모듈 템플릿을 제공합니다. C#의 Azure 함수에 대한 템플릿도 포함되어 있습니다.

자세한 내용을 확인하고 다운로드하려면 Visual Studio Code용 Azure IoT Edge를 참조하세요.

IoT Edge 확장 외에도 개발을 위한 추가 확장을 설치하면 유용할 수 있습니다. 예를 들어 Visual Studio Code용 Docker 지원을 사용하여 이미지, 컨테이너 및 레지스트리를 관리할 수 있습니다. 또한 지원되는 모든 주요 언어 모듈에는 개발 시 도움이 될 수 있는 Visual Studio Code용 확장이 있습니다.

Azure IoT Hub 확장은 Azure IoT Edge 확장의 도우미로 유용합니다.

필수 구성 요소

일부 언어 및 서비스용 모듈 템플릿에는 Visual Studio Code를 사용하여 개발 컴퓨터에서 프로젝트 폴더를 빌드하는 데 필요한 필수 구성 요소가 있습니다.

모듈 템플릿 필수 조건
Azure 기능 .NET Core SDK
C Git
C# .NET Core SDK
Java
Node.js
Python

Visual Studio 2017/2019 확장

Visual Studio용 Azure IoT Edge 도구는 C# 및 C로 빌드한 IoT Edge 모듈 템플릿을 제공합니다.

자세한 내용을 확인하고 다운로드하려면 Azure IoT Edge Tools for Visual Studio 2017 또는 Azure IoT Edge Tools for Visual Studio 2019를 참조하세요.

IoT Edge 개발자 도구

Azure IoT Edge 개발자 도구는 명령줄 기능을 제공하여 IoT Edge 개발을 간소화합니다. 이 도구는 모듈을 개발, 디버그 및 테스트하기 위한 CLI 명령을 제공합니다. IoT Edge 개발자 도구는 컴퓨터에 수동으로 종속성을 설치했는지 또는 IoT Edge 개발 컨테이너를 사용하고 있는지에 관계없이 개발 시스템에 작동합니다.

자세한 내용을 확인하고 시작하려면 IoT Edge 개발자 도구 wiki를 참조하세요.

테스트 도구

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 도구와도 통합됩니다.

자세한 내용을 참조하고 설치하려면 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 기능을 사용할 수 있습니다.

자세한 내용, 지침 및 예제를 보려면 다음 페이지를 참조하세요.