Amazon Web Services 한국 블로그

Amazon FreeRTOS의 OTA(Over-the-Air) 기능 업데이트

Amazon FreeRTOS는 가정용 기기, 피트니스 트랙커, 산업용 센서, 스마트 계량기, 보안 시스템 등 연결된 디바이스를 구동하는 마이크로 컨트롤러용 운영 체제입니다. 소형의 저전력 디바이스에서 사용하도록 설계된 Amazon FreeRTOS는 라이브러리를 통해 FreeRTOS 커널을 확장하여 AWS IoT Core 같은 클라우드 서비스 및 AWS Greengrass를 실행하는 보다 강력한 엣지 디바이스와 통신할 수 있도록 합니다(자세한 내용은 Amazon FreeRTOS 발표 참조).

충분한 양의 로컬 메모리 및 스토리지가 포함되고 온디맨드로 코드를 로드하고 실행할 수 있는 기능을 제공하는 보다 강력한 범용 컴퓨터와 달리 마이크로 컨트롤러는 공장에서 로드된 후 디바이스 수명 기간 동안 버그 수정 및 새로운 기능으로 때때로 업데이트되는 펌웨어로 구동됩니다. 일부 디바이스는 실행되는 동안 현장에서 업데이트를 받을 수 있지만 연결을 끊고 서비스에서 제거한 다음 수동으로 업데이트해야 하는 디바이스도 있습니다. 이러한 수동 업데이트는 작동 중단을 야기하고 불편하며 비용이 많이 들 뿐 아니라 시간 소모적입니다.

항상 그렇듯이 AWS는 고객에게 더 나은 솔루션을 제공하고자 합니다.

Over-the-Air 업데이트

오늘 Amazon FreeRTOS를 더욱 편리하게 하는 Over-the-Air 업데이트 메커니즘이 추가되었습니다. 이 메커니즘을 사용하면 현장에서 디바이스에 업데이트를 전송할 수 있습니다. 이 새로운 기능에서 가장 중요한 속성은 다음과 같습니다.

보안 – 통합 코드 서명자로 업데이트를 서명하고, TLS 보호 연결을 사용하는 대상 디바이스에 스트리밍한 다음 대상 디바이스에서 업데이트를 확인하여 손상된 업데이트, 무단 업데이트 및 사기성 업데이트로부터 디바이스를 보호합니다.

  • 내결함성 – 업데이트 프로세스는 복원력이 탁월하며, 부분 업데이트의 적용을 처리하여 디바이스를 작동 가능한 상태로 유지할 수 있으므로 업데이트 실패로 인해 디바이스가 “무용지물”이 되는 상황이 방지됩니다.
  • 확장성 – 디바이스 플릿에는 수천 또는 수백만 개의 디바이스가 포함됩니다. 이러한 디바이스 플릿을 AWS IoT Device Management를 통해 업데이트용 그룹으로 분할할 수 있습니다.
  • 효율성 – 마이크로 컨트롤러에는 제한된 양의 RAM(주로 128KB 정도)과 컴퓨팅 파워가 포함됩니다. Amazon FreeRTOS는 이와 같이 부족한 리소스를 최대한 활용하기 위해 업데이트 및 다른 AWS IoT Core 통신에 단일 TLS 연결을 사용하고 경량 MQTT 프로토콜을 사용합니다.

각 디바이스에는 OTA 업데이트 라이브러리가 있어야 합니다. 이 라이브러리에는 업데이트 작업을 수신하고 업데이트 프로세스를 감독하는 에이전트가 포함됩니다.

OTA 작동 방법

디바이스 플릿을 배포하지 않았으므로 이 게시물에서는 주요 내용만 살펴봅니다. 자세한 내용은 OTA 자습서를 참조하십시오.

각 업데이트는 AWS IoT 작업의 형태로 제공됩니다. 작업에는 대상 디바이스 목록(사물 및/또는 사물 그룹)이 지정되고 각 대상에서 수행할 작업을 설명하는 작업 문서가 참조됩니다. 작업 문서에는 업데이트에서 배포할 코드 또는 데이터와 필요한 코드 서명 옵션이 명시되어 있습니다. 코드 서명은 배포된 콘텐츠의 진위를 확인합니다. 사용자는 사전에 콘텐츠를 직접 서명하거나 작업의 일부로 콘텐츠 서명을 요청할 수 있습니다.

작업은 한 번 실행(스냅샷 작업)되거나 대상에서 변경이 검색될 때마다 실행(연속 작업)될 수 있습니다. 연속 작업은 새로운 디바이스가 사물 그룹에 추가될 때 디바이스의 온보딩 또는 업그레이드에 사용될 수 있습니다.

작업이 생성되면 AWS IoT가 MQTT를 통해 OTA 작업 메시지를 게시합니다. OTA 업데이트 라이브러리는 서명된 콘텐츠를 스트리밍 방식으로 다운로드하고, 업데이트를 감독하며, 상태를 다시 AWS IoT에 보고합니다.

사용자는 AWS IoT 콘솔에서 작업을 생성하고 관리할 수 있으며 CLI 및 API를 사용하여 자체 도구를 구축할 수도 있습니다. 콘솔을 열고 [Create a job]을 클릭하여 시작합니다.

[Create OTA update job]을 클릭합니다.

펌웨어 이미지를 선택하고 서명합니다.

사물 또는 사물 그룹을 선택하고, 작업을 시작하고, 상태를 모니터링합니다.

자세한 내용은 자습서를 참조하십시오. 지금 바로 이 새로운 기능을 사용할 수 있으며 오늘부터 사용을 시작할 수 있습니다.

Jeff