다음을 통해 공유


빠른 시작: 클러스터 구성

이 빠른 시작에서는 Azure IoT Operations 클러스터에서 다음 리소스를 구성합니다.

  • 빵집에서 오븐을 시뮬레이션하는 시뮬레이션된 OPC PLC 서버에 대한 연결을 정의하는 자산 엔드포인트입니다.
  • 오븐을 나타내고 오븐이 노출하는 데이터 요소를 정의하는 자산입니다.
  • 시뮬레이션된 오븐에서 메시지를 조작하는 데이터 흐름입니다.

자산은 디바이스, 컴퓨터, 시스템, 프로세스 중 하나를 나타내는 물리적 디바이스 또는 논리 엔터티입니다. 예를 들어 물리적 자산이라 하면 펌프, 모터, 탱크, 생산 라인이 가리킬 수 있습니다. 정의한 논리 자산은 속성을 갖거나, 원격 분석 데이터를 스트리밍하거나, 이벤트를 생성할 수 있습니다.

OPC UA 서버는 자산과 통신하는 소프트웨어 애플리케이션입니다. OPC UA 태그는 OPC UA 서버가 노출하는 데이터 포인트입니다. OPC UA 태그는 자산의 상태, 성능, 품질, 조건에 대한 실시간 데이터 또는 기록 데이터를 제공할 수 있습니다.

이 빠른 시작에서는 Bicep 파일을 사용하여 Azure IoT Operations 인스턴스를 구성합니다.

필수 조건

Kubernetes 클러스터에 Azure IoT Operations 인스턴스를 배포합니다. 빠른 시작: K3s를 사용하여 GitHub Codespaces에서 Azure IoT 작업을 실행하면 빠른 시작에 사용할 수 있는 Azure IoT Operations 인스턴스를 배포하는 간단한 지침을 제공합니다.

달리 명시되지 않는 한 Bash 또는 PowerShell 환경에서 이 빠른 시작에서 콘솔 명령을 실행할 수 있습니다.

어떤 문제를 해결할 수 있나요?

OPC UA 서버가 노출하는 데이터는 구조가 복잡하고 이해하기 어려울 수 있습니다. Azure IoT Operations는 OPC UA 자산을 태그, 이벤트, 속성으로 모델링하는 방법을 제공합니다. 이 모델링을 사용하면 데이터를 더 쉽게 이해하고 MQTT 브로커 및 데이터 흐름과 같은 다운스트림 프로세스에서 사용할 수 있습니다. 데이터 흐름을 사용하면 Azure Event Hubs와 같은 클라우드 서비스로 데이터를 조작하고 라우팅할 수 있습니다. 이 빠른 시작에서는 데이터 흐름이 페이로드에 있는 일부 필드의 이름을 변경하고 메시지에 자산 ID를 추가합니다.

OPC PLC 시뮬레이터 배포

이 빠른 시작에서는 OPC PLC 시뮬레이터를 사용하여 샘플 데이터를 생성합니다. OPC PLC 시뮬레이터를 배포하려면 다음 명령을 실행합니다.

kubectl apply -f https://raw.githubusercontent.com/Azure-Samples/explore-iot-operations/main/samples/quickstarts/opc-plc-deployment.yaml

주의

이 구성은 자체 서명된 애플리케이션 인스턴스 인증서를 사용합니다. 프로덕션 환경에서는 이 구성을 사용하지 마세요. 자세한 내용은 OPC UA용 커넥터에 대한 OPC UA 인증서 인프라 구성을 참조하세요.


환경 변수 설정

Codespaces 환경을 사용하는 경우 필요한 환경 변수가 이미 설정되어 있으며 이 단계를 건너뛸 수 있습니다. 그렇지 않으면 셸에서 다음 환경 변수를 설정합니다.

# Your subscription ID
SUBSCRIPTION_ID=<subscription-id>

# The name of the resource group where your Kubernetes cluster is deployed
RESOURCE_GROUP=<resource-group-name>

# The name of your Kubernetes cluster
CLUSTER_NAME=<kubernetes-cluster-name>

클러스터 구성

다음 명령을 실행하여 Azure IoT Operations 인스턴스를 구성하는 Bicep 파일을 다운로드하고 실행합니다. Bicep 파일:

  • OPC PLC 시뮬레이터에 연결하는 자산 엔드포인트를 추가합니다.
  • 오븐을 나타내는 자산을 추가하고 오븐이 노출하는 데이터 요소를 정의합니다.
  • 시뮬레이션된 오븐에서 메시지를 조작하는 데이터 흐름을 추가합니다.
  • 데이터를 받을 Azure Event Hubs 인스턴스를 만듭니다.
wget https://raw.githubusercontent.com/Azure-Samples/explore-iot-operations/main/samples/quickstarts/quickstart.bicep -O quickstart.bicep

AIO_EXTENSION_NAME=$(az k8s-extension list -g $RESOURCE_GROUP --cluster-name $CLUSTER_NAME --cluster-type connectedClusters --query "[?extensionType == 'microsoft.iotoperations'].id" -o tsv | awk -F'/' '{print $NF}')
AIO_INSTANCE_NAME=$(az iot ops list -g $RESOURCE_GROUP --query "[0].name" -o tsv)
CUSTOM_LOCATION_NAME=$(az iot ops list -g $RESOURCE_GROUP --query "[0].extendedLocation.name" -o tsv | awk -F'/' '{print $NF}')

