

# AWS IoT Core for LoRaWAN에 디바이스 온보딩
<a name="lorawan-onboard-end-devices"></a>

게이트웨이를 AWS IoT Core for LoRaWAN에 온보딩하고 연결 상태를 확인한 후 무선 디바이스를 온보딩할 수 있습니다. 게이트웨이를 온보딩하는 방법에 대한 자세한 내용은 [AWS IoT Core for LoRaWAN에 게이트웨이 온보딩](lorawan-onboard-gateways.md) 단원을 참조하세요.

LoRaWAN 디바이스는 LoRaWAN 프로토콜을 사용하여 데이터를 클라우드 호스팅 애플리케이션과 교환합니다. AWS IoT Core for LoRaWAN은 LoRa Alliance에 의해 표준화된 1.0.x 또는 1.1 LoRaWAN 사양을 준수하는 디바이스를 지원합니다.

LoRaWAN 디바이스는 일반적으로 하나 이상의 센서 및 액터를 포함합니다. 디바이스는 LoRaWAN 게이트웨이를 통해 업링크 원격 분석 데이터를 AWS IoT Core for LoRaWAN에 전송합니다. 클라우드 호스팅 애플리케이션은 LoRaWAN 게이트웨이를 통해 LoRaWAN 디바이스로 다운링크 명령을 전송하여 센서를 제어할 수 있습니다.

**무선 디바이스를 온보딩하기 전에**  
무선 디바이스를 AWS IoT Core for LoRaWAN에 온보딩하는 경우 사전에 다음 정보를 준비해야 합니다.
+ 

**LoRaWAN 사양 및 무선 디바이스 구성**  
각 디바이스 고유의 구성 파라미터를 미리 입력할 준비가 되어 있으므로 콘솔에 데이터를 보다 원활하게 입력할 수 있습니다. 입력해야 하는 특정 파라미터는 디바이스에서 사용하는 LoRaWAN 사양에 따라 다릅니다. 사양 및 구성 파라미터의 전체 목록은 각 디바이스의 설명서를 참조하세요.
+ 

**디바이스 이름 및 설명(선택 사항)**  
이러한 선택적 필드의 정보는 무선 시스템의 요소를 구성하고 설명하는 방법에 따라 제공됩니다. 리소스 이름 지정 및 설명에 대한 자세한 내용은 [AWS IoT 무선 리소스 설명](iotwireless-describe-resources.md) 단원을 참조하세요.
+ 

**디바이스 및 서비스 프로파일**  
많은 디바이스에서 공유하고 AWS IoT Core for LoRaWAN에 디바이스 및 서비스 프로파일로서 저장될 수 있는 일부 무선 디바이스 구성 파라미터를 준비합니다. 구성 파라미터는 디바이스 설명서 또는 디바이스 자체에서 찾을 수 있습니다. 디바이스를 추가하기 전에 디바이스의 구성 파라미터와 일치하는 디바이스 프로파일을 식별하거나 필요한 경우 만들어야 합니다. 자세한 내용은 [AWS IoT Core for LoRaWAN에 프로파일 추가](lorawan-define-profiles.md) 단원을 참조하십시오.
+ 

**AWS IoT Core for LoRaWAN 대상**  
각 디바이스는 AWS IoT 및 기타 서비스에 보낼 메시지를 처리할 대상에 할당되어야 합니다. 디바이스 메시지를 처리하고 보내는 AWS IoT 규칙은 디바이스의 메시지 형식에 따라 다릅니다. 디바이스에서 메시지를 처리하고 올바른 서비스로 보내려면 디바이스의 메시지와 함께 사용할 대상을 식별하고 디바이스에 할당합니다.

**Topics**
+ [

# AWS IoT Core for LoRaWAN에 무선 디바이스 추가
](lorawan-end-devices-add.md)
+ [

# AWS IoT Core for LoRaWAN에 프로파일 추가
](lorawan-define-profiles.md)
+ [

# AWS IoT Core for LoRaWAN에 대상 추가
](lorawan-create-destinations.md)
+ [

# LoRaWAN 디바이스 메시지를 처리하는 규칙 만들기
](lorawan-destination-rules.md)
+ [

# LoRaWAN 디바이스를 연결하고 연결 상태를 확인합니다.
](lorawan-device-connection-status.md)

# AWS IoT Core for LoRaWAN에 무선 디바이스 추가
<a name="lorawan-end-devices-add"></a>

