

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

# AWS IoT Greengrass 코어 소프트웨어(OTA) 업데이트
<a name="update-greengrass-core-v2"></a>

AWS IoT Greengrass 코어 소프트웨어는 [Greengrass nucleus 구성 요소](greengrass-nucleus-component.md)와 소프트웨어의 무선 업데이트(OTA)를 수행하기 위해 디바이스에 배포할 수 있는 기타 구성 요소(선택 사항)로 구성되어 있습니다. 이 기능은 AWS IoT Greengrass 코어 소프트웨어에 내장되어 있습니다.

OTA 업데이트를 통해 다음을 보다 효율적으로 수행할 수 있습니다.
+ 보안 취약성을 수정합니다.
+ 소프트웨어 안정성 문제를 해결합니다.
+ 새 기능 또는 향상된 기능을 배포합니다.

**Topics**
+ [요구 사항](#ota-update-requirements)
+ [코어 디바이스에 대한 고려 사항](#ota-update-considerations)
+ [Greengrass nucleus 업데이트 동작](#ota-update-behavior-nucleus)
+ [OTA 업데이트를 수행합니다.](#create-ota-update)

## 요구 사항
<a name="ota-update-requirements"></a>

AWS IoT Greengrass 코어 소프트웨어의 OTA 업데이트를 배포하려면 다음과 같은 요구 사항이 적용됩니다.
+ 배포를 수신하려면 Greengrass 코어 디바이스가 AWS 클라우드에 연결되어 있어야 합니다.
+ Greengrass 코어 디바이스는 AWS IoT Core 및 AWS IoT Greengrass를 사용하여 인증을 위한 인증서 및 키로 올바르게 구성되고 프로비저닝되어야 합니다.
+ AWS IoT Greengrass 코어 소프트웨어는 시스템 서비스로 설정하고 실행해야 합니다. JAR 파일(`Greengrass.jar`)에서 nucleus를 실행하는 경우에는 OTA 업데이트가 작동하지 않습니다. 자세한 내용은 [Greengrass nucleus를 시스템 서비스로 구성](configure-greengrass-core-v2.md#configure-system-service) 섹션을 참조하세요.

## 코어 디바이스에 대한 고려 사항
<a name="ota-update-considerations"></a>

OTA 업데이트를 수행하기 전에 업데이트하는 코어 디바이스와 연결된 클라이언트 디바이스에 미치는 영향에 유의하세요.
+ Greengrass nucleus가 종료됩니다.
+ 코어 디바이스에서 실행되는 모든 구성 요소도 종료됩니다. 해당 구성 요소가 로컬 리소스에 쓰는 경우에 제대로 종료하지 않으면 해당 리소스가 잘못된 상태로 남을 수 있습니다. 구성 요소는 [프로세스 간 통신](interprocess-communication.md)을 사용하여 사용하는 리소스를 정리할 때까지 업데이트를 연기하도록 nucleus 구성 요소에 지시할 수 있습니다.
+ nucleus 구성 요소가 종료되는 동안 코어 디바이스는 AWS 클라우드 및 로컬 디바이스와의 연결이 끊어집니다. 코어 디바이스는 종료된 상태에서는 클라이언트 디바이스의 메시지를 라우팅하지 않습니다.
+ 구성 요소로 실행되는 수명이 긴 Lambda 함수는 동적 상태 정보를 잃고 보류 중인 모든 작업을 삭제합니다.

## Greengrass nucleus 업데이트 동작
<a name="ota-update-behavior-nucleus"></a>

<a name="component-patch-update"></a>구성 요소를 배포할 때 AWS IoT Greengrass는 해당 구성 요소의 모든 종속성에 대해 지원되는 최신 버전을 설치합니다. 이로 인해 사물 그룹에 새 디바이스를 추가하거나 해당 디바이스를 대상으로 하는 배포를 업데이트하면 AWS에서 제공한 퍼블릭 구성 요소의 새 패치 버전이 코어 디바이스에 자동으로 배포될 수 있습니다. Nucleus 업데이트와 같은 일부 자동 업데이트로 인해 디바이스가 예기치 않게 다시 시작될 수 있습니다.

[Greengrass nucleus 구성 요소](greengrass-nucleus-component.md)의 버전이 변경되면 디바이스의 nucleus 및 기타 모든 구성 요소를 포함하는 AWS IoT Greengrass 코어 소프트웨어가 다시 시작되어 변경 사항을 적용합니다. nucleus 구성 요소가 업데이트될 때 [코어 디바이스에 미치는 영향](#ota-update-considerations)으로 인해 새 nucleus 패치 버전이 디바이스에 배포되는 시기를 제어하고 싶을 수 있습니다. 이렇게 하려면 배포에 Greengrass nucleus 구성 요소를 직접 포함해야 합니다. 구성 요소를 직접 포함한다는 것은 배포 구성에 해당 구성 요소의 특정 버전을 포함하고 해당 구성 요소를 디바이스에 배포할 때 구성 요소 종속성에 의존하지 않음을 의미합니다. 구성 요소 레시피에서 종속성을 정의하는 방법에 대한 자세한 내용은 [레시피 형식](component-recipe-reference.md#recipe-format) 섹션을 참조하세요.

다음 표를 검토하여 작업 및 배포 구성에 따른 Greengrass nucleus 구성 요소의 업데이트 동작을 이해합니다.


| Action | 배포 구성 | Nucleus 업데이트 동작 | 
| --- | --- | --- | 
| 배포를 수정하지 않고 기존 배포가 대상으로 하는 사물 그룹에 새 디바이스를 추가합니다. | 배포는 Greengrass nucleus를 직접 포함하지 않습니다.<br />배포는 하나 이상의 AWS 제공 구성 요소를 직접 포함하거나 AWS 제공 구성 요소 또는 Greengrass nucleus에 따라 달라지는 사용자 지정 구성 요소를 포함합니다.<br /> | 새 디바이스에서는 모든 구성 요소 종속성 요구 사항을 충족하는 최신 패치 버전의 nucleus를 설치합니다.<br />기존 디바이스에서는 nucleus의 설치된 버전을 업데이트하지 않습니다. | 
| 배포를 수정하지 않고 기존 배포가 대상으로 하는 사물 그룹에 새 디바이스를 추가합니다. | 배포는 Greengrass nucleus의 특정 버전을 직접 포함합니다. | 새 디바이스에서 지정된 nucleus 버전을 설치합니다.<br />기존 디바이스에서는 nucleus의 설치된 버전을 업데이트하지 않습니다.<br /> | 
| 새 배포를 생성하거나 기존 배포를 수정합니다. | 배포는 Greengrass nucleus를 직접 포함하지 않습니다.<br />배포는 하나 이상의 AWS 제공 구성 요소를 직접 포함하거나 AWS 제공 구성 요소 또는 Greengrass nucleus에 따라 달라지는 사용자 지정 구성 요소를 포함합니다.<br /> | 모든 대상 디바이스에서 대상 사물 그룹에 추가하는 새 디바이스를 포함하여 모든 구성 요소 종속성 요구 사항을 충족하는 nucleus의 최신 패치 버전을 설치합니다. | 
| 새 배포를 생성하거나 기존 배포를 수정합니다. | 배포는 Greengrass nucleus의 특정 버전을 직접 포함합니다. | 모든 대상 디바이스에 대상 사물 그룹에 추가하는 새 디바이스를 포함하여 지정된 nucleus 버전을 설치합니다. | 

## OTA 업데이트를 수행합니다.
<a name="create-ota-update"></a>

OTA 업데이트를 수행하려면 [nucleus 구성 요소](greengrass-nucleus-component.md)와 설치할 버전이 포함된 [배포를 생성](create-deployments.md)합니다.