자동 안내 차량 컨트롤

Azure App Service
Azure Container Apps
Azure Container Registry
Azure IoT Hub
Azure Virtual Network

이 예제 아키텍처는 자동차 OEM(주문자 상표 부착 방식)을 위한 엔드투엔드 접근 방식을 보여 주고 참조 아키텍처 및 재사용할 수 있는 공개된 지원 오픈 소스 라이브러리 여러 개를 포함합니다. Microsoft는 고가용성, 지리적 중복성, 공급업체 중립성을 유지하고 하이브리드 클라우드 컨텍스트에서 실행되도록 차량 제어 소프트웨어의 아키텍처를 변경했습니다.

아키텍처

99.9% 가용성 및 재해 복구를 위한 가동 중지 시간이 없는 장애 조치(failover)를 통한 지리적 중복성

두 Azure 지역에 배포되는 Azure IoT Hub, Ingestion, RabbitMQ, Mission State, Vehicle State, Job Manager 및 Geo DB로 구성된 백 엔드 인스턴스의 스크린샷

이 아키텍처의 Visio 파일을 다운로드합니다.

워크플로

  • Azure IoT Hub, Ingestion, RabbitMQ, Mission State, Vehicle State, Job Manager 및 Geo DB로 구성된 백 엔드 인스턴스는 두 Azure 지역에 배포됩니다. IoT Hub는 Azure App Service의 Web Apps 기능, Web App for Containers 또는 Kubernetes를 사용하여 Azure App Service에 배포할 수 있는 마이크로서비스 아키텍처를 사용하여 구축된 애플리케이션 집합에 연결합니다.
  • 리더 선택 시스템은 특정 시점에 작업 현장에서 AGV를 제어하는 백 엔드를 결정합니다. 담당 백 엔드가 실패하면 리더 선택은 즉시 다른 지역의 백 엔드로 제어권을 넘깁니다.
  • 이 지리적 중복 및 가동 중지 시간 없는 장애 조치(failover) 아키텍처 덕분에 Azure에서 실행되는 AGV 제어 소프트웨어는 인터넷 연결 및 SAP와 같은 외부 하위 시스템이 제한 요소가 아닌 경우 99.9% 가용성을 달성합니다.

데이터 센터에 구애받지 않는 배포를 위한 Kubernetes 및 RabbitMQ

Azure IoT Edge 디바이스에 배포된 Kubernetes 및 RabbitMQ의 스크린샷

이 아키텍처의 Visio 파일을 다운로드합니다.

생산 공장과 Azure 간의 인터넷 연결이 제한 요소인 시나리오에서는 AGV 제어 소프트웨어를 온-프레미스 컴퓨팅 노드에 배포할 수도 있습니다. Kubernetes 및 RabbitMQ를 플랫폼에 구애받지 않는 기술로 사용하면 이전 섹션에서 설명한 애플리케이션 계층이 Azure IoT Edge 디바이스에 배포됩니다.

AGV 공급업체에 구애받지 않는 통신을 위한 VDA 5050 사양 구현

Azure의 백 엔드 AGV 차량 제어 솔루션 스크린샷

이 아키텍처의 Visio 파일을 다운로드합니다.

VDA 5050 차량 커넥터 사양을 준수한 덕분에 Microsoft의 AGV 제어 소프트웨어는 VDA 5050도 준수하는 다양한 공급업체의 모든 유형의 AGV와 통신할 수 있습니다.

워크플로

