디바이스에 AWS IoT Greengrass 구성 요소 배포 - AWS IoT Greengrass

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

디바이스에 AWS IoT Greengrass 구성 요소 배포

를 AWS IoT Greengrass 사용하여 장치 또는 장치 그룹에 구성 요소를 배포할 수 있습니다. 배포를 사용하여 장치로 전송되는 구성 요소 및 구성을 정의합니다. AWS IoT GreengrassGreengrass 코어 디바이스를 나타내는 대상, AWS IoT 사물 또는 사물 그룹에 배포합니다. AWS IoT GreengrassAWS IoT Core작업을 사용하여 코어 디바이스에 배포합니다. 작업이 디바이스에 롤아웃되는 방식을 구성할 수 있습니다.

코어 디바이스 배포

각 코어 기기는 해당 기기에 대한 배포 구성 요소를 실행합니다. 동일한 대상에 대한 새 배포는 대상에 대한 이전 배포를 덮어씁니다. 배포를 만들 때 코어 장치의 기존 소프트웨어에 적용할 구성 요소 및 구성을 정의합니다.

대상 배포를 수정하면 이전 개정의 구성 요소를 새 개정의 구성 요소로 교체합니다. 예를 들어, 로그 매니저시크릿 매니저 구성 요소를 사물 그룹에 TestGroup 배포합니다. 그런 다음 Secret Manager 구성 요소만 지정하는 또 다른 배포를 생성합니다. TestGroup 따라서 해당 그룹의 핵심 기기는 더 이상 로그 관리자를 실행하지 않습니다.

플랫폼 종속성 해결

코어 기기가 배포를 받으면 구성 요소가 코어 기기와 호환되는지 확인합니다. 예를 들어, 를 Firehose Windows 대상에 배포하면 배포가 실패합니다.

구성 요소 종속성 해결

또한 코어 디바이스는 이 사물 그룹에 다른 구성 요소를 배포하기 위한 버전 제약 조건과 각 구성 요소 종속성이 호환되는지 여부도 확인합니다. 구성 요소의 버전 제약이 겹치는 경우 Greengrass는 해당 구성 요소 중 가장 높은 버전의 구성 요소를 사용합니다. 예:

  • 구성 요소 A를 에 배포합니다. TestGroup 구성 요소 A는 구성 요소 com.example.PythonRuntime 버전 3.5 - 3.10에 따라 달라집니다.

  • 그런 다음 구성 요소 B를 에 TestGroup 배포합니다. 구성 요소 B는 구성 요소 com.example.PythonRuntime 버전 3.7~3.8에 따라 달라집니다.

따라서 코어 디바이스는 이 버전이 버전 제약이 겹치는 가장 적용 가능한 버전 중 가장 높은 버전이기 때문에 com.example.PythonRuntime 구성 요소 버전 3.8을 배포할 수 있다고 TestGroup 판단합니다.

구성 요소 종속성 (예: 구성 요소)

그런 다음 구성 요소 C를 에 TestGroup 배포합니다. 구성 요소 C는 구성 요소 com.example.PythonRuntime 버전 2.6 - 2.7에 따라 달라집니다. 2.6 - 2.7 및 3.7 - 3.8 제약 조건을 충족하는 구성 요소 버전이 없기 때문에 이 배포가 실패합니다.

구성 요소 종속성으로 인해 배포가 실패합니다.

사물 그룹에서 장치 제거

사물 그룹에서 코어 디바이스를 제거하는 경우 구성 요소 배포 동작은 코어 디바이스가 실행하는 Greengrass Nucleus 버전에 따라 달라집니다.

2.5.1 and later

