

# FUOTA 태스크 생성 및 펌웨어 이미지 제공
<a name="lorawan-fuota-create-task"></a>

LoRaWAN 디바이스의 펌웨어를 업데이트하려면 먼저 FUOTA 태스크를 생성하고 업데이트에 사용할 디지털 서명된 펌웨어 이미지를 제공합니다. 그런 다음 디바이스와 멀티캐스트 그룹을 태스크에 추가하고 FUOTA 세션을 예약할 수 있습니다. 세션이 시작되면 AWS IoT Core for LoRaWAN이 조각화 세션을 설정하고 종단 디바이스가 조각을 수집하고 이미지를 재구성하고 새 펌웨어를 적용합니다. FUOTA 프로세스에 대한 자세한 내용은 [FUOTA 프로세스 개요](lorawan-fuota-mc-process.md) 섹션을 참조하세요.

다음은 FUOTA 태스크를 생성하고 S3 버킷에 저장할 펌웨어 이미지 또는 델타 이미지를 업로드하는 방법을 보여줍니다.

## 필수 조건
<a name="lorawan-fuota-task-prereq"></a>

FUOTA를 수행하기 전에 종단 디바이스가 이미지를 적용할 때 이미지의 신뢰성을 확인할 수 있도록 펌웨어 이미지에 디지털 서명을 해야 합니다. 서드 파티 도구를 사용하여 펌웨어 이미지에 대한 디지털 서명을 생성할 수 있습니다. [ARM Mbed GitHub 리포지토리](https://github.com/armmbed/mbed-os-example-lorawan-fuota)에 포함된 것과 같은 디지털 서명 도구를 사용하는 것이 좋습니다. 여기에는 델타 이미지를 생성하고 디바이스에서 해당 이미지를 사용하기 위한 도구도 포함됩니다.

## 콘솔을 사용하여 FUOTA 태스크 생성 및 펌웨어 이미지 업로드
<a name="lorawan-fuota-task-console"></a>

콘솔을 사용하여 FUOTA 태스크를 생성하고 펌웨어 이미지를 업로드하려면 콘솔의 [FUOTA 태스크(FUOTA tasks)](https://console.aws.amazon.com/iot/home#/wireless/fuotaTasks) 탭으로 이동한 다음 **FUOTA 태스크 생성(Create FUOTA task)**을 선택합니다.

1. 

**FUOTA 태스크 생성**

   FUOTA 태스크를 생성하려면 태스크 속성과 태그를 지정합니다.

   1. 

**FUOTA 태스크 속성 지정**  
FUOTA 태스크 속성을 지정하려면 FUOTA 태스크에 대해 다음 정보를 입력합니다.
      + **이름(Name)**: FUOTA 태스크의 고유한 이름을 입력합니다. 이름에는 문자, 숫자, 하이픈 및 밑줄만 포함되어야 합니다. 공백은 포함할 수 없습니다.
      + **설명(Description)**: 멀티캐스트 그룹에 대한 설명(선택 사항)을 제공할 수 있습니다. 설명 필드는 최대 2,048자까지 가능합니다.
      + **RFRegion**: FUOTA 태스크의 주파수 대역을 설정합니다. 주파수 대역은 무선 디바이스 또는 멀티캐스트 그룹을 프로비저닝하는 데 사용한 것과 일치해야 합니다.

   1. 

**FUOTA 태스크 태그**  
선택적으로 모든 키-값 페어를 FUOTA 태스크에 대한 **태그(Tags)**로 제공할 수 있습니다. 태스크 생성을 계속하려면 **다음(Next)**을 선택합니다.

1. 

**펌웨어 이미지 업로드**

   FUOTA 태스크에 추가하는 디바이스의 펌웨어를 업데이트하는 데 사용할 펌웨어 이미지 파일을 선택합니다. 펌웨어 이미지 파일은 S3 버킷에 저장됩니다. 사용자를 대신하여 AWS IoT Core for LoRaWAN에 펌웨어 이미지에 액세스할 수 있는 권한을 제공할 수 있습니다. 펌웨어 업데이트를 수행할 때 신뢰성을 확인할 수 있도록 펌웨어 이미지에 디지털 서명을 하는 것이 좋습니다.

   1. 

**펌웨어 이미지 파일 선택**  
새 펌웨어 이미지 파일을 S3 버킷에 업로드하거나 S3 버킷에 이미 업로드된 기존 이미지를 선택할 수 있습니다.
**참고**  
펌웨어 이미지 파일의 크기는 1MB를 넘지 않아야 합니다. 펌웨어 크기가 클수록 업데이트 프로세스를 완료하는 데 더 오래 걸릴 수 있습니다.
      + 기존 이미지를 사용하려면 **기존 펌웨어 이미지 선택(Select an existing firmware image)**을 선택하고 **S3 찾아보기(Browse S3)**를 선택한 다음 사용할 펌웨어 이미지 파일을 선택합니다.

        AWS IoT Core for LoRaWAN은 S3 버킷에 있는 펌웨어 이미지 파일의 경로인 S3 URL을 채웁니다. 경로의 형식은 `s3://bucket_name/file_name`입니다. [Amazon Simple Storage Service](https://console.aws.amazon.com/s3/) 콘솔에서 파일을 보려면 **보기(View)**를 선택합니다.
      + 새 펌웨어 이미지를 업로드하려면

        1. **새 펌웨어 이미지 업로드**를 선택하고 펌웨어 이미지를 업로드합니다. 이미지 파일은 1MB를 넘지 않아야 합니다.

        1. S3 버킷을 생성하고 펌웨어 이미지 파일을 저장할 **버킷 이름(Bucket name)**을 입력하려면 **S3 버킷 생성(Create S3 bucket)**을 선택합니다.

   1. 

**버킷에 액세스할 수 있는 권한**  
새 서비스 역할을 생성하거나 기존 역할을 선택하여 AWS IoT Core for LoRaWAN이 사용자를 대신하여 S3 버킷의 펌웨어 이미지 파일에 액세스하도록 허용할 수 있습니다. **다음**을 선택합니다.

      새 역할을 생성하려면 역할 이름을 입력하거나 임의의 이름이 자동으로 생성되도록 비워 둘 수 있습니다. S3 버킷에 대한 액세스 권한을 부여하는 정책 권한을 보려면 **정책 권한 보기(View policy permissions)**를 선택합니다.

   S3 버킷을 사용하여 이미지를 저장하고 AWS IoT Core for LoRaWAN에 액세스 권한을 부여하는 방법에 대한 자세한 내용은 [S3 버킷에 펌웨어 파일 업로드 및 IAM 역할 추가](lorawan-upload-firmware-s3bucket.md) 섹션을 참조하세요.

1. 

**검토 및 생성**

   FUOTA 태스크를 생성하려면 지정한 FUOTA 태스크 및 구성 세부 정보를 검토하고 **태스크 생성(Create task)**을 선택합니다.

## API를 사용하여 FUOTA 태스크 생성 및 펌웨어 이미지 업로드
<a name="lorawan-fuota-task-api"></a>

API를 사용하여 FUOTA 태스크를 생성하고 펌웨어 이미지 파일을 지정하려면 [https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_CreateFuotaTask.html](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_CreateFuotaTask.html) API 작업 또는 [https://docs.aws.amazon.com/cli/latest/reference/iotwireless/create-fuota-task.html](https://docs.aws.amazon.com/cli/latest/reference/iotwireless/create-fuota-task.html) CLI 명령을 사용합니다. `input.json` 파일을 `create-fuota-task` 명령에 대한 입력으로 제공할 수 있습니다. API 또는 CLI를 사용할 때 입력으로 제공하는 펌웨어 이미지 파일은 이미 S3 버킷에 업로드되어 있어야 합니다. 또한 S3 버킷의 펌웨어 이미지에 대한 액세스 권한을 AWS IoT Core for LoRaWAN에 부여하는 IAM 역할을 지정합니다.

```
aws iotwireless create-fuota-task \
    --cli-input-json file://input.json
```

여기서 각 항목은 다음과 같습니다.

**input.json 내용**

```
{   
   "Description": "FUOTA task to update firmware of devices in multicast group.",
   "FirmwareUpdateImage": "S3:/firmware_bucket/firmware_image
   "FirmwareUpdateRole": "arn:aws:iam::123456789012:role/service-role/ACF1zBEI"
   "LoRaWAN": { 
      "RfRegion": "US915"
   },
   "Name": "FUOTA_Task_MC"  
}
```

FUOTA 태스크를 생성한 후 다음 API 작업 또는 CLI 명령을 사용하여 FUOTA 태스크에 대한 정보를 업데이트, 삭제 또는 가져올 수 있습니다.
+ [https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_UpdateFuotaTask](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_UpdateFuotaTask) 또는 [https://docs.aws.amazon.com/cli/latest/reference/iotwireless/update-fuota-task.html](https://docs.aws.amazon.com/cli/latest/reference/iotwireless/update-fuota-task.html) 
+ [https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_GetFuotaTask](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_GetFuotaTask) 또는 [https://docs.aws.amazon.com/cli/latest/reference/iotwireless/get-fuota-task.html](https://docs.aws.amazon.com/cli/latest/reference/iotwireless/get-fuota-task.html) 
+ [https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_ListFuotaTasks](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_ListFuotaTasks) 또는 [https://docs.aws.amazon.com/cli/latest/reference/iotwireless/list-fuota-tasks.html](https://docs.aws.amazon.com/cli/latest/reference/iotwireless/list-fuota-tasks.html) 
+ [https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_DeleteFuotaTask](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_DeleteFuotaTask) 또는 [https://docs.aws.amazon.com/cli/latest/reference/iotwireless/delete-fuota-task.html](https://docs.aws.amazon.com/cli/latest/reference/iotwireless/delete-fuota-task.html) 

## 다음 단계
<a name="lorawan-fuota-next-steps"></a>

FUOTA 태스크를 생성하고 펌웨어 이미지를 제공했으므로 이제 펌웨어 업데이트를 위해 작업에 디바이스를 추가할 수 있습니다. 개별 디바이스나 멀티캐스트 그룹을 작업에 추가할 수 있습니다. 자세한 내용은 [FUOTA 태스크에 디바이스 및 멀티캐스트 그룹 추가 및 FUOTA 세션 예약](lorawan-fuota-add-devices.md) 단원을 참조하십시오.