Notice
Recent Posts
Recent Comments
Link
투케이2K
83. (Aws/Amazon) [Aws Iot Core] 원격 작업 무선 업데이트 (OTA) job 개념 학습 및 펌웨어 업데이트 프로세스 정리 본문
Aws (Amazon)
83. (Aws/Amazon) [Aws Iot Core] 원격 작업 무선 업데이트 (OTA) job 개념 학습 및 펌웨어 업데이트 프로세스 정리
투케이2K 2025. 7. 8. 20:17728x90
반응형
[개발 환경 설정]
개발 환경 : Aws / Amazon Web Services

[설명 정리]
// --------------------------------------------------------------------------------------
[개발 및 환경]
// --------------------------------------------------------------------------------------
- 인프라 : Aws / Amazon Web Services
- 기술 구분 : Aws / Iot / OTA / job
- 사전) Aws Iot Core 설명 :
>> AWS IoT 는 IoT 디바이스를 다른 디바이스 및 AWS 클라우드 서비스에 연결하는 클라우드 서비스를 제공합니다.
>> 디바이스가에 연결할 수 있는 경우 AWS IoT는 AWS 가 제공하는 클라우드 서비스에 디바이스를 AWS IoT 연결할 수 있습니다.
>> AWS IoT Core 메시지 브로커는 MQTT 및 MQTT over WSS 프로토콜을 사용하여 메시지를 게시하고 구독하는 디바이스 및 클라이언트를 지원합니다.
- HTTPS 프로토콜을 사용하여 메시지를 게시하는 디바이스와 클라이언트도 지원합니다.
// --------------------------------------------------------------------------------------
// --------------------------------------------------------------------------------------
[설 명]
// --------------------------------------------------------------------------------------
1. AWS 원격 작업 이란 작업자 또는 기술자의 물리적 존재 없이 원격으로 수행할 수 있는 업데이트 작업입니다
>> 무선 업데이트 (OTA) 를 사용하여 수행
2. AWS IoT 작업 서비스는 AWS IoT 에 연결 되는 하나 이상의 디바이스로 전송 된 후 실행 되는 원격 작업 세트를 정의하는데 사용됩니다
>> 주목적 : 소프트웨어 및 펌웨어 업데이트를 디바이스 기기에게 알리는데 사용 (기기에게 작업 문서 전송)
>> 작업 문서 : AWS IoT Job 생성 시 대상이 되는 디바이스로 전송 되는 문서 (펌웨어 다운로드 URL 정보 등 포함)
3. AWS IoT 원격 작업 job 생성 및 디바이스 펌웨어 업데이트 프로세스 정리 :
-----------------------------------------------------------
>> 사전 준비 :
-----------------------------------------------------------
- 디바이스 등록 : AWS IoT Core 에 디바이스 (Thing) 를 등록하고 인증서 및 정책을 설정합니다
# 디바이스 프로비저닝 수행 템플릿 등록 요청 시 Lambda Hook 검증 함수에서 jobs 를 구독하고 publish 할 수 있는 권한을 부여해야함
# 예시 리전 : ap-northeast-1
# 예시 어카운트 ID : 123456789012
# 예시 ThingName : TWOK_0000000001
{
"Version": "2025-07-01",
"Statement": [
{
"Effect": "Allow",
"Action": "iot:Connect",
"Resource": "*"
},
{
"Effect": "Allow",
"Action": [
"iot:Publish",
"iot:Receive"
],
"Resource": [
"arn:aws:iot:ap-northeast-1:123456789012:topic/$aws/things/TWOK_0000000001/shadow/name/*",
"arn:aws:iot:ap-northeast-1:123456789012:topic/$aws/things/TWOK_0000000001/jobs/*"
]
},
{
"Effect": "Allow",
"Action": [
"iot:Subscribe"
],
"Resource": [
"arn:aws:iot:ap-northeast-1:123456789012:topicfilter/$aws/things/TWOK_0000000001/shadow/name/*",
"arn:aws:iot:ap-northeast-1:123456789012:topicfilter/$aws/things/TWOK_0000000001/jobs/*"
]
}
]
}
- 펌웨어 파일 준비 : S3 버킷에 새로운 펌웨어 파일을 업로드합니다
# 디바이스로부터 전달 받은 펌웨어 파일 무결성 검증을 수행할 수 있는 MD5 정보도 같이 전달 받습니다
- 디바이스 측 로직 구현 : 디바이스는 AWS MQTT 를 통해 Job 을 수신하고, S3 에서 펌웨어를 다운로드하여 업데이트하는 로직을 포함해야 합니다
# MQTT를 통해 Job 알림 수신 ($aws/things/thingName/jobs/notify-next)
# Job Document 다운로드 및 파싱
# S3 에서 펌웨어 다운로드 수행
# 펌웨어 검증 및 설치 (MD5 파일 무결성 검증)
# 재부팅 후 상태 보고 ($aws/things/thingName/jobs/jobId/update)
-----------------------------------------------------------
>> Job Document 작성 (특정 기기에게 전송 예제) : 디바이스 기기에서 전달 되는 문서로 펌웨어 파일 다운로드 경로 및 파일 무결성 검증 MD5 등 정보가 포함 됨
-----------------------------------------------------------
{
"operation": "UPDATE",
"description": "Request Update Firmware",
"target": [
{
"deviceThingList": [
"TWOK_0000000001"
],
"version": "1.0.4",
"firmwareUrl": "https://..", ----------> 펌웨어 파일 다운로드 S3 URL 주소
"firmwareFileMd5": "de.." -------------> 펌웨어 파일 무결성 검증 MD5 정보 (사전 디바이스로부터 전달 받고 내려 보낸다 > 기기는 MD5 정보로 파일 무결성 검증)
}
],
"timeoutInSeconds": 60,
"jobExecutionsRolloutConfig": {
"maximumPerMinutes": 10
}
}
-----------------------------------------------------------
>> Job Document 문서를 .json 파일로 저장 한 이후 AWS S3 에 업로드 수행 실시
-----------------------------------------------------------
-----------------------------------------------------------
>> AWS IOT Core 콘솔에서 [원격 작업] > [작업] 생성 수행
-----------------------------------------------------------
- 작업 생성
- 사용자 지정 작업 생성
- 작업 속성 이름 지정 (설명 입력 및 태그는 선택 사항)
- 이작업을 실행할 사물 선택 (특정 사물 Thing 지정)
- 작업 문서에서 파일 선택 > S3 에 올려놓은 Job Document 문서 .json 파일 선택
- 원격 작업 업데이트 수행 게시 publish 수행
# 사전 디바이스 기기에서 펌웨어 업데이트 Job 알림 수신을 구독하고 있어야함
-----------------------------------------------------------
>> 디바이스 기기에서 펌웨어 업데이트 Job 알림 수신 완료 후 펌웨어 업데이트 로직 처리 수행
-----------------------------------------------------------
- MQTT를 통해 Job 알림 수신 ($aws/things/thingName/jobs/notify-next)
- Job Document 다운로드 및 파싱
- S3 에서 펌웨어 다운로드 수행
- 펌웨어 검증 및 설치 (MD5 파일 무결성 검증)
- 재부팅 후 상태 보고 ($aws/things/thingName/jobs/jobId/update)
// --------------------------------------------------------------------------------------
// --------------------------------------------------------------------------------------
[참고 사이트]
// --------------------------------------------------------------------------------------
[Aws Iot Core] Fleet provisioning 플릿 프로비저닝 설명 및 동작 프로세스 정리
https://blog.naver.com/kkh0977/223691943757?trackingCode=blog_bloghome_searchlist
[원격 작업이란 무엇인가요?]
https://docs.aws.amazon.com/ko_kr/iot/latest/developerguide/jobs-what-is-remote-operation.html
[작업 관련 주요 개념 설명]
https://docs.aws.amazon.com/ko_kr/iot/latest/developerguide/key-concepts-jobs.html
[작업 알림]
https://docs.aws.amazon.com/ko_kr/iot/latest/developerguide/jobs-comm-notifications.html
[AWS IoT Device Shadow 섀도우 서비스 설명 정리 - 실시간 디바이스 상태 확인 및 제어]
https://blog.naver.com/kkh0977/223695582654?trackingCode=blog_bloghome_searchlist
[안드로이드 aws shadow mqtt 수행 publish , subscribe 결과 확인 - get, update, delete]
https://blog.naver.com/kkh0977/223560924808?trackingCode=blog_bloghome_searchlist
[Aws 프로비저닝 수행 및 섀도우 Shadow 토픽 Topic 구독 시 와일드 카드 (wild card) 설명 정리]
https://blog.naver.com/kkh0977/223825295723?trackingCode=blog_bloghome_searchlist
// --------------------------------------------------------------------------------------
728x90
반응형
'Aws (Amazon)' 카테고리의 다른 글
Comments