사물 그룹에서 코어 디바이스를 제거하는 경우 AWS IoT 정책은 권한을 부여하는지 여부에 따라 동작이 달라집니다. greengrass:ListThingGroupsForCoreDevice 핵심 장치에 대한 이 권한 및 AWS IoT 정책에 대한 자세한 내용은 을 참조하십시오AWS IoT Greengrass에 대한 디바이스 인증 및 권한 부여.

  • AWS IoT정책에서 이 권한을 부여하는 경우

    사물 그룹에서 핵심 장치를 AWS IoT Greengrass 제거하면 다음에 장치를 배포할 때 사물 그룹의 구성 요소가 제거됩니다. 장치의 구성 요소가 다음 배포에 포함되는 경우 해당 구성 요소는 장치에서 제거되지 않습니다.

  • AWS IoT정책에서 이 권한을 부여하지 않는 경우

    사물 그룹에서 핵심 장치를 제거하는 경우 은 해당 사물 그룹의 구성 요소를 장치에서 삭제하지 AWS IoT Greengrass 않습니다.

    디바이스에서 구성 요소를 제거하려면 Greengrass CLI의 배포 생성 명령을 사용합니다. --remove인수로 제거할 구성 요소를 지정하고, 인수를 사용하여 사물 그룹을 지정합니다. --groupId

2.5.0

사물 그룹에서 코어 장치를 AWS IoT Greengrass 제거하면 다음에 장치를 배포할 때 사물 그룹의 구성 요소가 제거됩니다. 장치의 구성 요소가 다음 배포에 포함되는 경우 해당 구성 요소는 장치에서 제거되지 않습니다.

이 동작을 수행하려면 코어 기기의 AWS IoT 정책에서 greengrass:ListThingGroupsForCoreDevice 권한을 부여해야 합니다. 코어 디바이스에 이 권한이 없는 경우 코어 디바이스는 배포를 적용하지 못합니다. 자세한 설명은 AWS IoT Greengrass에 대한 디바이스 인증 및 권한 부여 섹션을 참조하세요.

2.0.x - 2.4.x

사물 그룹에서 핵심 장치를 제거해도 사물 그룹의 구성 요소는 장치에서 AWS IoT Greengrass 삭제되지 않습니다.

디바이스에서 구성 요소를 제거하려면 Greengrass CLI의 배포 생성 명령을 사용합니다. --remove인수로 제거할 구성 요소를 지정하고, 인수를 사용하여 사물 그룹을 지정합니다. --groupId

배포

배포는 연속적입니다. 배포를 만들 때 온라인 AWS IoT Greengrass 상태의 대상 장치에 배포를 배포하십시오. 대상 장치가 온라인 상태가 아닌 경우 다음에 연결할 때 배포를 AWS IoT Greengrass 수신합니다. 대상 사물 그룹에 핵심 장치를 추가하면 해당 사물 그룹에 대한 최신 배포를 장치에 AWS IoT Greengrass 보냅니다.

코어 기기는 기본적으로 구성 요소를 배포하기 전에 장치의 각 구성 요소에 알림을 보냅니다. Greengrass 구성 요소는 알림에 응답하여 배포를 연기할 수 있습니다. 기기의 배터리 잔량이 부족하거나 중단할 수 없는 프로세스를 실행 중인 경우에는 배포를 연기하는 것이 좋습니다. 자세한 설명은 튜토리얼: 구성 요소 업데이트를 연기하는 Greengrass 구성 요소 개발 섹션을 참조하세요. 배포를 생성할 때 구성 요소에 알리지 않고 배포하도록 구성할 수 있습니다.

각 대상 사물 또는 사물 그룹에는 한 번에 하나의 배포가 있을 수 있습니다. 즉, 대상에 대한 배포를 만들면 해당 대상 배포의 이전 버전을 더 AWS IoT Greengrass 이상 배포하지 않습니다.

배포 옵션

