AWS IoT Greengrass 코어에서 데이터 스트림 관리 - AWS IoT Greengrass

AWS IoT Greengrass Version 1 2023년 6월 30일에 수명 연장 단계에 들어갔습니다. AWS IoT Greengrass V1 관리형 정책에 대한 자세한 정보는 섹션을 참조하세요. 이 날짜 이후에는 기능, 개선 사항, 버그 수정 또는 보안 패치를 제공하는 업데이트가 AWS IoT Greengrass V1 릴리스되지 않습니다. 에서 실행되는 기기는 AWS IoT Greengrass V1 중단되지 않으며 계속 작동하고 클라우드에 연결됩니다. 새로운 기능이 크게 추가되고 추가 플랫폼에 대한 지원이 추가되는 으로 마이그레이션하는 AWS IoT Greengrass Version 2 것이 좋습니다.

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

AWS IoT Greengrass 코어에서 데이터 스트림 관리

AWS IoT Greengrass 스트림 관리자를 사용하면 대용량 IoT 데이터를 AWS 클라우드로 보다 쉽고 안정적으로 전송할 수 있습니다. 스트림 관리자는 데이터 스트림을 로컬에서 처리하고 이를 AWS 클라우드로 자동으로 내보냅니다. 이 기능은 AWS 클라우드 또는 로컬 스토리지 대상으로 내보내기 전에 데이터가 로컬에서 처리되고 분석되는 기계 학습(ML) 추론과 같은 일반적인 에지 시나리오에 통합됩니다.

스트림 관리자는 애플리케이션 개발을 단순화합니다. IoT 애플리케이션은 사용자 지정 스트림 관리 기능을 구축하는 대신 표준화된 메커니즘을 사용하여 대용량 스트림을 처리하고 로컬 데이터 보존 정책을 관리할 수 있습니다. IoT 애플리케이션은 스트림에 대해 읽기 및 쓰기를 수행할 수 있습니다. 스트림별로 스토리지 유형, 크기 및 데이터 보존에 대한 정책을 정의하여 스트림 관리자가 스트림을 처리하고 내보내는 방법을 제어할 수 있습니다.

스트림 관리자는 연결이 간헐적이거나 제한된 환경에서 작동하도록 설계되었습니다. 대역폭 사용, 제한 시간 동작, 코어가 연결되거나 연결이 끊어질 때 스트림 데이터가 처리되는 방식을 정의할 수 있습니다. 중요한 데이터의 경우 우선 순위를 설정하여 스트림을 AWS 클라우드로 내보내는 순서를 제어할 수 있습니다.

사용자는 저장 또는 추가 처리 및 분석을 위해 AWS 클라우드로 자동 내보내기를 구성할 수 있습니다. 스트림 관리자는 다음 AWS 클라우드 목적지로 내보내기를 지원합니다.

  • AWS IoT Analytics의 채널. AWS IoT Analytics를 이용하면 데이터에 대한 고급 분석을 수행하여 비즈니스 결정을 내리고 기계 학습 모델을 개선할 수 있습니다. 자세한 내용은 AWS IoT Analytics 사용 설명서의 AWS IoT Analytics란 무엇인가요?를 참조하세요.

  • Kinesis Data Streams의 스트림. Kinesis Data Streams는 일반적으로 대용량 데이터를 종합하여 데이터 웨어하우스나 map-reduce 클러스터에 로드하는 데 사용됩니다. 자세한 내용은 Amazon Kinesis 개발자 안내서Amazon Kinesis Data Streams이란 무엇입니까?를 참조하세요.

  • AWS IoT SiteWise의 자산 속성. AWS IoT SiteWise는 대규모로 산업 장비 데이터를 수집, 조직 및 분석할 수 있습니다. 자세한 내용은 AWS IoT SiteWise 사용 설명서의 AWS IoT SiteWise란 무엇인가요?를 참조하세요.

  • Amazon S3 객체. Amazon S3를 사용하여 대량의 데이터를 저장 및 검색할 수 있습니다. 자세한 내용은 Amazon Simple Storage Service 개발자 안내서Amazon S3란 무엇인가요?를 참조하세요.

스트림 관리 워크플로우

