-
[AWS] IoT Greengrass V2 Workshop 1클라우드/AWS 2023. 12. 5. 22:38
Greengrass 란?
- 디바이스 소프트웨어를 구축, 배포 및 관리하는데 도움이되는 IoT 오픈 소스 엣지 런타임 및 클라우드 서비스
- AWS IoT Greengrass를 사용하면 로컬 처리, 메시징, 데이터 관리, ML 추론을 지원하는 지능형 장치 소프트웨어를 빠르고 쉽게 구축할 수 있음
- 디바이스가 생성하는 데이터에 따라 로컬로 작동, 기계 학습 모델 기반 예측 실행, 데이터 필터링 및 집계, 필요한 정보만 클라우드로 전송하도록 프로그래밍 가능
- 쉽게 말해서, 데이터를 생성하는 장소에 가까운 지역에서 데이터를 처리하고 분석하는 Edge 컴퓨팅을 위한 플랫폼임!
- 클라우드랑 edge 디바이스 간에 상호작용하도록 설계되어 있어서 데이터를 신속하게 처리하고 클라우드로 전송하는 것
Components
- ML 추론, 로컬 처리, 메시징 및 데이터 관리와 같은 복잡한 워크플로를 쉽게 생성할 수 있는 빌딩 블록
- Stream Manager: 로컬 및 클라우드 대상으로의 데이터 내보내기 지원
- Greengrass Core device
- Greengrass core software를 실행하는 디바이스
- Core device는 AWS IoT 사물, 여러 Core device를 IoT 사물 그룹에 추가해 Greengrass Core device 그룹 생성
- Greengrass Component
- Greengrass Core device에 배포되고 실행되는 소프트웨어 모듈
- Recipe: component 세부 정보, 구성 및 매개 변수를 정의하여 소프트웨어 묘듈을 설명하는 JSON/YAML 파일
- Artifact: 디바이스에서 실행될 소프트웨어를 정의하는 소스 코드, 바이너리 또는 스크립트
- Dependency: 종속 구성 요소의 자동 업데이트 또는 다시 시작을 강제할 수 있는 구성 요소 간의 관계
Deployment
- 단일 Greengrass Core device 또는 Greengrass Core device group이 될 수 있는 destination target device(엣지)에 구성 요소를 보내고 원하는 component 구성을 적용하는 프로세스
- 업데이트된 모든 component를 대상에 자동으로 적용하고 종속성으로 정의 된 다른 모든 구성 요소들을 포함
- deployment의 component 또는 component 구성에 대한 모든 업데이트가 자동으로 모든 destination targets 으로 전송됨
쉽게 말하면, component는 Edge 디바이스에서 실행되는 소프트웨어 모듈이나 코드 조각임!
이 component 들이 greengrass 디바이스에서 로컬로 실행되고, 클라우드와의 통신이나 데이터 처리 작업 수행함...
componen는 람다함수, ML 모델, Docker 컨테이너의 형태임, 물론 component끼리도 통신할수 있음
- AWS IoT Greengrass Core software V2 배포 및 설정
- 에지에서 IPC(프로세스 간 통신)을 위한 사용자 지정 구성 요소 만들기
- Publisher component 개발 및 배포
- Subscriber component 개발 및 배포
- Lambda를 사용해 사용자 지정 component를 생성하여 IPC에서 AWS IoT Core로 엣지 데이터 가져오기
- AWS IoT Greengrass V2에서 MQTT 브리지 설정
Cloud9 인스턴스 구성
: Greengrass edge runtime을 실행하기 위한 환경
- workshop에 나와있는 것처럼 임시 자격증명 비활성화 / aws configure / 환경 변수 설정 차례로 하기
Greengrass 설정
- AWS IoT core의 초기 설정 수행하고, v2 설치프로그램으로 cloud9(에지 게이트웨이 에뮬레이션) 에 v2를 설치해보자
- 설치 프로그램은 사물, 정책, 디바이스 인증서를 프로비저닝함
- iot core에서 greengrass 코어 디바이스 설정 및 iot core 연결 완료
- java 설치
이렇게, 코어 디바이스를 설정하면서 보이는 명령어들을 cloud9에 복붙함
Component 만들기
- component의 단위로 모듈식 소프트웨어를 임의로 개발하고 배포할 수 있음
- 디바이스에 샘플 애플리케이션을 만들고 이를 구성 요소로 배포할 예정
<Actifacts>
mkdir -p ~/environment/GreengrassCore/artifacts/com.example.HelloWorld/1.0.0 && touch ~/environment/GreengrassCore/artifacts/com.example.HelloWorld/1.0.0/hello_world.py
- 위 명령어를 실행하면 아티팩트 폴더랑 빈 스크립트 파일이 생성됨
- 아티팩트는 디바이스에서 실행될 소프트웨어를 정의하는 코드를 뜻함
- 아티팩트 경로는 항상 artifacts/componentName/componentVersion/. 형식임
<Recipe>
mkdir -p ~/environment/GreengrassCore/recipes && touch ~/environment/GreengrassCore/recipes/com.example.HelloWorld-1.0.0.json
- 위 명령어를 실행하면 아티팩트 폴더랑 빈 스크립트 파일이 생성됨
- 레시피는 component 세부 정보, 구성 및 매개 변수를 정의하여 소프트웨어 묘듈을 설명하는 JSON/YAML 파일
component 실행 및 테스트
sudo tail -F /greengrass/v2/logs/greengrass.log
Component를 Greengrass 코어 디바이스에 배포
sudo /greengrass/v2/bin/greengrass-cli deployment create \ --recipeDir ~/environment/GreengrassCore/recipes \ --artifactDir ~/environment/GreengrassCore/artifacts \ --merge "com.example.HelloWorld=1.0.0"
배포하고, 배포 성공 확인 로그를 통해 확인해보자
https://realyun99.tistory.com/192
'클라우드 > AWS' 카테고리의 다른 글
[RDS] MySQL 5.7 to 8.0 업그레이드 기록 (2) 2024.07.27 [AWS] AWS IoT Greengrass V2 Workshop 2 (1) 2023.12.05 [AWS] MGN를 이용하여 마이그레이션 (1) 2023.12.04 [AWS] Terraform으로 쿠버네티스 배포하기 (0) 2023.08.14 [AWS] EC2 Instance Connect 환경 구축하고 private instance에 연결하기 (0) 2023.08.09