이 아키텍처에서는 Azure에서 백 엔드 AGV 차량 제어 솔루션을 실행하는 데 사용되는 다양한 서비스 및 구성 요소에 대한 개요를 볼 수 있습니다.

  • 개발자가 새 코드를 커밋하면 GitHub Actions가 코드를 자동으로 검사하여 취약성과 코딩 오류를 빠르게 찾습니다. 또한 애플리케이션 및 인프라 구성 요소를 자동으로 배포하는 데 사용할 수도 있습니다.
  • 컨테이너 레지스트리는 AGV 차량 제어 백 엔드의 다양한 서비스에 사용되는 컨테이너 이미지를 저장합니다.
  • 백 엔드 서비스는 Web App for Containers에 배포됩니다.
  • 이러한 백 엔드 서비스는 VDA 5050 프로토콜을 사용하여 외부 시스템에 연결할 수 있습니다. 또한 Kafka와 같은 관리되는 스트리밍 플랫폼에 연결할 수 있으며 Azure SQL Database에 차량 정보를 저장할 수 있습니다.
  • Azure Key Vault는 암호, 키 및 인증서를 저장합니다.
  • Application Insights는 백 엔드 서비스로 실행되는 애플리케이션에 대한 로깅 및 모니터링을 구현합니다.
  • 관리 ID는 Azure의 다양한 서비스 및 리소스에 연결되므로 개발자가 자격 증명을 관리할 필요가 없습니다. Microsoft Entra 인증을 지원하는 리소스에 연결할 때 사용할 애플리케이션의 ID를 제공합니다.

구성 요소

Azure App Service는 관리되는 VM(가상 머신)에서 앱을 빌드하고 호스트하기 위한 PaaS(Platform as a Service)입니다. 앱이 실행되는 기본 컴퓨팅 인프라를 관리합니다. App Service는 리소스 사용 할당량 및 앱 메트릭 모니터링, 진단 정보 로깅, 메트릭 기반의 경고를 제공합니다.

Azure Virtual Network는 Azure의 개인 네트워크의 기본 구성 요소입니다. 이 서비스를 사용하면 Azure Virtual Machines와 같은 다양한 형식의 Azure 리소스가 서로, 인터넷 및 특정 온-프레미스 네트워크와 안전하게 통신할 수 있습니다.

IoT Hub는 클라우드에서 호스트되는 관리되는 서비스이며, IoT 애플리케이션과 이를 통해 관리하는 디바이스 간의 양방향 통신을 위한 중앙 메시지 허브 역할을 합니다.

Azure Container Apps 는 대규모 컨테이너를 빌드하고 배포하기 위한 완전 관리형 서버리스 컨테이너 서비스입니다.

Azure Container Registry는 Docker Registry 2.0 오픈 소스에 기반한 관리형의 프라이빗 Docker 레지스트리 서비스입니다. 기존 컨테이너 개발 및 배포 파이프라인과 함께 Azure Container Registry를 사용하거나 Azure Container Registry 작업을 사용하여 Azure에서 컨테이너 이미지를 빌드할 수 있습니다. 요청에 따라 빌드하거나 소스 코드 커밋 및 기본 이미지 업데이트와 같은 트리거를 사용하여 빌드를 완전히 자동화합니다.

Microsoft Entra ID 는 사용자, 서비스 및 애플리케이션을 인증하는 클라우드 기반 ID 및 액세스 관리 서비스입니다.

Azure Storage는 내구성이 뛰어나고 가용성이 높으며 확장성이 뛰어난 클라우드 스토리지 솔루션을 제공합니다. 여기에는 개체, 파일, 디스크, 큐 및 테이블 스토리지 기능이 포함되어 있습니다.

RabbitMQ는 원래 고급 메시지 큐 프로토콜을 구현한 오픈 소스 메시지 브로커 소프트웨어이며, 이후 스트리밍 텍스트 지향 메시징 프로토콜, MQ 원격 분석 전송 및 기타 프로토콜을 지원하기 위해 플러그 인 아키텍처로 확장되었습니다.

Azure Virtual Machines는 실제 하드웨어를 구입하고 유지 관리할 필요 없이 가상화의 유연성을 제공하는 확장성 있는 주문형 컴퓨팅 리소스를 제공합니다.

Azure SQL Database는 사용자의 개입 없이도 업그레이드, 패치, 백업 및 모니터링과 같은 데이터베이스 관리 기능 대부분을 처리하는 완전히 관리되는 PaaS 데이터베이스 엔진입니다.

Azure Key Vault는 비밀을 안전하게 저장하고 액세스하기 위한 클라우드 서비스입니다. 비밀은 API 키, 암호, 인증서 또는 암호화 키 등에 대한 액세스를 엄격하게 제어하려는 항목입니다.