IoT 애플리케이션은 AWS IoT Greengrass 코어 SDK를 통해 스트림 관리자와 상호 작용합니다. 간단한 워크플로우에서 Greengrass 코어에서 실행 중인 사용자 정의 Lambda 함수는 시계열 온도 및 압력 지표와 같은 IoT 데이터를 소비합니다. 이 Lambda 함수는 데이터를 필터링 또는 압축한 다음, AWS IoT Greengrass 코어 SDK를 호출하여 스트림 관리자의 스트림에 데이터를 기록할 수 있습니다. 스트림 관리자는 스트림에 대해 정의된 정책에 따라 자동으로 스트림을 AWS 클라우드로 내보낼 수 있습니다. 사용자 정의 Lambda 함수는 데이터를 로컬 데이터베이스 또는 스토리지 리포지토리로 직접 보낼 수도 있습니다.

IoT 애플리케이션에는 스트림에 대해 읽기 또는 쓰기를 수행하는 여러 개의 사용자 정의 Lambda 함수가 포함될 수 있습니다. 이러한 로컬 Lambda 함수는 스트림 읽기 및 쓰기를 수행하여 로컬에서 데이터를 필터링, 집계 및 분석할 수 있습니다. 따라서 데이터가 코어에서 클라우드 또는 로컬 대상으로 전송되기 전에 로컬 이벤트에 신속하게 대응하고 중요한 정보를 추출하는 것이 가능합니다.

다음 다이어그램에는 예제 워크플로우가 나와 있습니다.


                스트림 관리자 워크플로우에 대한 다이어그램입니다.

스트림 관리자를 사용하려면 먼저 스트림 관리자 파라미터를 구성하여 Greengrass 코어의 모든 스트림에 적용되는 그룹 수준 런타임 설정을 정의합니다. 이러한 사용자 정의 가능한 설정을 통해 비즈니스 요구 사항 및 환경 제약에 따라 스트림 관리자가 스트림을 저장, 처리 및 내보내는 방법을 제어할 수 있습니다. 자세한 내용은 AWS IoT Greengrass 스트림 관리자 구성 섹션을 참조하세요.

스트림 관리자를 구성한 후 IoT 애플리케이션을 생성하고 배포할 수 있습니다. 이들은 일반적으로 AWS IoT Greengrass 코어 SDK에서 스트림을 생성하고 스트림과 상호 작용하는 데 StreamManagerClient를 사용하는 사용자 정의 Lambda 함수입니다. 스트림 생성 중에 Lambda 함수는 내보내기 대상, 우선순위, 지속성과 같은 스트림별 정책을 정의합니다. StreamManagerClient 작업을 위한 코드 스니펫을 포함한 자세한 내용은 StreamManagerClient를 사용하여 스트림 작업를 참조하세요.

간단한 워크플로우를 구성하는 자습서는 또는 AWS 클라우드 클라우드로 데이터 스트림 내보내기(콘솔) 또는 AWS 클라우드로 데이터 스트림 내보내기(CLI)를 참조하세요.

요구 사항

스트림 관리자 사용을 위해 다음 요구 사항이 적용됩니다.

  • 스트림 관리자가 활성화된 AWS IoT Greengrass Core 소프트웨어 v1.10 이상을 사용해야 합니다. 자세한 내용은 AWS IoT Greengrass 스트림 관리자 구성 섹션을 참조하세요.

    스트림 관리자는 OpenWrt 배포에서 지원되지 않습니다.

  • Java 8 런타임(JDK 8)이 코어에 설치되어 있어야 합니다.

    • Debian 기반 배포판(Raspbian 포함) 또는 Ubuntu 기반 배포판의 경우 다음 명령을 실행합니다.

      sudo apt install openjdk-8-jdk
    • Red Hat 기반 배포판(Amazon Linux 포함) 의 경우 다음 명령을 실행합니다.

      sudo yum install java-1.8.0-openjdk

      자세한 내용은 OpenJDK 설명서의 OpenJDK 패키지 다운로드 및 설치 방법을 참조하십시오.

     

  • 스트림 관리자에는 기본 AWS IoT Greengrass 코어 소프트웨어 외에 최소 70MB의 RAM이 필요합니다. 총 메모리 요구 사항은 워크로드에 따라 다릅니다.

     

  • 사용자 정의 Lambda 함수는 AWS IoT Greengrass 코어 SDK를 사용하여 스트림 관리자와 상호 작용해야 합니다. AWS IoT Greengrass 코어 SDK는 여러 언어로 사용할 수 있지만, 다음 버전만 스트림 관리자 작업을 지원합니다.

    • Java SDK(v1.4.0 이상)

    • Python SDK(v1.5.0 이상)

    • Node.js SDK(v1.6.0 이상)

    Lambda 함수 런타임에 해당하는 버전의 SDK를 다운로드하여 Lambda 함수 배포 패키지에 포함시킵니다.

    참고

    Python용 AWS IoT Greengrass 코어 SDK에는 Python 3.7 이상이 필요하며 다른 패키지 종속성이 있습니다. 자세한 내용은 Lambda 함수 배포 패키지 생성(콘솔) 또는 Lambda 함수 배포 패키지 생성(CLI)을 참조하십시오.

  • 스트림에 대한 AWS 클라우드 내보내기 대상을 정의하는 경우, 내보내기 대상을 생성하고 Greengrass 그룹 역할에서 이들에 액세스할 수 있는 권한을 부여해야 합니다. 대상에 따라 다른 요구 사항도 적용될 수 있습니다. 자세한 내용은 다음을 참조하세요.

    이러한 AWS 클라우드 리소스를 관리할 책임은 사용자에게 있습니다.