배포에서는 업데이트를 받는 장치와 업데이트 배포 방법을 제어할 수 있는 몇 가지 옵션을 제공합니다. 배포를 생성할 때 다음 옵션을 구성할 수 있습니다.

  • AWS IoT Greengrass구성 요소

    대상 장치에 설치하고 실행할 구성 요소를 정의합니다. AWS IoT Greengrass구성 요소는 Greengrass 코어 디바이스에서 배포하고 실행하는 소프트웨어 모듈입니다. 디바이스는 컴포넌트가 디바이스의 플랫폼을 지원하는 경우에만 컴포넌트를 수신합니다. 이렇게 하면 대상 장치가 여러 플랫폼에서 실행되는 경우에도 장치 그룹에 배포할 수 있습니다. 구성 요소가 장치의 플랫폼을 지원하지 않는 경우 구성 요소는 장치에 배포되지 않습니다.

    사용자 지정 구성 요소 및 AWS 제공된 구성 요소를 장치에 배포할 수 있습니다. 구성 요소를 배포할 때 구성 요소 종속성을 AWS IoT Greengrass 식별하여 해당 구성 요소도 배포합니다. 자세한 내용은 AWS IoT Greengrass구성 요소 개발AWS-제공된 구성 요소 섹션을 참조하세요.

    각 구성 요소에 배포할 버전 및 구성 업데이트를 정의합니다. 구성 업데이트는 코어 장치에서 구성 요소의 기존 구성을 수정하는 방법 또는 구성 요소가 코어 장치에 없는 경우 구성 요소의 기본 구성을 수정하는 방법을 지정합니다. 기본값으로 재설정할 구성 값과 코어 장치에 병합할 새 구성 값을 지정할 수 있습니다. 코어 장치가 여러 대상에 대한 배포를 수신하고 각 배포에서 호환되는 구성 요소 버전을 지정하면 코어 장치는 배포를 만들 때의 타임스탬프를 기반으로 구성 업데이트를 순서대로 적용합니다. 자세한 설명은 구성 요소 구성 업데이트 섹션을 참조하세요.

    중요

    구성 요소를 배포할 때 해당 구성 요소의 모든 종속성 중에서 지원되는 최신 버전을 AWS IoT Greengrass 설치합니다. 따라서 사물 그룹에 새 장치를 추가하거나 해당 장치를 대상으로 하는 배포를 업데이트하면 AWS 제공된 공용 구성 요소의 새 패치 버전이 핵심 장치에 자동으로 배포될 수 있습니다. Nucleus 업데이트와 같은 일부 자동 업데이트로 인해 장치가 예기치 않게 다시 시작될 수 있습니다.

    디바이스에서 실행 중인 구성 요소가 의도하지 않게 업데이트되는 것을 방지하려면 배포를 생성할 때 해당 구성 요소의 기본 버전을 직접 포함하는 것이 좋습니다. AWS IoT GreengrassCore 소프트웨어의 업데이트 동작에 대한 자세한 내용은 을 참조하십시오AWS IoT Greengrass코어 소프트웨어 (OTA) 업데이트.

  • 배포 정책

    구성을 안전하게 배포할 수 있는 시기와 배포가 실패할 경우 취해야 할 조치를 정의하세요. 구성 요소가 업데이트 가능하다고 보고할 때까지 기다릴지 여부를 지정할 수 있습니다. 실패한 배포를 적용하는 경우 장치를 이전 구성으로 롤백할지 여부도 지정할 수 있습니다.

  • 구성 중지

    배포를 중지할 시기와 방법을 정의합니다. 정의한 기준이 충족되면 배포가 중지되고 실패합니다. 예를 들어, 최소 개수의 장치에서 배포를 수신한 후 일정 비율의 장치가 해당 배포를 적용하지 못하면 배포를 중지하도록 구성할 수 있습니다.

  • Rollout configuration(롤아웃 구성)

    대상 장치에 배포가 배포되는 속도를 정의하십시오. 최소 및 최대 속도 범위를 사용하여 기하급수적 속도 증가를 구성할 수 있습니다.

  • 타임아웃 구성

    각 디바이스가 배포를 적용하는 데 필요한 최대 시간을 정의합니다. 디바이스가 지정한 기간을 초과할 경우 디바이스는 배포를 적용하지 못합니다.

중요

사용자 지정 구성 요소는 S3 버킷의 아티팩트를 정의할 수 있습니다. AWS IoT GreengrassCore 소프트웨어는 구성 요소를 배포할 때 에서 구성 요소의 아티팩트를 다운로드합니다. AWS 클라우드 코어 디바이스 역할은 기본적으로 S3 버킷에 대한 액세스를 허용하지 않습니다. S3 버킷의 아티팩트를 정의하는 사용자 지정 구성 요소를 배포하려면 코어 디바이스 역할이 해당 버킷에서 아티팩트를 다운로드할 수 있는 권한을 부여해야 합니다. 자세한 내용은 구성 요소 아티팩트의 S3 버킷 액세스 허용을(를) 참조하세요.