Azure Monitor의 기능인 Application Insights는 개발자 및 DevOps 전문가를 위한 확장 가능한 APM(애플리케이션 성능 관리) 서비스입니다. 라이브 애플리케이션을 모니터링하는 데 사용할 수 있습니다. 성능 이상을 자동으로 감지하고, 문제를 진단하고 사용자가 실제로 앱을 사용하여 수행하는 작업을 파악할 수 있는 강력한 분석 도구를 포함하고 있습니다.

대안

이 아키텍처는 Kubernetes 및 Azure App Service의 Web Apps 기능을 사용하여 이 솔루션의 애플리케이션을 실행합니다. 또는 AKS(Azure Kubernetes Service)와 같은 상위 수준 서비스를 채택하지 않고도 Azure에서 컨테이너를 실행하는 가장 빠르고 간단한 방법을 제공하는 Azure Container Instances에서 이러한 마이크로서비스를 실행할 수 있습니다.

온-프레미스 예제에서는 컨테이너 기술로 대체될 수도 있는 Azure 가상 머신을 사용합니다.

이러한 서비스를 실행하는 또 다른 옵션은 AKS(Azure Kubernetes Service)입니다. 이 서비스는 마이크로서비스 실행을 위한 서버리스 Kubernetes, 통합된 CI/CD(연속 통합 및 지속적인 배포) 환경, 엔터프라이즈급 보안 및 거버넌스를 제공합니다.

또한 Application Insights와 함께 Azure Monitor를 사용하여 애플리케이션, 컨테이너, 데이터베이스 및 기타 리소스의 성능을 분석 및 최적화하고 네트워킹 문제를 모니터링 및 진단하는 것이 좋습니다.

이 아키텍처는 RabbitMQ를 메시지 브로커로 사용합니다. 또한 Microsoft Azure는 Azure Queue Storage 또는 Azure Service Bus와 같은 메시징 솔루션을 기본적으로 지원합니다. 비교하려면 Azure Storage 큐 및 Service Bus 큐 - 비교 및 대조를 참조하세요.

Azure의 애플리케이션 및 서비스는 Terraform 스크립트를 사용하여 배포됩니다. 스크립트를 만드는 데 Azure 기본 ARM 템플릿(Azure Resource Manager 템플릿) 또는 Bicep 파일을 사용하는 것이 좋습니다.

시나리오 정보

자동차 제조는 AGV(자동 안내 차량)에 의존하여 부품을 조립 라인으로 전달합니다. AGV는 Just-In-Time 제조 및 자동화된 작업 현장 물류의 업무상 중요한 부분입니다. AGV를 사용하는 작업 현장은 일반적으로 세 가지 문제에 직면합니다.

  • 가용성 서비스가 중단되면 생산이 중단됩니다.
  • 연결. 작업 현장은 퍼블릭 클라우드에 대한 안정적인 연결이 부족한 경우가 많습니다.
  • 공급업체 잠금. 기존 AGV 솔루션은 전용 통신 프로토콜에 의존합니다.

이 예제 아키텍처는 세 가지 작업 영역으로 나뉩니다.

  • 지리적 중복성, 가동 중지 시간이 없는 장애 조치(failover), 99.9% 가용성 및 효율적인 재해 복구를 갖춘 Azure 기반 차량 제어 참조 아키텍처
  • Kubernetes 및 RabbitMQ를 기반으로 구축된 데이터 센터에 구애받지 않는 온-프레미스 배포
  • 일반적인 VDA 5050 사양을 기반으로 구축된 공급업체 중립적인 AGV 통신

잠재적인 사용 사례

이 솔루션은 제조, 자동차 및 운송 산업에 이상적입니다. 다음 시나리오에 적용됩니다.

  • 고객이 현재 제조 공정에서 AGV를 사용하고 있습니다.
  • 고객이 AGV의 낮은 가용성을 경험하고 있으며 이는 ROI(투자 수익률)에 영향을 미칩니다.
  • 작업 현장에 퍼블릭 클라우드와의 연결이 일관되지 않습니다.
  • 고객이 OMP(Open Manufacturing Platform)의 멤버입니다.
  • 고객이 OMP ATS(OMP Autonomous Transport System) 작업 그룹의 멤버입니다.

주요 문제