데이터 보안

스트림 관리자를 사용할 때는 다음과 같은 보안 고려 사항에 유의하십시오.

로컬 데이터 보안

AWS IoT Greengrass은 코어 디바이스의 구성 요소 간에 로컬로 저장 시 또는 전송 중에 스트림 데이터를 암호화하지 않습니다.

  • 저장 시 데이터. 스트림 데이터는 Greengrass 코어의 스토리지 디렉터리에 로컬로 저장됩니다. 데이터 보안을 위해 AWS IoT Greengrass는 Unix 파일 사용 권한 및 전체 디스크 암호화를 사용합니다(활성화된 경우). 선택적 STREAM_MANAGER_STORE_ROOT_DIR 파라미터를 사용하여 스토리지 디렉터리를 지정할 수 있습니다. 다른 스토리지 디렉터리를 사용하도록 나중에 이 파라미터를 변경하는 경우, AWS IoT Greengrass에서 이전의 스토리지 디렉터리 또는 해당 내용이 삭제되지 않습니다.

     

  • 로컬로 전송 중인 데이터. AWS IoT Greengrass는 데이터 소스, Lambda 함수, AWS IoT Greengrass 코어 SDK 및 스트림 관리자 간에 로컬 전송 시 스트림 데이터를 암호화하지 않습니다.

     

  • AWS 클라우드로 전송 중인 데이터. 스트림 관리자가 AWS 클라우드로 내보낸 데이터 스트림은 전송 계층 보안(TLS)에서 표준 AWS 서비스 클라이언트 암호화를 사용합니다.

자세한 내용은 데이터 암호화 섹션을 참조하세요.

클라이언트 인증

스트림 관리자 클라이언트는 AWS IoT Greengrass 코어 SDK를 사용하여 스트림 관리자와 통신합니다. 클라이언트 인증이 활성화되면 Greengrass 그룹의 Lambda 함수만 스트림 관리자의 스트림과 상호 작용할 수 있습니다. 클라이언트 인증이 비활성화되면 Greengrass 코어(예: Docker 컨테이너)에서 실행 중인 모든 프로세스가 스트림 관리자의 스트림과 상호 작용할 수 있습니다. 비즈니스 사례에 필요한 경우에만 인증을 비활성화해야 합니다.

STREAM_MANAGER_AUTHENTICATE_CLIENT 파라미터를 사용하여 클라이언트 인증 모드를 설정합니다. 콘솔 또는 AWS IoT Greengrass API에서 이 파라미터를 구성할 수 있습니다. 변경 사항은 그룹이 배포된 후에 적용됩니다.

  활성화됨 비활성화됨

파라미터 값

true(기본값 및 권장)

false

허용된 클라이언트

Greengrass 그룹의 사용자 정의 Lambda 함수

Greengrass 그룹의 사용자 정의 Lambda 함수

Greengrass 코어 디바이스에서 실행 중인 기타 프로세스

다음 사항도 참조하세요.