무선 디바이스를 처음으로 추가하는 경우 콘솔을 사용하는 것이 좋습니다. AWS IoT 콘솔의 [AWS IoT Core for LoRaWAN](https://console.aws.amazon.com/iot/home#/wireless/landing) **소개(Intro)** 페이지로 이동하여 **시작하기(Get started)**를 선택한 다음 **디바이스 추가(Add device)**를 선택합니다. 디바이스를 이미 추가한 경우 **디바이스 보기**를 선택하여 추가한 게이트웨이를 봅니다. 디바이스를 더 추가하려면 **디바이스 추가**를 선택합니다.

또는 AWS IoT 콘솔의 [디바이스](https://console.aws.amazon.com/iot/home#/wireless/devices) 페이지에서 무선 디바이스를 추가할 수도 있습니다.

## 콘솔을 사용하여 AWS IoT Core for LoRaWAN에 무선 디바이스 사양 추가
<a name="lorawan-end-device-spec-console"></a>

활성화 방법과 LoRaWAN 버전을 기반으로 **무선 디바이스 사양**을 선택합니다. 선택한 데이터는 사용자를 위해 AWS가 소유하고 관리하는 키로 암호화됩니다.

**OTAA 및 ABP 활성화 모드**  
LoRaWAN 디바이스에서 업링크 데이터를 전송하기 전에 *활성화* 또는 *조인 프로시저*라는 프로세스를 완료해야 합니다. 디바이스를 활성화하려면 OTAA(무선 업데이트 활성화) 또는 ABP(개인 설정으로 활성화)를 사용할 수 있습니다.

ABP는 조인 프로시저를 필요로하지 않으며 정적 키를 사용합니다. OTAA를 사용하면 LoRaWAN 디바이스가 조인 요청을 전송하고 네트워크 서버에서 요청을 허용할 수 있습니다. 각 활성화에 대해 새 세션 키가 생성되므로 OTAA를 사용하여 디바이스를 활성화하는 것이 좋습니다.

**LoRaWAN 버전**  
OTAA를 사용하면 LoRaWAN 디바이스와 클라우드 호스팅 애플리케이션이 루트 키를 공유합니다. 이러한 루트 키는 버전 v1.0.x 또는 v1.1을 사용하는지 여부에 따라 다릅니다. v1.0.x에는 루트 키(**AppKey**(애플리케이션 키)가 하나만 있는 반면 v1.1에는 두 개의 루트 키(**AppKey**(애플리케이션 키) 및**NwkKey**(네트워크 키))가 있습니다. 세션 키는 각 활성화에 대한 루트 키를 기반으로 파생됩니다. **NwkKey** 및 **AppKey**는 모두 무선 공급 업체에서 제공한 32자리 16진수 값입니다.

**무선 디바이스 EUI**  
**무선 디바이스 사양**을 선택하면 콘솔에 표시되는 무선 디바이스의 EUI(확장 고유 식별자) 파라미터가 표시됩니다. 이 정보는 디바이스 또는 무선 공급 업체에 대한 설명서에서 찾을 수 있습니다.
+ **DevEUI**: 디바이스에 고유하며 디바이스 레이블 또는 해당 설명서에 있는 16자리 16진수 값입니다.
+ **AppEui**: 조인 서버에 고유하며 디바이스 설명서에서 찾을 수 있는 16자리 16진수 값입니다. LoRaWAN v1.1 버전에서 **AppEui**가 **JoinEui**로 호출됩니다.

고유 식별자, 세션 키 및 루트 키에 대한 자세한 내용은[ LoRa Alliance](https://lora-alliance.org/about-lorawan) 설명서를 참조하세요.

## API를 사용하여 AWS IoT Core for LoRaWAN에 무선 디바이스 사양 추가
<a name="lorawan-end-device-spec-api"></a>

API를 사용하여 무선 디바이스를 추가하는 경우 무선 디바이스를 만들기 전에 먼저 디바이스 프로파일과 서비스 프로파일을 만들어야 합니다. 무선 디바이스를 만들 때 디바이스 프로파일과 서비스 프로파일 ID를 사용합니다. API를 사용해 프로파일을 생성하는 방법에 대한 자세한 내용은 [API를 사용하여 디바이스 프로파일 추가](lorawan-define-profiles.md#lorawan-device-profile-api) 단원을 참조하세요.

다음 목록에서는 서비스 프로파일 추가, 업데이트 또는 삭제와 관련된 작업을 수행하는 API 작업에 대해 설명합니다.

**서비스 프로파일에 대한 AWS IoT 무선 API 작업**
+ [CreateWirelessDevice](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_CreateWirelessDevice.html)
+ [GetWirelessDevice](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_GetWirelessDevice.html)
+ [ListWirelessDevices](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_ListWirelessDevices.html)
+ [ UpdateWirelessDevice](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_UpdateWirelessDevice.html)
+ [DeleteWirelessDevice](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_DeleteWirelessDevice.html)

AWS IoT Core for LoRaWAN 리소스 생성 및 관리에 사용할 수 있는 작업 및 데이터 유형의 전체 목록은 [AWS IoT 무선 API 참조](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/welcome.html)를 참조하세요.

**AWS CLI를 사용하여 무선 디바이스를 생성하는 방법**  
AWS CLI를 사용하여 [create-wireless-device](https://docs.aws.amazon.com/cli/latest/reference/iotwireless/create-device-profile.html) 명령으로 무선 디바이스를 만들 수 있습니다. 다음 예제에서는 input.json 파일을 사용하여 파라미터를 입력하여 무선 디바이스를 만듭니다.

**참고**  
여기에 표시된 CLI 명령에 해당하는 AWS API의 메서드를 사용하여 API로 이 절차를 수행할 수도 있습니다.

**input.json 내용**

```
{
    "Description": "My LoRaWAN wireless device"
    "DestinationName": "IoTWirelessDestination"
    "LoRaWAN": {
        "DeviceProfileId": "ab0c23d3-b001-45ef-6a01-2bc3de4f5333",
        "ServiceProfileId": "fe98dc76-cd12-001e-2d34-5550432da100",
        "OtaaV1_1": {
            "AppKey": "3f4ca100e2fc675ea123f4eb12c4a012",
            "JoinEui": "b4c231a359bc2e3d",
            "NwkKey": "01c3f004a2d6efffe32c4eda14bcd2b4"
        },
        "DevEui": "ac12efc654d23fc2"
    },
    "Name": "SampleIoTWirelessThing"
    "Type": LoRaWAN
}
```

이 파일을 `create-wireless-device` 명령에 대한 입력으로 제공할 수 있습니다.

```
aws iotwireless create-wireless-device \
    --cli-input-json file://input.json
```

사용할 수 있는 CLI에 대한 자세한 내용은 [AWS CLI 참조](https://docs.aws.amazon.com/cli/latest/reference/iotwireless/index.html)를 참조하세요.

# AWS IoT Core for LoRaWAN에 프로파일 추가
<a name="lorawan-define-profiles"></a>

디바이스 및 서비스 프로파일을 정의하여 일반적인 디바이스 구성을 설명할 수 있습니다. 이러한 프로파일은 디바이스를 더 쉽게 추가할 수 있도록 디바이스에서 공유되는 구성 파라미터를 설명합니다. AWS IoT Core for LoRaWAN은 디바이스 프로파일 및 서비스 프로파일을 지원합니다.

 이러한 프로파일에 입력할 구성 파라미터 및 값은 디바이스 제조업체에서 제공합니다.

## 디바이스 프로파일 추가
<a name="lorawan-device-profiles"></a>

디바이스 프로파일은 네트워크 서버가 LoRaWAN 무선 액세스 서비스를 설정하는 데 사용하는 디바이스 기능과 부팅 파라미터를 정의합니다. 여기에는 LoRa 주파수 대역, LoRa 리전 파라미터 버전 및 디바이스의 MAC 버전과 같은 파라미터 선택이 포함됩니다. 다른 주파수 대역에 대한 자세한 내용은 [게이트웨이 및 디바이스 연결을 위한 LoRa 주파수 대역 선택 고려](lorawan-rfregion-permissions.md#lorawan-frequency-bands) 단원을 참조하세요.

### 콘솔을 사용하여 디바이스 프로파일 추가
<a name="lorawan-device-profile-console"></a>

[콘솔을 사용하여 AWS IoT Core for LoRaWAN에 무선 디바이스 사양 추가](lorawan-end-devices-add.md#lorawan-end-device-spec-console)에 설명된 대로 콘솔을 사용하여 무선 디바이스를 추가하는 경우, 무선 디바이스 사양을 추가한 후 디바이스 프로파일을 추가할 수 있습니다. 또는 AWS IoT 콘솔의 [프로파일](https://console.aws.amazon.com/iot/home#/wireless/profiles) 페이지에서 **LoRaWAN** 탭을 통해 무선 디바이스를 추가할 수도 있습니다.

기본 디바이스 프로파일 중에서 선택하거나 새 디바이스 프로파일을 만들 수 있습니다. 기본 디바이스 프로파일을 사용하는 것이 좋습니다. 애플리케이션에서 디바이스 프로파일을 만들어야 하는 경우 **디바이스 프로파일 이름**을 제공하고 디바이스 및 게이트웨이에 사용 중인 **주파수 대역(RFRegion)**를 선택하고 디바이스 설명서에 달리 지정되지 않는 한 다른 설정을 기본값으로 유지합니다.

### API를 사용하여 디바이스 프로파일 추가
<a name="lorawan-device-profile-api"></a>

API를 사용하여 무선 디바이스를 추가하는 경우 무선 디바이스를 만들기 전에 먼저 디바이스 프로파일을 만들어야 합니다.

다음 목록에서는 서비스 프로파일 추가, 업데이트 또는 삭제와 관련된 작업을 수행하는 API 작업에 대해 설명합니다.

**서비스 프로파일에 대한 AWS IoT 무선 API 작업**
+ [CreateDeviceProfile](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_CreateDeviceProfile.html)
+ [GetDeviceProfile](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_GetDeviceProfile.html)
+ [ListDeviceProfiles](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_ListDeviceProfiles.html)
+ [ UpdateDeviceProfile](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_UpdateDeviceProfile.html)
+ [DeleteDeviceProfile](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_DeleteDeviceProfile.html)

AWS IoT Core for LoRaWAN 리소스 생성 및 관리에 사용할 수 있는 작업 및 데이터 유형의 전체 목록은 [AWS IoT 무선 API 참조](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/welcome.html)를 참조하세요.

**AWS CLI를 사용하여 디바이스 프로파일을 생성하는 방법**  
AWS CLI를 사용하여 [create-device-profile](https://docs.aws.amazon.com/cli/latest/reference/iotwireless/create-device-profile.html) 명령으로 무선 프로파일을 만들 수 있습니다. 다음 예제에서는 디바이스 프로파일을 만듭니다.

```
aws iotwireless create-device-profile
```

이 명령을 실행하면 무선 디바이스를 만들 때 사용할 수 있는 ID로 디바이스 프로파일을 자동으로 생성합니다. 이제 다음 API를 사용하여 서비스 프로파일을 만든 다음 디바이스 및 서비스 프로파일을 사용하여 무선 디바이스를 만들 수 있습니다.

```
{
    "Arn": "arn:aws:iotwireless:us-east-1:123456789012:DeviceProfile/12345678-a1b2-3c45-67d8-e90fa1b2c34d",
    "Id": "12345678-a1b2-3c45-67d8-e90fa1b2c34d"
}
```

사용할 수 있는 CLI에 대한 자세한 내용은 [AWS CLI 참조](https://docs.aws.amazon.com/cli/latest/reference/iotwireless/index.html)를 참조하세요.

## 서비스 프로파일 추가
<a name="lorawan-service-profiles"></a>

서비스 프로파일은 디바이스가 애플리케이션 서버와 통신하는 데 필요한 통신 파라미터를 설명합니다.

### 콘솔을 사용하여 서비스 프로파일 추가
<a name="lorawan-service-profile-console"></a>

콘솔을 사용하여 [콘솔을 사용하여 AWS IoT Core for LoRaWAN에 무선 디바이스 사양 추가](lorawan-end-devices-add.md#lorawan-end-device-spec-console)에서 설명된 대로 무선 디바이스를 추가하는 경우 디바이스 프로파일을 추가한 후 서비스 프로파일을 추가할 수 있습니다. 또는 AWS IoT 콘솔의 [프로파일](https://console.aws.amazon.com/iot/home#/wireless/profiles) 페이지에서 **LoRaWAN** 탭을 통해 무선 디바이스를 추가할 수도 있습니다.

각 페이로드에 대한 추가 게이트웨이 메타데이터(예: 데이터 전송을 위한 RSSI 및 SNR)를 수신하도록 **AddGWMetaData** 설정을 활성화된 상태로 유지하는 것이 좋습니다.

### API를 사용하여 서비스 프로파일 추가
<a name="lorawan-service-profile-api"></a>

API를 사용하여 무선 디바이스를 추가하는 경우 무선 디바이스를 만들기 전에 먼저 서비스 프로파일을 만들어야 합니다.

다음 목록에서는 서비스 프로파일 추가, 업데이트 또는 삭제와 관련된 작업을 수행하는 API 작업에 대해 설명합니다.

**서비스 프로파일에 대한 AWS IoT 무선 API 작업**
+ [CreateServiceProfile](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_CreateServiceProfile.html)
+ [GetServiceProfile](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_GetServiceProfile.html)
+ [ListServiceProfiles](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_ListServiceProfiles.html)
+ [ UpdateServiceProfile](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_UpdateServiceProfile.html)
+ [DeleteServiceProfile](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_DeleteServiceProfile.html)

AWS IoT Core for LoRaWAN 리소스 생성 및 관리에 사용할 수 있는 작업 및 데이터 유형의 전체 목록은 [AWS IoT 무선 API 참조](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/welcome.html)를 참조하세요.

**AWS CLI를 사용하여 서비스 프로파일을 만드는 방법**  
AWS CLI를 사용하여 [create-service-profile](https://docs.aws.amazon.com/cli/latest/reference/iotwireless/create-service-profile.html) 명령으로 서비스를 생성할 수 있습니다. 다음 예제에서는 서비스 프로파일을 만듭니다.

```
aws iotwireless create-service-profile
```

이 명령을 실행하면 무선 디바이스를 만들 때 사용할 수 있는 ID로 서비스 프로파일이 자동으로 만들어집니다. 이제 디바이스 및 서비스 프로파일을 사용하여 무선 디바이스를 만들 수 있습니다.

```
{
    "Arn": "arn:aws:iotwireless:us-east-1:123456789012:ServiceProfile/12345678-a1b2-3c45-67d8-e90fa1b2c34d",
    "Id": "12345678-a1b2-3c45-67d8-e90fa1b2c34d"
}
```

# AWS IoT Core for LoRaWAN에 대상 추가
<a name="lorawan-create-destinations"></a>

AWS IoT Core for LoRaWAN 대상은 AWS 서비스에서 사용할 디바이스의 데이터를 처리하는 AWS IoT 규칙을 설명합니다.

대부분의 LoRaWAN 디바이스는 데이터를 AWS 서비스에서 사용되는 형식으로 AWS IoT Core for LoRaWAN에 전송하지 않기 때문에 AWS IoT 규칙이 이를 먼저 처리해야 합니다. AWS IoT 규칙은 디바이스의 데이터를 해석하는 SQL 문과, SQL 문의 결과를 사용할 서비스로 보내는 주제 규칙 작업을 포함합니다.

대상을 처음으로 추가하는 경우 콘솔을 사용하는 것이 좋습니다.

## 콘솔을 사용하여 대상 추가
<a name="lorawan-create-destination-console"></a>

[콘솔을 사용하여 AWS IoT Core for LoRaWAN에 무선 디바이스 사양 추가](lorawan-end-devices-add.md#lorawan-end-device-spec-console)에 설명된 대로 콘솔을 사용하여 무선 디바이스를 추가하는 경우, 앞서 설명한 대로 무선 디바이스 사양 및 프로파일을 AWS IoT Core for LoRaWAN에 이미 추가했다면 다음 단계로 진행하여 대상을 추가할 수 있습니다.

또는 AWS IoT 콘솔의 [대상(Destinations)](https://console.aws.amazon.com/iot/home#/wireless/destinations) 페이지에서 AWS IoT Core for LoRaWAN 대상을 추가할 수도 있습니다.

디바이스의 데이터를 처리하려면, AWS IoT Core for LoRaWAN 대상을 생성할 때 다음 필드를 지정한 다음 **대상 추가**를 선택합니다.
+ 

**대상 세부 사항**  
**대상 이름**을 입력하고 대상의 설명(선택 사항)을 입력합니다.
+ 

**규칙 이름**  
디바이스에서 보낸 메시지를 평가하고 디바이스의 데이터를 처리하도록 구성된 AWS IoT 규칙입니다. 규칙 이름이 대상에 매핑됩니다. 대상은 수신하는 메시지를 처리하기 위한 규칙이 필요합니다. AWS IoT 규칙을 호출하거나 AWS IoT 메시지 브로커에 게시하여 메시지를 처리하도록 선택할 수 있습니다.
  + **규칙 이름 입력(Enter a rule name)**을 선택하는 경우 이름을 입력한 다음 **복사(Copy)**를 선택하여 규칙 이름(AWS IoT 규칙을 생성할 때 입력)을 복사합니다. **규칙 생성**을 선택하여 지금 규칙을 생성하거나, AWS IoT 콘솔의 [규칙](https://console.aws.amazon.com/iot/home#/create/rule) 허브로 이동하여 해당 이름으로 규칙을 생성할 수 있습니다.

    규칙을 입력하고 **고급(Advanced)** 설정을 사용하여 주제 이름을 지정할 수도 있습니다. 주제 이름은 규칙 호출 중에 제공되며 규칙 내에서 `topic` 표현식을 사용하여 액세스됩니다. AWS IoT 규칙에 대한 자세한 내용은 [https://docs.aws.amazon.com/iot/latest/developerguide/iot-rules.html](https://docs.aws.amazon.com/iot/latest/developerguide/iot-rules.html) 섹션을 참조하세요.
  + **AWS IoT 메시지 브로커에 게시**를 선택하는 경우 주제 이름을 입력합니다. 그런 다음 MQTT 주제 이름을 복사하면 여러 구독자가 이 주제를 구독하여 해당 주제에 게시된 메시지를 받을 수 있습니다. 자세한 내용은 [https://docs.aws.amazon.com/iot/latest/developerguide/topics.html](https://docs.aws.amazon.com/iot/latest/developerguide/topics.html) 단원을 참조하십시오.

  대상의 AWS IoT 규칙에 대한 자세한 내용은 [LoRaWAN 디바이스 메시지를 처리하는 규칙 만들기](lorawan-destination-rules.md) 단원을 참조하세요.
+ 

**역할 이름**  
**규칙 이름(Rule name)**에서 명명된 규칙에 액세스할 수 있는 디바이스의 데이터 권한을 부여하는 IAM 역할입니다. 콘솔에서 새 서비스 역할을 생성하거나 기존 서비스 역할을 선택합니다. 새 서비스 역할을 생성하는 경우 역할 이름(예: **IoTWirelessDestinationRole**)을 입력하거나 AWS IoT Core for LoRaWAN이 새 역할 이름을 생성할 수 있도록 비워 둘 수 있습니다. 그러면 AWS IoT Core for LoRaWAN이 사용자를 대신하여 적절한 권한이 있는 IAM 역할을 자동으로 생성합니다.

  IAM 역할에 대한 자세한 내용은 [IAM 역할 사용](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html)을 참조하세요.

## API를 사용하여 대상 추가
<a name="lorawan-create-destination-api"></a>

대신 CLI를 사용하여 대상을 추가하려면 이미 대상에 대한 규칙 및 IAM 역할을 생성했어야 합니다. 역할에서 대상에 필요한 세부 정보에 대한 자세한 내용은 [대상에 대한 IAM 역할 생성](#lorawan-create-destinations-roles) 섹션을 참조하세요.

다음 목록에는 대상 추가, 업데이트 또는 삭제와 관련된 작업을 수행하는 API 작업이 포함되어 있습니다.

**대상에 대한 AWS IoT 무선 API 작업**
+ [CreateDestination](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_CreateDestination.html)
+ [GetDestination](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_GetDestination.html)
+ [ListDestinations](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_ListDestinations.html)
+ [ UpdateDestination](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_UpdateDestination.html)
+ [DeleteDestination](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_DeleteDestination.html)

AWS IoT Core for LoRaWAN 리소스 생성 및 관리에 사용할 수 있는 작업 및 데이터 유형의 전체 목록은 [AWS IoT 무선 API 참조](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/welcome.html)를 참조하세요.

**AWS CLI를 사용하여 대상을 추가하는 방법**  
AWS CLI를 사용하여 [create-destination](https://docs.aws.amazon.com/cli/latest/reference/iotwireless/create-destination.html) 명령으로 대상을 추가할 수 있습니다. 다음 예에서는 `RuleName`을 `expression-type` 파라미터 값으로 사용하여 규칙 이름을 입력하여 대상을 생성하는 방법을 보여줍니다. 메시지 브로커에 게시하거나 구독하기 위한 주제 이름을 지정하려면 `expression-type` 파라미터의 값을 `MqttTopic`으로 변경합니다.

```
aws iotwireless create-destination \
    --name IoTWirelessDestination \
    --expression-type RuleName \
    --expression IoTWirelessRule \
    --role-arn arn:aws:iam::123456789012:role/IoTWirelessDestinationRole
```

이 명령을 실행하면 지정된 대상 이름, 규칙 이름 및 역할 이름을 가진 대상이 만들어집니다. 대상의 규칙 및 역할 이름에 대한 자세한 내용은 [LoRaWAN 디바이스 메시지를 처리하는 규칙 만들기](lorawan-destination-rules.md) 및 [대상에 대한 IAM 역할 생성](#lorawan-create-destinations-roles) 단원을 참조하세요.

사용할 수 있는 CLI에 대한 자세한 내용은 [AWS CLI참조](https://docs.aws.amazon.com/cli/latest/reference/iotwireless/index.html)를 참조하세요.

## 대상에 대한 IAM 역할 생성
<a name="lorawan-create-destinations-roles"></a>

AWS IoT Core for LoRaWAN 대상은 AWS IoT 규칙으로 데이터를 전송하는 데 필요한 권한을 AWS IoT Core for LoRaWAN에 부여하는 IAM 역할이 필요합니다. 이러한 역할이 아직 정의되지 않은 경우 역할 목록에 표시되도록 정의해야 합니다.

콘솔을 사용하여 대상을 추가하면 이 주제의 앞부분에서 설명한 대로 AWS IoT Core for LoRaWAN에서 자동으로 IAM 역할을 생성합니다. API 또는 CLI를 사용하여 대상을 추가하는 경우 대상에 대한 IAM 역할을 생성해야 합니다.

**AWS IoT Core for LoRaWAN 대상 역할에 대한 IAM 정책을 생성하는 방법**

1. [IAM 콘솔의 정책 허브](https://console.aws.amazon.com/iam/home#/policies)를 엽니다.

1. **정책 생성**을 선택한 후 **JSON** 탭을 선택합니다.

1. 편집기에서 편집기의 모든 내용을 삭제하고 이 정책 문서를 붙여 넣습니다.

   ```
   {
       "Version": "2012-10-17",
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "iot:DescribeEndpoint",
                   "iot:Publish"
               ],
               "Resource": "*"
           }
       ]
   }
   ```

1. **정책 검토**를 선택하고 **이름**에 이 정책의 이름을 입력합니다. 다음 절차에서 이 이름을 사용해야 합니다.

   또한 이 정책을 **설명**에 기술할 수도 있습니다(원하는 경우).

1. **정책 생성**을 선택합니다.

**AWS IoT Core for LoRaWAN 대상에 대한 IAM 역할을 생성하는 방법**

1. [IAM 콘솔의 역할 허브](https://console.aws.amazon.com/iam/home#/roles)를 열고 **역할 생성**을 선택합니다.

1. **신뢰할 수 있는 엔터티 유형 선택(Select type of trusted entity)**에서 **다른 AWS 계정**을 선택합니다.

1. **계정 ID**에 AWS 계정 ID를 입력한 후 **다음: 권한**을 선택합니다.

1. 검색 상자에 이전 절차에서 생성한 IAM 정책의 이름을 입력합니다.

1. 검색 결과에서 이전 절차에서 생성한 IAM 정책의 이름을 선택합니다.

1. **Next: Tags(다음: 태그)**를 선택한 후 **Next: Review(다음: 검토)**를 선택합니다.

1. **역할 이름**에 이 역할의 이름을 입력한 후 **역할 생성**을 선택합니다.

1. 확인 메시지에서 생성한 역할의 이름을 선택하여 새 역할을 편집합니다.

1. **요약(Summary)**에서 **신뢰 관계(Trust relationships)** 탭을 선택한 다음 **신뢰 관계 편집(Edit trust relationship)**을 선택합니다.

1. **정책 문서**에서 `Principal` 속성을 다음 예시처럼 변경합니다.

   ```
   "Principal": { 
       "Service": "iotwireless.amazonaws.com" 
   },
   ```

   `Principal` 속성을 변경한 후 전체 정책 문서가 다음 예시와 같은 형식이어야 합니다.

   ```
   {
     "Version": "2012-10-17",
     "Statement": [
       {
         "Effect": "Allow",
         "Principal": {
           "Service": "iotwireless.amazonaws.com"
         },
         "Action": "sts:AssumeRole",
         "Condition": {}
       }
     ]
   }
   ```

1. 변경 사항을 저장하고 종료하려면 **신뢰 정책 업데이트(Update Trust Policy)**를 선택합니다.

이 역할이 정의되어 있으면 AWS IoT Core for LoRaWAN 대상을 구성할 때 역할 목록에서 해당 역할을 찾을 수 있습니다.

# LoRaWAN 디바이스 메시지를 처리하는 규칙 만들기
<a name="lorawan-destination-rules"></a>

AWS IoT 규칙은 디바이스 메시지를 다른 서비스로 보냅니다. AWS IoT 규칙은 또한 LoRaWAN 디바이스에서 받은 이진 메시지를 처리하여 다른 서비스에서 보다 쉽게 사용할 수 있도록 다른 형식으로 메시지를 변환할 수 있습니다.

[AWS IoT Core for LoRaWAN 대상](lorawan-create-destinations.md)은 무선 디바이스를 디바이스의 메시지 데이터를 처리하여 다른 서비스로 보내는 규칙과 연결합니다. 이 규칙은 AWS IoT Core for LoRaWAN이 수신하는 즉시 디바이스의 데이터에 적용됩니다. [AWS IoT Core for LoRaWAN 대상](lorawan-create-destinations.md)은 메시지가 동일한 데이터 형식을 가지며 데이터를 동일한 서비스로 보내는 모든 디바이스에서 공유할 수 있습니다.

## AWS IoT 규칙이 디바이스 메시지를 처리하는 방식
<a name="how-rules-process-message"></a>

AWS IoT 규칙은 데이터를 수신할 서비스, 디바이스의 메시지 데이터 형식 및 서비스에 필요한 데이터 형식에 따라 다릅니다. 일반적으로 이 규칙은 AWS Lambda 함수를 호출하여 디바이스의 메시지 데이터를 서비스에 필요한 형식으로 변환한 다음 결과를 서비스로 보냅니다.

다음 그림에서는 메시지 데이터가 무선 디바이스에서 AWS 서비스로 이동할 때 보호 및 처리되는 방식을 보여줍니다.

![\[AWS IoT Core for LoRaWAN 데이터가 무선 디바이스에서 AWS IoT 및 기타 서비스로 어떻게 전달되는지 보여주는 이미지입니다.\]](http://docs.aws.amazon.com/ko_kr/iot-wireless/latest/developerguide/images/iot-lorawan-data-flow.png)


1. LoRaWAN 무선 디바이스는 전송하기 전에 AES128 CTR 모드를 사용하여 이진 메시지를 암호화합니다.

1. AWS IoT Core for LoRaWAN은 이진 메시지를 복호화하고 복호화된 이진 메시지 페이로드를 base64 문자열로 인코딩합니다.

1. 이에 따라 base64로 인코딩된 메시지는 디바이스에 할당된 대상에 설명되어 있는 AWS IoT 규칙에 JSON 문서로 형식이 지정되지 않은 메시지 페이로드로 전송됩니다.

1. AWS IoT 규칙은 규칙 구성에 설명된 서비스에 메시지 데이터를 보냅니다.

무선 디바이스에서 받은 암호화된 이진 페이로드는 AWS IoT Core for LoRaWAN에 의해 변경 또는 해석되지 않습니다. 보호화된 이진 메시지 페이로드는 base64 문자열로만 인코딩됩니다. 서비스가 이진 메시지 페이로드의 데이터 요소에 액세스하려면 규칙에 의해 호출된 함수에서 페이로드로부터 데이터 요소를 구문 분석해야 합니다. base64로 인코딩된 메시지 페이로드는 ASCII 문자열이므로 나중에 구문 분석할 수 있습니다.

## LoRaWAN 디바이스 규칙 생성
<a name="create-lorawan-rules"></a>

AWS IoT Core for LoRaWAN은 메시지 브로커를 사용할 필요없이 AWS IoT 규칙을 사용하여 디바이스 메시지를 다른 AWS 서비스에 직접 안전하게 전송합니다. 수집 경로에서 메시지 브로커를 제거하면 비용이 절감되고 데이터 흐름이 최적화됩니다.

AWS IoT Core for LoRaWAN 규칙을 통해 디바이스 메시지를 다른 AWS 서비스에 전송하려면 AWS IoT Core for LoRaWAN 대상과, 해당 대상에 할당된 AWS IoT 규칙이 필요합니다. AWS IoT 규칙은 SQL 쿼리 문과 하나 이상의 규칙 작업을 포함해야 합니다.

일반적으로 AWS IoT 규칙 쿼리 문은 다음으로 구성됩니다.
+ 메시지 페이로드에서 데이터를 선택하고 형식을 지정하는 SQL SELECT 절
+ 사용할 메시지를 식별하는 항목 필터(규칙 쿼리 문의 FROM 객체)
+ 작동할 조건을 지정하는 선택적 조건문(SQL WHERE 절)

다음은 규칙 쿼리 문의 예입니다.

```
SELECT temperature FROM iot/topic' WHERE temperature > 50
```

LoRaWAN 디바이스의 페이로드를 처리하는 AWS IoT 규칙을 빌드할 때 규칙 쿼리 객체의 일부로 FROM 절을 지정할 필요가 없습니다. 규칙 쿼리 문에는 SQL SELECT 절이 있어야 하며 선택적으로 WHERE 절을 가질 수 있습니다. 쿼리 문에서 FROM 절을 사용하는 경우 해당 절은 무시됩니다.

다음은 LoraWAN 디바이스에서 페이로드를 처리할 수 있는 규칙 쿼리 문의 예입니다.

```
SELECT WirelessDeviceId, WirelessMetadata.LoRaWAN.FPort as FPort,
       WirelessMetadata.LoRaWAN.DevEui as DevEui, 
       PayloadData
```

이 예제에서 `PayloadData`는 LoRaWAN 디바이스에서 전송한 base64로 인코딩된 이진 페이로드입니다.

다음은 들어오는 페이로드의 이진 디코딩을 수행하여 JSON 등의 다른 형식으로 변환할 수 있는 규칙 쿼리 문 예제입니다.

```
SELECT WirelessDeviceId, WirelessMetadata.LoRaWAN.FPort as FPort,
       WirelessMetadata.LoRaWAN.DevEui as DevEui, 
       aws_lambda("arn:aws:lambda:<region>:<account>:function:<name>",                                       
                  {                                      
                   "PayloadData":PayloadData,                                       
                   "Fport": WirelessMetadata.LoRaWAN.FPort   
                  }) as decodingoutput
```

SELECT 및 WHERE 절을 사용하는 방법에 대한 자세한 내용은 [https://docs.aws.amazon.com/iot/latest/developerguide/iot-sql-reference.html](https://docs.aws.amazon.com/iot/latest/developerguide/iot-sql-reference.html) 단원을 참조하세요.

AWS IoT 규칙과, 이 규칙을 생성 및 사용하는 방법에 대한 자세한 내용은 [https://docs.aws.amazon.com/iot/latest/developerguide/iot-rules.html](https://docs.aws.amazon.com/iot/latest/developerguide/iot-rules.html) 및 [https://docs.aws.amazon.com/iot/latest/developerguide/iot-rules-tutorial.html](https://docs.aws.amazon.com/iot/latest/developerguide/iot-rules-tutorial.html) 단원을 참조하세요.

AWS IoT Core for LoRaWAN 대상의 생성 및 사용에 대한 자세한 내용은 [AWS IoT Core for LoRaWAN에 대상 추가](lorawan-create-destinations.md) 단원을 참조하세요.

규칙에서 이진 메시지 페이로드를 사용하는 방법에 대한 자세한 내용은 [https://docs.aws.amazon.com/iot/latest/developerguide/binary-payloads.html](https://docs.aws.amazon.com/iot/latest/developerguide/binary-payloads.html) 단원을 참조하세요.

메시지 페이로드를 보호하는 데 사용되는 데이터 보안 및 암호화에 대한 자세한 내용은 [AWS IoT Wireless의 데이터 보호](data-protection.md) 단원을 참조하세요.

IoT 규칙에 대한 이진 디코딩 및 구현 예제를 보여 주는 참조 아키텍처는 [GitHub의 AWS IoT Core for LoRaWAN 솔루션 샘플](https://github.com/aws-samples/aws-iot-core-lorawan/tree/main/transform_binary_payload)을 참조하세요.

# LoRaWAN 디바이스를 연결하고 연결 상태를 확인합니다.
<a name="lorawan-device-connection-status"></a>

디바이스 연결 상태를 확인하려면 디바이스를 이미 추가하고 AWS IoT Core for LoRaWAN에 연결되어 있어야 합니다. 디바이스 추가 방법에 대한 자세한 내용은 [AWS IoT Core for LoRaWAN에 무선 디바이스 추가](lorawan-end-devices-add.md) 단원을 참조하세요.

디바이스를 추가한 후 LoRaWAN 디바이스에서 업링크 메시지 전송을 시작하는 방법을 알아보려면 디바이스의 사용 설명서를 참조하세요.

## 콘솔을 사용하여 디바이스 연결 상태 확인
<a name="lorawan-device-connection-status-console"></a>

콘솔을 사용하여 연결 상태를 확인하려면 AWS IoT 콘솔의 [https://console.aws.amazon.com/iot/home#/wireless/devices](https://console.aws.amazon.com/iot/home#/wireless/devices) 페이지로 이동하여 추가한 디바이스를 선택합니다. 무선 디바이스 세부 정보 페이지의 **세부 정보** 섹션에서 마지막 업링크가 수신된 날짜와 시간이 표시됩니다.

## API를 사용하여 디바이스 연결 상태 확인
<a name="lorawan-device-connection-status-api"></a>

API를 사용해 연결 상태를 확인하려면 `GetWirelessDeviceStatistics` API를 사용합니다. 이 API는 요청 본문이 없으며 마지막 업링크가 수신된 시점을 표시하는 응답 본문만 포함합니다.

```
HTTP/1.1 200
Content-type: application/json

{  
  “LastUplinkReceivedAt”: “2021-03-24T23:13:08.476015749Z”,
  "LoRaWAN": {
        "DataRate": 5,
        "DevEui": "647fda0000006420",
        "Frequency": 868100000
        "Gateways": [ 
         { 
            "GatewayEui": "c0ee40ffff29df10",
            "Rssi": -67,
            "Snr": 9.75
         }
      ],
  “WirelessDeviceId”: “30cbdcf3-86de-4291-bfab-5bfa2b12bad5"
}
```

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

이제 디바이스를 연결하고 연결 상태를 확인했으므로 AWS IoT 콘솔의 **테스트** 페이지에 있는 [MQTT 테스트 클라이언트](https://console.aws.amazon.com/iot/home#/test)를 사용하여 디바이스에서 수신한 업링크 메타데이터의 형식을 확인할 수 있습니다. 자세한 내용은 [LoRaWAN 디바이스에서 전송된 업링크 메시지 형식 보기](lorawan-uplink-metadata-format.md) 단원을 참조하십시오.