저비용 상품 생산은 제조 공정 자동화와 부품을 조립 라인으로 적시에 전달하는 것에 달려 있습니다. 자동 안내 차량은 부품을 조립 라인으로 자동 운송함으로써 Just-In-Time 제조 및 작업 현장 물류 자동화에 기여합니다. 예를 들어, 일반적인 승용차 대량 생산 공장에서는 1분에 한 대의 승용차가 출시됩니다. 따라서 생산 공장의 조립 라인이 중단되는 매 분마다 수만 달러에 달하는 재정적 손실이 발생합니다. 자동차 OEM은 자동화 시스템에 대해 높은 수준의 안정성과 가용성이 필요하며 다음과 같은 여러 문제에 직면해 있습니다.

  • 가용성 문제. 기존 AGV 차량 제어 소프트웨어는 99.9% 가용성 요구 사항을 충족하지 않습니다.
  • 연결 문제. 일부 생산 공장에는 Azure 퍼블릭 클라우드에서 호스트되는 AGV 차량 제어 소프트웨어와 작업 현장의 AGV 간의 통신을 지원하는 데 필요한 대역폭과 충분히 안정적인 인터넷 연결이 없습니다. 따라서 이러한 생산 공장의 인트라넷 외부에 있는 데이터 센터에서 AGV 차량 제어 소프트웨어를 호스트하는 것은 선택 사항이 아니었습니다.
  • AGV 공급업체 종속성 문제. AGV 차량 제어 소프트웨어가 기존 AGV의 전용 통신 프로토콜에 의존했기 때문에 기존 AGV를 다른 공급업체의 새 AGV로 교체하는 것은 불가능했습니다.

99.9% 가용성 및 재해 복구를 위한 가동 중지 시간이 없는 장애 조치(failover)를 통한 지리적 중복성을 지원하는 아키텍처는 이러한 문제를 해결할 수 있습니다.

고려 사항

이러한 고려 사항은 워크로드의 품질을 향상시키는 데 사용할 수 있는 일단의 지침 원칙인 Azure Well-Architected Framework의 핵심 요소를 구현합니다. 자세한 내용은 Microsoft Azure Well-Architected Framework를 참조하세요.

가용성 및 확장성

AGV 차량 제어 솔루션을 구성하는 애플리케이션 및 서비스는 가용성 영역을 사용하여 데이터 센터 장애로부터 VM, 애플리케이션 및 데이터를 보호하는 데 도움이 되는 Azure 지역 내의 고유한 실제 위치입니다. Azure App Service 및 AKS도 가용성 영역에 배포할 수 있습니다. IoT Hub는 거의 모든 서비스 계층에서 중복을 구현하여 지역 내 고가용성을 제공합니다.

보안

우수한 보안은 중요한 데이터 및 시스템에 대한 고의적인 공격과 악용을 방어합니다. 자세한 내용은 보안 요소의 개요를 참조하세요.

ID 및 액세스 제어에 Microsoft Entra ID를 사용하고 Azure Key Vault를 사용하여 키와 비밀을 관리합니다.

DevOps

마이크로서비스를 Kubernetes 또는 Azure App Service에 자동으로 배포하려면 CI/CD 프로세스를 사용하는 것이 가장 좋습니다. Azure DevOps 또는 GitHub Actions와 같은 솔루션을 사용하는 것이 좋습니다.

비용 최적화

비용 최적화는 불필요한 비용을 줄이고 운영 효율성을 높이는 방법을 찾는 것입니다. 자세한 내용은 비용 최적화 핵심 요소 개요를 참조하세요.

일반적으로 Azure 가격 계산기를 사용하여 비용을 예측하고 AKS 계산기를 사용하여 Azure에서 AKS를 실행하는 데 드는 비용을 예측합니다. 다른 고려 사항에 대해 알아보려면 Microsoft Azure Well-Architected Framework의 "비용 최적화" 섹션을 참조하세요.

참가자

Microsoft에서 이 문서를 유지 관리합니다. 원래 다음 기여자가 작성했습니다.

보안 주체 작성자:

다음 단계

제품 설명서:

Microsoft 학습 경로:

Azure 아키텍처 센터 개요 문서:

관련 아키텍처: