기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
AWS IoT Greengrass를 사용하여 디바이스 또는 디바이스 그룹에 구성 요소를 배포할 수 있습니다. 배포를 사용하여 디바이스로 전송되는 구성 요소 및 구성을 정의합니다. AWS IoT Greengrass는 Greengrass 코어 디바이스를 나타내는 대상 , AWS IoT 사물 또는 사물 그룹에 배포합니다. AWS IoT Greengrass는 AWS IoT Core 작업을 사용하여 코어 디바이스에 배포합니다. 작업이 디바이스로 롤아웃되는 방식을 구성할 수 있습니다.
코어 디바이스 배포
각 코어 디바이스는 해당 디바이스에 대한 배포의 구성 요소를 실행합니다. 동일한 대상에 대한 새 배포는 대상의 이전 배포를 덮어씁니다. 배포를 생성할 때 코어 디바이스의 기존 소프트웨어에 적용할 구성 요소 및 구성을 정의합니다.
대상에 대한 배포를 수정하면 이전 수정의 구성 요소를 새 수정의 구성 요소로 바꿉니다. 예를 들어 로그 관리자 및 보안 암호 관리자 구성 요소를 사물 그룹 TestGroup
에 배포합니다. 그런 다음 보안 암호 관리자 구성 요소만 지정하는 TestGroup
에 대한 다른 배포를 생성합니다. 결과적으로 해당 그룹의 코어 디바이스는 더 이상 로그 관리자를 실행하지 않습니다.
플랫폼 종속성 해결
코어 디바이스는 배포를 수신하면 구성 요소가 코어 디바이스와 호환되는지 확인합니다. 예를 들어 Firehose를 Windows 대상에 배포하면 배포가 실패합니다.
구성 요소 종속성 해결
또한 코어 디바이스는 각 구성 요소 종속성이 이 사물 그룹에 다른 구성 요소를 배포하기 위한 버전 제약 조건과 호환되는지 확인합니다. 구성 요소에 대한 버전 제약 조건이 겹치는 경우 Greengrass는 구성 요소의 적용 가능한 최고 버전을 사용합니다. 예:
-
구성 요소 A를
TestGroup
에 배포합니다. 구성 요소 A는 구성 요소com.example.PythonRuntime
버전 3.5~3.10에 종속되어 있습니다. -
그런 다음 구성 요소 B를
TestGroup
에 배포합니다. 구성 요소 B는 구성 요소com.example.PythonRuntime
버전 3.7~3.8에 종속되어 있습니다.
결과적으로 TestGroup
의 코어 디바이스는 com.example.PythonRuntime
구성 요소의 버전 3.8을 배포할 수 있다고 판단합니다. 이 버전이 버전 제약 조건이 겹치는 적용 가능한 가장 높은 버전이기 때문입니다.
![예제 구성 요소의 구성 요소 종속성](images/dependency-1.png)
그런 다음 구성 요소 C를 TestGroup
에 배포합니다. 구성 요소 C는 구성 요소 com.example.PythonRuntime
버전 2.6 - 2.7에 종속되어 있습니다. 제약 조건 2.6~2.7 및 3.7~3.8을 충족하는 구성 요소 버전이 없으므로 이 배포는 실패합니다.
![구성 요소 종속성으로 인해 실패한 배포](images/dependency-2.png)
사물 그룹에서 디바이스 제거
사물 그룹에서 코어 디바이스를 제거할 때 구성 요소 배포 동작은 코어 디바이스가 실행하는 Greengrass nucleus의 버전에 따라 달라집니다.
사물 그룹에서 코어 디바이스를 제거할 때 그 동작은 AWS IoT 정책에서 greengrass:ListThingGroupsForCoreDevice
권한을 부여하는지 여부에 따라 달라집니다. 이 권한 및 코어 디바이스의 AWS IoT 정책에 대한 자세한 내용은 AWS IoT Greengrass에 대한 장치 인증 및 권한 부여 섹션을 참조하세요.
-
AWS IoT 정책에서 이 권한을 부여하는 경우
사물 그룹에서 코어 디바이스를 제거하는 경우 AWS IoT Greengrass는 다음에 디바이스로 배포를 실행할 때 사물 그룹의 구성 요소를 제거합니다. 디바이스의 구성 요소가 다음 배포에 포함되는 경우 해당 구성 요소는 디바이스에서 제거되지 않습니다.
-
AWS IoT 정책에서 이 권한을 부여하지 않는 경우
사물 그룹에서 코어 디바이스를 제거하더라도 AWS IoT Greengrass는 디바이스에서 해당 사물 그룹의 구성 요소를 삭제하지 않습니다.
디바이스에서 구성 요소를 제거하려면 Greengrass CLI의 deployment create 명령을 사용합니다.
--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 Greengrass 코어 소프트웨어의 업데이트 동작에 대한 자세한 내용은 AWS IoT Greengrass 코어 소프트웨어(OTA) 업데이트 섹션을 참조하세요.
-
배포 정책
구성을 배포할 안전한 시기와 배포가 실패할 경우 수행할 작업을 정의합니다. 구성 요소가 업데이트할 수 있다고 보고할 때까지 기다릴지 여부를 지정할 수 있습니다. 디바이스에서 적용하는 배포가 실패하는 경우 디바이스를 이전 구성으로 롤백할지 여부를 지정할 수도 있습니다.
-
구성 중지
배포를 중지하는 시기와 방법을 정의합니다. 정의하는 기준이 충족되면 배포가 중지되고 실패합니다. 예를 들어, 디바이스 중 일부에서 최소 수의 디바이스가 배포를 수신한 후 해당 배포를 적용하지 못하는 경우 배포가 중지되도록 구성할 수 있습니다.
-
Rollout configuration(롤아웃 구성)
배포가 대상 디바이스로 롤아웃되는 속도를 정의합니다. 최소 및 최대 속도 범위로 지수 속도 증가를 구성할 수 있습니다.
-
제한 시간 구성
각 디바이스가 배포를 적용해야 하는 최대 시간을 정의합니다. 디바이스가 지정한 기간을 초과하면 디바이스에서 배포를 적용하지 못합니다.
중요
사용자 지정 구성 요소는 S3 버킷에서 아티팩트를 정의할 수 있습니다. AWS IoT Greengrass 코어 소프트웨어는 구성 요소를 배포할 때 AWS 클라우드에서 구성 요소의 아티팩트를 다운로드합니다. 코어 디바이스 역할에서는 기본적으로 S3 버킷에 대한 액세스를 허용하지 않습니다. S3 버킷의 아티팩트를 정의하는 사용자 지정 구성 요소를 배포하려면 코어 디바이스 역할에서 해당 버킷에서 아티팩트를 다운로드할 수 있는 권한을 부여해야 합니다. 자세한 내용은 구성 요소 아티팩트에 대한 S3 버킷 액세스 허용 섹션을 참조하세요.