az deployment group create --subscription $SUBSCRIPTION_ID --resource-group $RESOURCE_GROUP --template-file quickstart.bicep --parameters clusterName=$CLUSTER_NAME customLocationName=$CUSTOM_LOCATION_NAME aioExtensionName=$AIO_EXTENSION_NAME aioInstanceName=$AIO_INSTANCE_NAME

구성 검토

Bicep 파일은 다음 리소스를 구성했습니다.

  • OPC PLC 시뮬레이터에 연결하는 자산 엔드포인트입니다.
  • 오븐을 나타내고 오븐이 노출하는 데이터 요소를 정의하는 자산입니다.
  • 시뮬레이션된 오븐에서 메시지를 처리하는 두 개의 데이터 흐름입니다.
  • 데이터 흐름에 대한 대상 허브를 포함하는 Azure Event Hubs 네임스페이스입니다.

자산 엔드포인트, 자산 및 데이터 흐름을 보려면 브라우저에서 작업 환경 UI로 이동하고 Microsoft Entra ID 자격 증명으로 로그인합니다. 새 배포를 사용 중이므로 아직 사이트가 없습니다. 할당되지 않은 인스턴스 보기를 선택하여 이전 빠른 시작에서 만든 클러스터를 찾을 수 있습니다. 운영 환경에서 인스턴스는 Azure IoT 작업을 배포한 클러스터를 나타냅니다.

할당되지 않은 인스턴스를 보여 주는 작업 환경의 스크린샷

자산 엔드포인트는 OPC PLC 시뮬레이터에 대한 연결을 정의합니다.

자산 엔드포인트 목록을 보여 주는 작업 환경의 스크린샷

오븐 자산은 오븐이 노출하는 데이터 요소를 정의합니다.

자산 목록을 보여 주는 작업 환경의 스크린샷

데이터 흐름은 시뮬레이션된 오븐의 메시지를 처리하고 클라우드의 Event Hubs로 라우팅하는 방법을 정의합니다.

데이터 흐름 목록을 보여 주는 작업 환경의 스크린샷

다음 스크린샷은 온도 변환 데이터 흐름이 구성된 방법을 보여 줍니다.

온도 변환 계산을 보여 주는 작업 환경의 스크린샷

데이터가 Event Hubs로 흐르는지 확인

데이터가 클라우드로 흐르는지 확인하려면 Azure Portal에서 Event Hubs 인스턴스를 볼 수 있습니다. 데이터 흐름이 시작되고 메시지가 이벤트 허브로 전달되기까지 몇 분 정도 기다려야 할 수 있습니다.

이전에 적용한 Bicep 구성은 데이터 흐름에서 대상으로 사용되는 Event Hubs 네임스페이스 및 허브를 만들었습니다. 네임스페이스 및 허브를 보려면 Azure Portal에서 IoT Operations 인스턴스가 포함된 리소스 그룹으로 이동한 다음 Event Hubs 네임스페이스를 선택합니다.

메시지가 인스턴스로 흐르는 경우 인스턴스 개요 페이지에서 들어오는 메시지 수를 볼 수 있습니다.

들어오는 메시지가 있는 Event Hubs 인스턴스 개요 페이지를 보여 주는 스크린샷.

메시지가 흐르는 경우 데이터 탐색기를 사용하여 메시지를 볼 수 있습니다.

Event Hubs 인스턴스 **데이터 탐색기** 페이지의 스크린샷.

메시지를 보려면 Event Hubs 네임스페이스에 대한 Azure Event Hubs 데이터 수신기 역할에 자신을 할당해야 할 수 있습니다.

문제를 어떻게 해결했나요?

이 빠른 시작에서는 bicep 파일을 사용하여 자산 엔드포인트, 자산 및 데이터 흐름을 사용하여 Azure IoT Operations 인스턴스를 구성했습니다. 구성은 시뮬레이션된 오븐에서 데이터를 처리하고 라우팅합니다. 구성의 데이터 흐름은 메시지를 Azure Event Hubs 인스턴스로 라우팅합니다.

리소스 정리

다음 빠른 시작을 진행하는 경우에는 모든 리소스를 유지해야 합니다.

Azure IoT Operations 배포를 제거하지만 클러스터를 유지하려면 az iot ops delete 명령을 사용합니다.

az iot ops delete --cluster $CLUSTER_NAME --resource-group $RESOURCE_GROUP

이 빠른 시작을 위해 만든 모든 리소스를 삭제하려면 Azure IoT 작업을 배포한 Kubernetes 클러스터를 삭제한 다음 클러스터가 포함된 Azure 리소스 그룹을 제거합니다.

이러한 빠른 시작에서 Codespaces를 사용한 경우 GitHub에서 Codespace를 삭제합니다.

다음 단계

오븐 데이터에서 인사이트를 얻기 위해 Microsoft Fabric 대시보드를 빌드하는 방법을 알아보려면 자습서: 처리된 데이터에서 인사이트 가져오기를 참조하세요.