샘플 애플리케이션, 스크립트, 템플릿 - AWS Panorama

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

샘플 애플리케이션, 스크립트, 템플릿

이 설명서의 GitHub 리포지토리는 AWS Panorama 디바이스용 샘플 애플리케이션, 스크립트 및 템플릿을 제공합니다. 이러한 샘플을 사용하여 모범 사례를 알아보고 개발 워크플로우를 자동화하십시오.

샘플 애플리케이션

샘플 애플리케이션은 AWS Panorama 기능 사용법 및 일반적인 컴퓨터 비전 작업을 보여줍니다. 이러한 샘플 애플리케이션에는 설정 및 배포를 자동화하는 스크립트와 템플릿이 포함되어 있습니다. 최소 구성으로 명령줄에서 애플리케이션을 배포하고 업데이트할 수 있습니다.

  • aws-panorama-sample – 분류 모델을 사용한 기본 컴퓨터 비전입니다. AWS SDK for Python (Boto)를 사용하여 CloudWatch에 지표를 업로드하고, 계측기 사전 처리 및 추론 방법을 사용하고, 로깅을 구성합니다.

  • 디버그 서버 - 디바이스의 인바운드 포트를 열고 트래픽을 애플리케이션 코드 컨테이너로 전달합니다. 멀티스레딩을 사용하여 애플리케이션 코드, HTTP 서버 및 HTTP 클라이언트를 동시에 실행할 수 있습니다.

  • 사용자 지정 모델 – 코드에서 모델을 내보내고 SageMaker Neo로 컴파일하여 AWS Panorama 어플라이언스와의 호환성을 테스트할 수 있습니다. Python 개발, Docker 컨테이너 또는 Amazon EC2 인스턴스에서 로컬로 빌드합니다. 특정 TensorFlow 또는 Python 버전용 Keras의 내장된 모든 애플리케이션 모델을 내보내고 컴파일합니다.

더 많은 샘플 애플리케이션을 보려면 aws-panorama-samples 리포지토리를 방문하십시오.

유틸리티 스크립트

util-scripts 디렉토리의 스크립트는 AWS Panorama 리소스를 관리하거나 개발 워크플로우를 자동화합니다.

  • provision-device.sh – 디바이스를 프로비저닝합니다.

  • check-updates.sh – 어플라이언스 소프트웨어 업데이트를 확인하고 적용합니다.

  • reboot-device.sh – 디바이스를 재부팅합니다.

  • register-camera.sh – 카메라를 등록합니다.

  • deregister-camera.sh – 카메라 노드를 삭제합니다.

  • view-logs.sh – 애플리케이션 인스턴스의 로그를 볼 수 있습니다.

  • pause-camera.sh – 카메라 스트림을 일시 중지하거나 재개합니다.

  • push.sh – 애플리케이션을 빌드, 업로드, 배포합니다.

  • rename-package.sh – 노드 패키지 이름을 바꿉니다. 디렉토리 이름, 구성 파일 및 애플리케이션 매니페스트를 업데이트합니다.

  • samplify.sh – 계정 ID를 예제 계정 ID로 바꾸고 백업 구성을 복원하여 로컬 구성을 제거합니다.

  • update-model-config.sh – 설명자 파일을 업데이트한 후 모델을 애플리케이션에 다시 추가합니다.

  • cleanup-patches.sh – 이전 패치 버전의 등록을 취소하고 Amazon S3에서 해당 매니페스트를 삭제합니다.

사용 세부 정보는 README를 참조하십시오.

AWS CloudFormation 템플릿

cloudformation-templates 디렉토리의 AWS CloudFormation 템플릿을 사용하여 AWS Panorama 애플리케이션용 리소스를 생성하십시오.

  • alarm-application.yml – 애플리케이션의 오류를 모니터링하는 경보를 생성합니다. 애플리케이션 인스턴스에서 오류가 발생하거나 5분 동안 실행이 중지되면 경보가 알림 이메일을 보냅니다.

  • alarm-device.yml – 디바이스의 연결을 모니터링하는 경보를 생성합니다. 디바이스가 5분 동안 메트릭 전송을 중단하면 경보가 알림 이메일을 보냅니다.

  • application-role.yml – 애플리케이션 역할을 생성합니다. 이 역할에는 CloudWatch로 지표를 전송할 수 있는 권한이 포함됩니다. 애플리케이션에서 사용하는 다른 API 작업에 대한 권한을 정책 설명에 추가하십시오.

  • vpc-appliance.yml – AWS Panorama 어플라이언스에 대한 프라이빗 서브넷 서비스 액세스 권한이 있는 VPC를 생성합니다. 어플라이언스를 VPC에 연결하려면 AWS Direct Connect 또는 AWS Site-to-Site VPN를 사용하십시오

  • vpc-endpoint.yml – AWS Panorama 서비스에 대한 프라이빗 서브넷 서비스 액세스 권한이 있는 VPC를 생성합니다. VPC 내부의 리소스를 AWS Panorama에 연결하여 인터넷에 연결하지 않고도 AWS Panorama 리소스를 모니터링하고 관리할 수 있습니다.

이 디렉토리의 create-stack.sh 스크립트는 AWS CloudFormation 스택을 생성합니다. 다양한 수의 인수를 사용합니다. 첫 번째 인수는 템플릿 이름이고 나머지 인수는 템플릿의 파라미터에 대한 오버라이드입니다.

예를 들어 다음 명령은 애플리케이션 역할을 생성합니다.

$ ./create-stack.sh application-role

더 많은 샘플과 도구

aws-panorama-samples 리포지토리에는 더 많은 샘플 애플리케이션과 유용한 도구가 있습니다.

  • 애플리케이션 – 다양한 모델 아키텍처 및 사용 사례를 위한 샘플 애플리케이션입니다.

  • 카메라 스트림 검증 – 카메라 스트림을 검증합니다.

  • PanoJupyter – AWS Panorama 어플라이언스에서 upyterLab을 실행합니다.

  • Sideloading – 애플리케이션 컨테이너를 구축하거나 배포하지 않고도 애플리케이션 코드를 업데이트할 수 있습니다.

AWS 커뮤니티에서는 AWS Panorama을 위한 도구와 지침도 개발했습니다. GitHub에서 다음 오픈소스 프로젝트를 확인해 보십시오.

  • cookiecutter-panorama – AWS Panorama 애플리케이션을 위한 Cookiecutter 템플릿입니다.

  • 백팩 — 런타임 환경 세부 정보, 프로파일링 및 추가 비디오 출력 옵션에 액세스하기 위한 Python 모듈입니다.