

# AWS IoT Core for LoRaWAN에서 디바이스 관리
<a name="lorawan-manage-end-devices"></a>

다음은 AWS IoT Core for LoRaWAN에서 디바이스를 사용할 때 고려해야 할 몇 가지 중요한 사항입니다. AWS IoT Core for LoRaWAN에 디바이스 추가 방법에 대한 자세한 내용은 [AWS IoT Core for LoRaWAN에 디바이스 온보딩](lorawan-onboard-end-devices.md) 섹션을 참조하세요.

## 디바이스 고려 사항
<a name="lorawan-devices-criteria"></a>

AWS IoT Core for LoRaWAN과 통신하기 위해 사용하려는 디바이스를 선택할 때 다음을 고려하세요.
+ 사용 가능한 센서
+ 배터리 용량
+ 에너지 소비
+ 비용
+ 안테나 유형 및 전송 범위

## AWS IoT Core for LoRaWAN에 적합한 게이트웨이가 있는 디바이스 사용
<a name="lorawan-devices-qualified-gateways"></a>

사용하는 디바이스를 AWS IoT Core for LoRaWAN과 함께 사용할 수 있는 무선 게이트웨이와 페어링할 수 있습니다. [AWS 파트너 디바이스 카탈로그](https://devices.amazonaws.com/search?page=1&sv=iotclorawan)에서 이러한 게이트웨이 및 개발자 키트를 찾을 수 있습니다. 또한 게이트웨이와 이러한 디바이스의 근접성을 고려하는 것이 좋습니다. 자세한 내용은 [AWS 파트너 디바이스 카탈로그에서 정규화된 게이트웨이 사용](lorawan-manage-gateways.md#lorawan-qualified-gateways) 단원을 참조하십시오.

## LoRaWAN 버전
<a name="lorawan-lorawan-version"></a>

AWS IoT Core for LoRaWAN은 LoRa Alliance에 의해 표준화된 1.0.x 또는 1.1 LoRaWAN 사양을 준수하는 모든 디바이스를 지원합니다.

## 활성화 모드
<a name="lorawan-activation-modes"></a>

LoRaWAN 디바이스에서 업링크 데이터를 전송하기 전에 *활성화* 또는 *조인* 프로시저라는 프로세스를 완료해야 합니다. 디바이스를 활성화하려면 OTAA(무선 업데이트 활성화) 또는 ABP(개인 설정으로 활성화)를 사용할 수 있습니다. 각 활성화에 대해 새 세션 키가 생성되므로 OTAA를 사용하여 디바이스를 활성화하는 것이 좋습니다.

무선 디바이스 사양은 각 활성화에 대해 생성된 루트 키와 세션 키를 결정하는 LoRaWAN 버전 및 활성화 모드를 기반으로 합니다. 자세한 내용은 [콘솔을 사용하여 AWS IoT Core for LoRaWAN에 무선 디바이스 사양 추가](lorawan-end-devices-add.md#lorawan-end-device-spec-console) 단원을 참조하십시오.

## 디바이스 클래스
<a name="lorawan-device-classes"></a>

LoRaWAN 디바이스는 언제든지 업링크 메시지를 전송할 수 있습니다. 다운링크 메시지를 수신 대기하면 배터리 용량을 소모하고 배터리 지속 시간을 줄입니다. LoRaWAN 프로토콜은 세 가지 클래스의 LoRaWAN 디바이스를 지정합니다.
+ 클래스 A 디바이스는 대부분의 시간을 절전 모드로 전환하고 짧은 시간 동안만 다운링크 메시지를 수신 대기합니다. 이 디바이스는 대부분 배터리 수명이 최대 10년인 배터리 전원 센서입니다.
+ 클래스 B 디바이스는 예약된 다운링크 슬롯에서 메시지를 수신할 수 있습니다. 이러한 디바이스는 대부분 배터리 전원 액추에이터입니다.
+ Class C 디바이스는 휴면 상태가 아니어서 계속 메시지 수신 대기하기 때문에 메시지 수신에 많은 지연이 없습니다. 이 디바이스는 대부분 주전원에 연결된 액추에이터입니다.

이러한 무선 디바이스 고려 사항에 대한 자세한 내용은 [LoRaWAN에 대해 자세히 알아보기](what-is-lorawan.md#lorawan-learn-more)에 언급된 리소스를 참조하세요.

**Topics**
+ [디바이스 고려 사항](#lorawan-devices-criteria)
+ [AWS IoT Core for LoRaWAN에 적합한 게이트웨이가 있는 디바이스 사용](#lorawan-devices-qualified-gateways)
+ [LoRaWAN 버전](#lorawan-lorawan-version)
+ [활성화 모드](#lorawan-activation-modes)
+ [디바이스 클래스](#lorawan-device-classes)
+ [AWS IoT Core for LoRaWAN을 사용하여 적응형 데이터 속도(ADR) 수행](iot-lorawan-adr.md)
+ [LoRaWAN 디바이스와 AWS IoT 간의 통신 관리](lorawan-device-cloud-communication.md)
+ [퍼블릭 LoRaWAN 디바이스 네트워크에서 LoRaWAN 트래픽 관리(Everynet)](iot-lorawan-roaming.md)

# AWS IoT Core for LoRaWAN을 사용하여 적응형 데이터 속도(ADR) 수행
<a name="iot-lorawan-adr"></a>

엔드 디바이스의 메시지가 게이트웨이에서 수신되도록 하면서 디바이스 전송 전력 소비를 최적화하기 위해 AWS IoT Core for LoRaWAN은 적응형 데이터 속도를 사용합니다. 적응형 데이터 속도는 게이트웨이에서 수신되는 패킷의 오류율을 줄이면서 데이터 속도, 전송 전력 및 재전송 횟수를 최적화하도록 최종 디바이스에 지시합니다. 예를 들어, 엔드 디바이스가 게이트웨이 근처에 있는 경우 적응형 데이터 속도는 전송 전력을 줄이고 데이터 전송 속도를 높입니다.

**Topics**
+ [적응형 데이터 속도(ADR) 작동 방식](#iot-lorawan-adr-algorithm)
+ [데이터 속도 제한(CLI) 구성](#iot-lorawan-adr-use)

## 적응형 데이터 속도(ADR) 작동 방식
<a name="iot-lorawan-adr-algorithm"></a>

ADR을 활성화하려면 디바이스가 프레임 헤더에 ADR 비트를 설정해야 합니다. ADR 비트가 설정되면 AWS IoT Core for LoRaWAN은 `LinkADRReq` MAC 명령을 보내고 디바이스는 ADR 명령의 ACK 상태가 포함된 `LinkADRAns` 명령으로 응답합니다. 디바이스가 ADR 명령을 ACK로 전송하면 AWS IoT Core for LoRaWAN의 ADR 지침에 따라 최적의 데이터 속도를 위해 전송 파라미터 값을 조정합니다.

AWS IoT Core for LoRaWAN ADR 알고리즘은 업링크 메타데이터 기록의 SINR 정보를 사용하여 기기에 사용할 최적의 전송 전력과 데이터 속도를 결정합니다. 알고리즘은 프레임 헤더에 ADR 비트가 설정되면 시작되는 가장 최근의 업링크 메시지 20개를 사용합니다. 재전송 횟수를 결정하기 위해 총 손실된 패킷 수의 백분율인 패킷 오류율(PER)을 사용합니다. 이 알고리즘을 사용하면 데이터 속도 범위, 즉 데이터 속도의 최소 및 최대 제한만 제어할 수 있습니다.

## 데이터 속도 제한(CLI) 구성
<a name="iot-lorawan-adr-use"></a>

기본적으로 AWS IoT Core for LoRaWAN은 LoRaWAN 디바이스의 프레임 헤더에 ADR 비트를 설정할 때 ADR을 수행합니다. AWS IoT 무선 API 작업 [https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_CreateServiceProfile.html](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_CreateServiceProfile.html) 또는 AWS CLI 명령 [https://docs.aws.amazon.com/cli/latest/reference/create-service-profile.html](https://docs.aws.amazon.com/cli/latest/reference/create-service-profile.html)을 사용하여 LoRaWAN 디바이스에 대한 서비스 프로필을 생성할 때 데이터 속도의 최소 및 최대 제한을 제어할 수 있습니다.

**참고**  
AWS Management Console에서 서비스 프로필을 생성할 때는 최대 및 최소 데이터 속도 제한을 지정할 수 없습니다. AWS IoT 무선 API 또는 AWS CLI로만 지정할 수 있습니다.

데이터 속도의 최소 및 최대 제한을 지정하려면 `CreateServiceProfile` API 작업과 함께 `DrMin` 및 `DrMax` 파라미터를 사용하세요. 기본 최소 및 최대 데이터 속도 제한은 0과 15입니다. 예를 들어, 다음 CLI 명령은 최소 데이터 속도 제한을 3으로 설정하고 최대 제한은 12로 설정합니다.

```
aws iotwireless create-service-profile \ 
    --lorawan DrMin=3,DrMax=12
```

이 명령을 실행하면 서비스 프로필의 ID와 Amazon 리소스 이름(ARN)이 생성됩니다.

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

AWS IoT 무선 API 작업 [https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_GetServiceProfile.html](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_GetServiceProfile.html) 또는 AWS CLI 명령 [https://docs.aws.amazon.com/cli/latest/reference/get-service-profile.html](https://docs.aws.amazon.com/cli/latest/reference/get-service-profile.html)를 사용하여 지정된 파라미터 값을 가져올 수 있습니다.

```
aws iotwireless get-service-profile --id "12345678-a1b2-3c45-67d8-e90fa1b2c34d"
```

이 명령을 실행하면 서비스 프로필 파라미터의 값이 생성됩니다.

```
{
    "Arn": "arn:aws:iotwireless:us-east-1:651419225604:ServiceProfile/12345678-a1b2-3c45-67d8-e90fa1b2c34d",
    "Id": "12345678-a1b2-3c45-67d8-e90fa1b2c34d",
    "LoRaWAN": {
        "UlRate": 60,
        "UlBucketSize": 4096,
        "DlRate": 60,
        "DlBucketSize": 4096,
        "AddGwMetadata": false,
        "DevStatusReqFreq": 24,
        "ReportDevStatusBattery": false,
        "ReportDevStatusMargin": false,
        "DrMin": 3,
        "DrMax": 12,
        "PrAllowed": false,
        "HrAllowed": false,
        "RaAllowed": false,
        "NwkGeoLoc": false,
        "TargetPer": 5,
        "MinGwDiversity": 1
    }
}
```

프로필을 여러 개 만든 경우 API 작업 [https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_ListServiceProfiles.html](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_ListServiceProfiles.html) 또는 AWS CLI 명령 [https://docs.aws.amazon.com/cli/latest/reference/list-service-profiles.html](https://docs.aws.amazon.com/cli/latest/reference/list-service-profiles.html)를 사용하여 AWS 계정의 서비스 프로필을 나열한 다음 `GetServiceProfile` API 또는 `get-service-profile` CLI 명령을 사용하여 데이터 속도 제한을 사용자 지정한 서비스 프로필을 검색할 수 있습니다.

# LoRaWAN 디바이스와 AWS IoT 간의 통신 관리
<a name="lorawan-device-cloud-communication"></a>

LoRaWAN 디바이스를 AWS IoT Core for LoRaWAN에 연결한 후에는 디바이스가 클라우드로 메시지 전송을 시작할 수 있습니다. 업링크 메시지는 디바이스에서 전송하고 AWS IoT Core for LoRaWAN에서 수신하는 메시지입니다. LoRaWAN 디바이스는 언제든지 업링크 메시지를 전송할 수 있으며, 이 메시지는 다른 AWS 서비스 및 클라우드 호스팅 애플리케이션으로 전달됩니다. AWS IoT Core for LoRaWAN과 기타 AWS 서비스 및 애플리케이션에서 디바이스로 전송한 메시지를 다운링크 메시지라고 합니다.

다음은 디바이스와 클라우드 간에 전송되는 업링크 및 다운링크 메시지를 보고 관리하는 방법을 보여줍니다. 다운링크 메시지의 대기열을 유지하고 이러한 메시지를 대기열에 추가된 순서대로 디바이스로 전송할 수 있습니다.

**Topics**
+ [LoRaWAN 디바이스에서 전송된 업링크 메시지 형식 보기](lorawan-uplink-metadata-format.md)
+ [대기열에 LoRaWAN 장치로 전송할 다운링크 메시지 추가](lorawan-downlink-queue.md)

# LoRaWAN 디바이스에서 전송된 업링크 메시지 형식 보기
<a name="lorawan-uplink-metadata-format"></a>

LoRaWAN 디바이스를 AWS IoT Core for LoRaWAN에 연결했으면 무선 디바이스에서 수신할 업링크 메시지의 형식을 확인할 수 있습니다.

## 업링크 메시지를 관찰하기 전에
<a name="lorawan-uplink-metadata-prerequisites"></a>

데이터를 송수신할 수 있도록 무선 디바이스를 온보딩하고 디바이스를 AWS IoT에 연결해야 합니다. 디바이스를 AWS IoT Core for LoRaWAN에 온보딩하는 방법에 대한 자세한 내용은 [AWS IoT Core for LoRaWAN에 디바이스 온보딩](lorawan-onboard-end-devices.md) 섹션을 참조하세요.

## 업링크 메시지에는 무엇이 포함되어 있습니까?
<a name="lorawan-uplink-metadata-contains"></a>

LoRaWAN 게이트웨이를 사용하여 LoRaWAN 디바이스를 AWS IoT Core for LoRaWAN에 연결합니다. 디바이스에서 받는 업링크 메시지에는 다음 정보가 포함됩니다.
+ 무선 디바이스에서 전송되는 암호화된 페이로드 메시지에 해당하는 페이로드 데이터.
+ 다음을 포함하는 무선 메타데이터:
  + 디바이스 정보(예: DeveUI, 데이터 속도 및 디바이스가 작동 중인 주파수 채널).
  + 디바이스에 연결된 게이트웨이에 대한 선택적 추가 파라미터 및 게이트웨이 정보. 게이트웨이 파라미터에는 게이트웨이의 EUI, SNR 및 RSSI가 포함됩니다.

  무선 메타데이터를 사용하여 무선 디바이스에 대한 유용한 정보와 디바이스와 AWS IoT 간에 전송되는 데이터를 얻을 수 있습니다. 예를 들어, `AckedMessageId` 파라미터를 사용하여 마지막으로 확인된 다운링크 메시지가 디바이스에서 수신되었는지 여부를 확인할 수 있습니다. 필요에 따라, 게이트웨이 정보를 포함하도록 선택한 경우 디바이스에 더 가까운 더 강력한 게이트웨이 채널로 전환할지 여부를 식별할 수 있습니다.

## 업링크 메시지를 관찰하는 방법?
<a name="lorawan-uplink-metadata-observe"></a>

디바이스를 온보딩한 후 AWS IoT 콘솔의 **테스트** 페이지에서 [MQTT 테스트 클라이언트](https://console.aws.amazon.com/iot/home#/test)를 사용하여 대상을 생성할 때 지정한 주제를 구독할 수 있습니다. 디바이스가 연결되어 페이로드 데이터 전송을 시작하면 메시지가 표시되기 시작합니다.

이 다이어그램은 AWS IoT Core for LoRaWAN에 연결된 LoRaWAN 시스템의 핵심 요소를 식별하며 기본 데이터 영역과 시스템을 통해 데이터가 흐르는 방식을 보여줍니다.

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


무선 디바이스가 업링크 데이터 전송을 시작하면 AWS IoT Core for LoRaWAN은 무선 메타데이터 정보를 페이로드로 래핑한 다음 이를 AWS 애플리케이션으로 전송합니다.

## 업링크 메시지 예제
<a name="lorawan-uplink-metadata-example"></a>

다음 예제에서는 디바이스에서 받은 업링크 메시지의 형식을 보여 줍니다.

```
{
    "WirelessDeviceId": "5b58245e-146c-4c30-9703-0ca942e3ff35", 
    "PayloadData": "Cc48AAAAAAAAAAA=",    
    "WirelessMetadata":
    {
        "LoRaWAN":
        {
            "ADR": false,
            "Bandwidth": 125,
            "ClassB": false,
            "CodeRate": "4/5",
            "DataRate": "0",
            "DevAddr": "00b96cd4",
            "DevEui": "58a0cb000202c99",            
            "FOptLen": 2,
            "FCnt": 1,
            "Fport": 136,   
            "Frequency": "868100000",     
            "Gateways": [
             {
                    "GatewayEui": "80029cfffe5cf1cc",      
                    "Snr": -29,
                    "Rssi": 9.75
             }
             ],  
            "MIC": "7255cb07",  
            "MType": "UnconfirmedDataUp",
            "Major": "LoRaWANR1",
            "Modulation": "LORA", 
            "PolarizationInversion": false,    
            "SpreadingFactor": 12,                         
            "Timestamp": "2021-05-03T03:24:29Z"
            
        }
    }
}
```

### 업링크 메타데이터에서 게이트웨이 메타데이터 제외
<a name="lorawan-uplink-metadata-example2"></a>

업링크 메타데이터에서 게이트웨이 메타데이터 정보를 제외하려면 서비스 프로파일을 만들 때 **AddGwMetadata** 파라미터를 비활성화합니다. 파라미터를 비활성화하는 방법에 대한 자세한 내용은 [서비스 프로파일 추가](lorawan-define-profiles.md#lorawan-service-profiles)을(를) 참조하세요.

이 경우 다음 예제와 같이 업링크 메타데이터에 `Gateways` 섹션이 표시되지 않습니다.

```
{  
    "WirelessDeviceId": "0d9a439b-e77a-4573-a791-49d5c0f4db95",
    "PayloadData": "AAAAAAAA//8=",
    "WirelessMetadata": {
        "LoRaWAN": {
            "ClassB": false,
            "CodeRate": "4/5",
            "DataRate": "1",
            "DevAddr": "01920f27",
            "DevEui": "ffffff10000163b0",
            "FCnt": 1,
            "FPort": 5,
            "Timestamp": "2021-04-29T05:19:43.646Z"
    }
  }
}
```

# 대기열에 LoRaWAN 장치로 전송할 다운링크 메시지 추가
<a name="lorawan-downlink-queue"></a>

클라우드 호스팅 애플리케이션 및 기타 AWS 서비스는 무선 디바이스로 다운링크 메시지를 전송할 수 있습니다. 다운링크 메시지는 AWS IoT Core for LoRaWAN에서 무선 디바이스로 전송한 메시지입니다. AWS IoT Core for LoRaWAN에 온보딩한 각 디바이스에 대해 다운링크 메시지를 예약하고 전송할 수 있습니다.

다운링크 메시지를 전송하려는 디바이스가 여러 개인 경우 멀티캐스트 그룹을 사용할 수 있습니다. 멀티캐스트 그룹의 디바이스는 동일한 멀티캐스트 주소를 공유하며, 이 주소는 전체 수신자 디바이스 그룹에 배포됩니다. 자세한 내용은 [멀티캐스트 그룹을 생성하여 여러 디바이스로 다운링크 페이로드를 전송합니다.](lorawan-multicast-groups.md) 단원을 참조하십시오.

## 다운링크 메시지 대기열 작동 방식
<a name="lorawan-how-downlink-works"></a>

LoRaWAN 디바이스의 디바이스 클래스에 따라 대기열에 있는 메시지가 디바이스로 전송되는 방식이 결정됩니다. 클래스 A 디바이스는 AWS IoT Core for LoRaWAN에 업링크 메시지를 전송하여 디바이스가 다운링크 메시지를 수신할 수 있음을 나타냅니다. 클래스 B 디바이스는 일반 다운링크 슬롯에서 메시지를 수신할 수 있습니다. 클래스 C 디바이스는 언제라도 다운링크 메시지를 수신할 수 있습니다. 디바이스 클래스에 대한 자세한 내용은 [디바이스 클래스](lorawan-manage-end-devices.md#lorawan-device-classes) 섹션을 참조하세요.

다음은 메시지가 대기열에 추가되고 클래스 A 디바이스로 전송되는 방법을 보여줍니다.

1. AWS IoT Core for LoRaWAN은 대기열에 추가된 다운링크 메시지를 AWS IoT 콘솔 또는AWS IoT 무선 API를 사용하여 지정한 프레임 포트, 페이로드 데이터 및 승인 모드 파라미터와 함께 버퍼링합니다.

1. LoRaWAN 디바이스는 업링크 메시지를 전송하여 현재 온라인 상태이고 다운링크 메시지 수신을 시작할 수 있음을 나타냅니다.

1. 대기열에 다운링크 메시지를 두 개 이상 추가한 경우 AWS IoT Core for LoRaWAN은 승인(ACK) 플래그가 설정된 상태로 대기열의 첫 번째 다운링크 메시지를 디바이스로 전송합니다.

1. 디바이스는 업링크 메시지를 즉시 AWS IoT Core for LoRaWAN으로 전송하거나 다음 업링크 메시지가 나타날 때까지 대기하며, 메시지에 ACK 플래그를 포함시킵니다.

1. AWS IoT Core for LoRaWAN에서 ACK 플래그가 있는 업링크 메시지를 수신하면 대기열에서 다운링크 메시지를 삭제하여 디바이스가 다운링크 메시지를 성공적으로 수신했음을 나타냅니다. 세 번 확인한 후에도 업링크 메시지에 ACK 플래그가 없다면 메시지가 폐기됩니다.

## 콘솔을 사용하여 다운링크 대기열 작업 수행
<a name="lorawan-downlink-queue-console"></a>

AWS Management Console을 사용하여 다운링크 메시지를 대기열에 추가하고 필요에 따라 개별 메시지 또는 전체 대기열을 지울 수 있습니다. 클래스 A 디바이스의 경우 디바이스에서 업링크를 수신하여 온라인 상태임을 나타내면 대기열에 있는 메시지가 해당 디바이스로 전송됩니다. 메시지가 전송되면 대기열에서 자동으로 지워집니다.

**대기열에 다운링크 메시지 추가**  
다운링크 메시지 대기열을 생성하려면

1. [AWS IoT 콘솔의 디바이스 허브](https://console.aws.amazon.com/iot/home#/wireless/devices)로 이동하여 다운링크 메시지를 대기열에 추가할 디바이스를 선택합니다.

1. 디바이스 세부 정보 페이지의 **다운링크 메시지(Downlink messages)** 섹션에서 **대기열에 다운링크 메시지 추가(Queue downlink messages)**를 선택합니다.

1. 다음과 같은 파라미터를 지정하여 다운링크 메시지를 구성합니다.
   + **FPort**: 디바이스가 AWS IoT Core for LoRaWAN과 통신할 프레임 포트를 선택합니다.
   + **페이로드(Payload)**: 디바이스로 전송하려는 페이로드 메시지를 지정합니다. 최대 페이로드 크기는 242바이트입니다. 적응형 데이터 속도(ADR)를 활성화한 경우 AWS IoT Core for LoRaWAN은 이 기능을 사용하여 페이로드 크기에 맞는 최적의 데이터 속도를 선택합니다. 필요에 따라 데이터 속도를 추가로 최적화할 수 있습니다.
   + **승인 모드(Acknowledge mode)**: 디바이스에서 다운링크 메시지를 수신했는지 여부를 확인합니다. 메시지에 이 모드가 필요한 경우 데이터 스트림에 ACK 플래그가 있는 업링크 메시지가 표시되고 메시지가 대기열에서 지워집니다.

1. 다운링크 메시지를 대기열에 추가하려면 **제출(Submit)**을 선택합니다.

이제 다운링크 메시지가 대기열에 추가되었습니다. 메시지가 표시되지 않거나 오류가 발생하는 경우 [다운링크 메시지 대기열 오류 문제 해결](#lorawan-downlink-queue-troubleshoot)에 설명된 대로 오류를 해결할 수 있습니다.

**참고**  
다운링크 메시지가 대기열에 추가된 후에는 더 이상 **FPort**, **페이로드(Payload)** 및 **승인 모드(Acknowledge mode)** 파라미터를 편집할 수 없습니다. 이러한 파라미터에 다른 값을 사용하여 다운링크 메시지를 전송하려면 이 메시지를 삭제하고 업데이트된 파라미터 값으로 새 다운링크 메시지를 대기열에 추가할 수 있습니다.

대기열에는 추가한 다운링크 메시지가 나열됩니다. 디바이스와 AWS IoT Core for LoRaWAN 간에 교환되는 업링크 및 다운링크 메시지의 페이로드를 보려면 네트워크 분석기를 사용할 수 있습니다. 자세한 내용은 [네트워크 분석기를 사용하여 무선 리소스 플릿 실시간 모니터링](network-analyzer-overview.md) 단원을 참조하십시오.

**다운링크 메시지 대기열 나열**  
생성한 다운링크 메시지가 대기열에 추가됩니다. 각 후속 다운링크 메시지는 대기열에서 이 메시지 다음에 추가됩니다. 디바이스 세부 정보 페이지의 **다운링크 메시지(Downlink messages)** 섹션에서 다운링크 메시지 목록을 볼 수 있습니다. 업링크가 수신되면 메시지가 디바이스로 전송됩니다. 디바이스에서 다운링크 메시지를 수신하면 메시지가 대기열에서 제거됩니다. 이제 다음 번 메시지가 대기열에서 위로 이동하여 디바이스로 전송됩니다.

**개별 다운링크 메시지 삭제 또는 전체 대기열 지우기**  
각 다운링크 메시지는 디바이스로 전송된 후 대기열에서 자동으로 지워집니다. 또한 개별 메시지를 삭제하거나 전체 다운링크 대기열을 지울 수 있습니다. 이러한 작업은 실행 취소할 수 없습니다.
+ 대기열에 전송하지 않으려는 메시지가 있는 경우 메시지를 선택하고 **삭제(Delete)**를 선택합니다.
+ 대기열에서 디바이스로 메시지를 전송하지 않으려는 경우 **다운링크 대기열 지우기(Clear downlink queue)**를 선택하여 전체 대기열을 지울 수 있습니다.

## API를 사용하여 다운링크 대기열 작업 수행
<a name="lorawan-downlink-queue-api"></a>

AWS IoT 무선 API를 사용하여 다운링크 메시지를 대기열로 전송하고 필요에 따라 개별 메시지 또는 전체 대기열을 지울 수 있습니다.

**대기열에 다운링크 메시지 추가**  
다운링크 메시지 대기열을 생성하려면 [https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_SendDataToWirelessDevice.html](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_SendDataToWirelessDevice.html) API 작업 또는[cli/latest/reference/iotwireless/send-data-to-wireless-device.html](cli/latest/reference/iotwireless/send-data-to-wireless-device.html) CLI 명령을 사용합니다.

```
aws iotwireless send-data-to-wireless-device \
    --id "11aa5eae-2f56-4b8e-a023-b28d98494e49" \
    --transmit-mode "1" \
    --payload-data "SGVsbG8gVG8gRGV2c2lt" \
    --wireless-metadata LoRaWAN={FPort=1}
```

이 명령을 실행하면 출력에 다운링크 메시지의 `MessageId`가 생성됩니다. 경우에 따라, `MessageId`를 수신하더라도 패킷이 삭제될 수 있습니다. 이 오류를 해결하는 방법에 대한 자세한 내용은 [다운링크 메시지 대기열 오류 문제 해결](#lorawan-downlink-queue-troubleshoot) 섹션을 참조하세요.

```
{
    MessageId: "6011dd36-0043d6eb-0072-0008"
}
```

**대기열에 있는 다운링크 메시지 나열**  
대기열에 있는 모든 다운링크 메시지를 나열하려면 [https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_ListQueuedMessages.html](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_ListQueuedMessages.html) API 작업 또는[https://docs.aws.amazon.com/cli/latest/reference/iotwireless/list-queued-messages.html](https://docs.aws.amazon.com/cli/latest/reference/iotwireless/list-queued-messages.html) CLI 명령을 사용합니다.

```
aws iotwireless list-queued-messages
```

기본적으로 이 명령을 실행하면 최대 10개의 다운링크 메시지가 표시됩니다.

**개별 다운링크 메시지 제거 또는 전체 대기열 지우기**  
대기열에서 개별 메시지를 제거하거나 전체 대기열을 지우려면 [https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_DeleteQueuedMessages.html](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_DeleteQueuedMessages.html) API 작업 또는 [https://docs.aws.amazon.com/cli/latest/reference/iotwireless/delete-queued-messages.html](https://docs.aws.amazon.com/cli/latest/reference/iotwireless/delete-queued-messages.html) CLI 명령을 사용합니다.
+ 개별 메시지를 제거하려면 `wirelessDeviceId`로 지정된 무선 디바이스에서 제거하려는 메시지의 `messageID`를 제공합니다.
+ 전체 다운링크 대기열을 지우려면 `wirelessDeviceId`로 지정된 무선 디바이스에 대해 `messageID`를 `*`로 지정합니다.

## 다운링크 메시지 대기열 오류 문제 해결
<a name="lorawan-downlink-queue-troubleshoot"></a>

다음은 예상한 결과가 표시되지 않는 경우에 확인해야 할 몇 가지 사항입니다.
+ 

**AWS IoT 콘솔에 다운링크 메시지가 표시되지 않음**  
[콘솔을 사용하여 다운링크 대기열 작업 수행](#lorawan-downlink-queue-console)에 설명된 대로 메시지를 추가했지만 대기열에 다운링크 메시지가 표시되지 않는 경우 사용 중인 디바이스가 *활성화* 또는 *조인 절차*라는 프로세스를 완료하지 않았기 때문일 수 있습니다. 이 절차는 디바이스가 AWS IoT Core for LoRaWAN에 온보딩할 때 완료됩니다. 자세한 내용은 [콘솔을 사용하여 AWS IoT Core for LoRaWAN에 무선 디바이스 사양 추가](lorawan-end-devices-add.md#lorawan-end-device-spec-console) 단원을 참조하십시오.

  디바이스를 AWS IoT Core for LoRaWAN에 온보딩한 후 네트워크 분석기나 Amazon CloudWatch를 통해 디바이스를 모니터링하여 조인 및 리조인이 성공했는지 여부를 확인할 수 있습니다. 자세한 내용은 [모니터링 도구](monitoring-cloudwatch.md#monitoring-tools) 단원을 참조하십시오.
+ 

**API 사용 시 다운링크 메시지 패킷이 누락됨**  
`SendDataToWirelessDevice` API 작업을 사용할 때 API는 고유한 `MessageId`를 반환합니다. 그러나 이것만으로는 LoRaWAN 디바이스가 다운링크 메시지를 수신했는지 여부는 확인할 수 없습니다. 예를 들어, 디바이스가 조인 절차를 완료하지 않은 경우 다운링크 패킷이 삭제될 수 있습니다. 이 오류를 해결하는 방법에 대한 자세한 내용은 이전 섹션을 참조하세요.
+ 

**다운링크 메시지를 전송할 때 ARN 누락 오류**  
대기열에서 디바이스로 다운링크 메시지를 전송할 때 Amazon 리소스 이름(ARN) 누락 오류가 나타날 수 있습니다. 이 오류는 다운링크 메시지를 수신하는 디바이스에 대해 대상이 올바르게 지정되지 않았기 때문에 발생할 수 있습니다. 이 오류를 해결하려면 디바이스에 대한 대상 세부 정보를 확인합니다.

# 퍼블릭 LoRaWAN 디바이스 네트워크에서 LoRaWAN 트래픽 관리(Everynet)
<a name="iot-lorawan-roaming"></a>

공개적으로 사용 가능한 LoRaWAN 네트워크를 사용하여 몇 분 만에 LoRaWAN 디바이스를 클라우드에 연결할 수 있습니다. AWS IoT Core for LoRaWAN은 이제 미국과 영국에서 Everynet의 네트워크 커버리지를 지원합니다. 퍼블릭 네트워크를 사용할 경우 매월 디바이스마다 퍼블릭 네트워크 연결 요금이 부과됩니다. 요금은 퍼블릭 네트워크 연결이 제공되는 모든 AWS 리전에 적용됩니다. 이 기능의 요금에 대한 자세한 내용은 [AWS IoT Core 요금 페이지](https://aws.amazon.com/iot-core/pricing/)를 참조하세요.

**중요**  
퍼블릭 네트워크는 Everynet에서 직접 운영하고 서비스로 제공됩니다. 이 기능을 사용하기 전에 해당 [AWS 서비스 약관](https://aws.amazon.com/service-terms/)을 확인하세요. 또한 AWS IoT Core for LoRaWAN을 통해 퍼블릭 네트워크를 사용하는 경우 특정 LoRaWAN 디바이스 정보(예: `DevEUI` 및 `JoinEUI`)는 AWS IoT Core for LoRaWAN을 사용할 수 있는 리전 간에 복제됩니다.

AWS IoT Core for LoRaWAN은 [LoRaWAN 백엔드 인터페이스 1.0 사양](https://lora-alliance.org/wp-content/uploads/2020/11/lorawantm-backend-interfaces-v1.0.pdf)에 설명된 대로 LoRa Alliance 사양에 따라 퍼블릭 LoRaWAN 네트워크를 지원합니다. 퍼블릭 네트워크 기능을 사용하여 홈 네트워크 외부의 최종 디바이스를 연결할 수 있습니다. 이 기능을 지원하기 위해 AWS IoT Core for LoRaWAN은 Everynet과 협력하여 확장된 무선 커버리지를 제공합니다.

## 퍼블릭 LoRaWAN 네트워크 사용의 이점
<a name="lorawan-roaming-benefits"></a>

LoRaWAN 디바이스는 퍼블릭 네트워크를 사용하여 클라우드에 연결할 수 있으므로 배포 시간이 단축되고 프라이빗 LoRaWAN 네트워크를 유지 관리하는 데 필요한 시간과 비용이 절약됩니다.

퍼블릭 LoRaWAN 네트워크를 사용하면 커버리지 확장, 무선 네트워크 없이 코어 실행, 커버리지 밀도화와 같은 이점을 누릴 수 있습니다. 이 기능을 사용하여 다음을 수행할 수 있습니다.
+ [퍼블릭 LoRaWAN 네트워크 지원 아키텍처](lorawan-roaming-works.md#lorawan-roaming-architecture) 섹션에 표시된 그림의 **디바이스 A와 같이 디바이스가 홈 네트워크 외부로 이동할 때 해당 디바이스에 커버리지를 제공합니다.
+ [퍼블릭 LoRaWAN 네트워크 지원 아키텍처](lorawan-roaming-works.md#lorawan-roaming-architecture) 섹션에 표시된 그림의 ** 디바이스 B와 같이 연결할 LoRa 게이트웨이가 없는 디바이스에 커버리지를 확장합니다. 그러면 디바이스는 파트너가 제공한 게이트웨이를 사용하여 홈 네트워크에 연결할 수 있습니다.

LoRaWAN 디바이스는 퍼블릭 네트워크를 사용하여 로밍 기능을 사용하는 클라우드에 연결할 수 있으므로 배포 시간이 단축되고 프라이빗 LoRaWAN 네트워크를 유지 관리하는 데 필요한 시간과 비용이 절약됩니다.

다음 섹션에서는 퍼블릭 네트워크 지원 아키텍처, 퍼블릭 LoRaWAN 네트워크 지원의 작동 방식 및 이 기능을 사용하는 방법에 대해 설명합니다.

**Topics**
+ [퍼블릭 LoRaWAN 네트워크 사용의 이점](#lorawan-roaming-benefits)
+ [LoRaWAN 퍼블릭 네트워크 지원 작동 방식](lorawan-roaming-works.md)
+ [퍼블릭 네트워크 지원 사용 방법](lorawan-roaming-use.md)

# LoRaWAN 퍼블릭 네트워크 지원 작동 방식
<a name="lorawan-roaming-works"></a>

AWS IoT Core for LoRaWAN은 LoRa Alliance 사양에 따라 패시브 로밍 기능을 지원합니다. 패시브 로밍을 사용하면 엔드 디바이스에 로밍 프로세스가 완전히 투명하게 진행됩니다. 홈 네트워크 외부에서 로밍하는 엔드 디바이스는 네트워크의 게이트웨이에 연결하고 애플리케이션 서버를 사용하여 업링크 및 다운링크 데이터를 교환할 수 있습니다. 디바이스는 전체 로밍 프로세스 동안 홈 네트워크에 연결된 상태를 유지합니다.

**참고**  
AWS IoT Core for LoRaWAN은 패시브 로밍의 스테이트리스 기능만 지원합니다. 핸드오버 로밍은 지원되지 않습니다. 핸드오버 로밍에서는 디바이스가 홈 네트워크 외부로 이동할 때 다른 이동 통신사로 전환됩니다.

**Topics**
+ [퍼블릭 LoRaWAN 네트워크 개념](#lorawan-roaming-concepts)
+ [퍼블릭 LoRaWAN 네트워크 지원 아키텍처](#lorawan-roaming-architecture)

## 퍼블릭 LoRaWAN 네트워크 개념
<a name="lorawan-roaming-concepts"></a>

AWS IoT Core for LoRaWAN에서 지원되는 퍼블릭 네트워크 기능은 다음과 같은 개념을 사용합니다.

**LoRaWAN network server(LNS)**  
LNS는 온프레미스에서 실행되거나 클라우드 기반 서비스로 사용될 수 있는 독립 실행형 프라이빗 서버입니다. AWS IoT Core for LoRaWAN은 클라우드에서 서비스를 제공하는 LNS입니다.

**홈 네트워크 서버(hNS)**  
홈 네트워크는 디바이스가 속한 네트워크입니다. 홈 네트워크 서버(hNS)는 AWS IoT Core for LoRaWAN이 디바이스의 프로비저닝 데이터(예: `DevEUI`, `AppEUI`, 세션 키)를 저장하는 LNS입니다.

**방문 네트워크 서버(vNS)**  
방문 네트워크는 디바이스가 홈 네트워크를 벗어날 때 디바이스에 커버리지를 제공하는 네트워크입니다. 방문 네트워크 서버(vNS)는 엔드 디바이스에 서비스를 제공할 수 있도록 hNS와 비즈니스 및 기술 계약을 체결한 LNS입니다. AWS 파트너인 Everynet은 커버리지를 제공하는 방문 네트워크 역할을 합니다.

**서빙 네트워크 서버(sNS)**  
서빙 네트워크 서버(sNS)는 디바이스의 MAC 명령을 처리하는 LNS입니다. 하나의 LoRa 세션에는 sNS가 하나만 있을 수 있습니다.

**전달 네트워크 서버(fNS)**  
전달 네트워크 서버(fNS)는 무선 게이트웨이를 관리하는 LNS입니다. 하나의 LoRa 세션에 0개 이상의 fNS가 사용될 수 있습니다. 이 네트워크 서버는 디바이스로부터 수신한 데이터 패킷을 홈 네트워크로 전달하는 작업을 관리합니다.

## 퍼블릭 LoRaWAN 네트워크 지원 아키텍처
<a name="lorawan-roaming-architecture"></a>

다음 아키텍처 다이어그램은 AWS IoT Core for LoRaWAN이 Everynet과 협력하여 퍼블릭 네트워크 연결을 제공하는 방법을 보여줍니다. 이 경우 *디바이스 A*는 LoRa 게이트웨이를 통해 AWS IoT Core for LoRaWAN에서 제공되는 홈 네트워크 서버(hNS)에 연결됩니다. 디바이스 A가 홈 네트워크 밖으로 이동하면 방문 네트워크로 들어가고 Everynet에서 제공하는 방문 네트워크 서버(vNS)에서 커버리지를 제공합니다. vNS는 연결할 LoRa 게이트웨이가 없는 *디바이스 B*까지 커버리지를 확장합니다.

다음 섹션에 설명된 대로 AWS IoT 콘솔에서 퍼블릭 네트워크 커버리지 정보를 볼 수 있습니다.

![\[AWS IoT Core for LoRaWAN이 로밍을 지원하여 홈 네트워크 외부로 이동하는 디바이스를 지원하고 연결할 게이트웨이가 없는 디바이스까지 커버리지를 확장하는 방법을 보여 주는 이미지.\]](http://docs.aws.amazon.com/ko_kr/iot-wireless/latest/developerguide/images/iot-lorawan-roaming-architecture.png)


 AWS IoT Core for LoRaWAN은 [LoRa Alliance LoRaWAN 로밍 허브 기술 권장 사항](https://lora-alliance.org/wp-content/uploads/2022/01/TR010-1.0.0-LoRaWAN-Roaming-Hub.pdf)에 따라 로밍 허브 기능을 사용합니다. 로밍 허브는 Everynet이 엔드 디바이스로부터 수신한 트래픽을 라우팅할 수 있도록 엔드포인트를 제공합니다. 이 경우 Everynet은 디바이스로부터 수신한 트래픽을 전달하는 전달 네트워크 서버(fNS) 역할을 합니다. LoRa Alliance 사양에 정의된 대로 HTTP RESTful API를 사용합니다.

**참고**  
디바이스가 홈 네트워크에서 벗어나 홈 네트워크와 Everynet이 모두 커버리지를 제공할 수 있는 위치에 진입하는 경우, 디바이스는 선착순 정책을 사용하여 LoRa 게이트웨이에 연결할지 아니면 Everynet의 게이트웨이에 연결할지를 결정합니다.

퍼블릭 네트워크를 방문하면 hNS와 서빙 네트워크 서버(sNS)가 분리됩니다. 그런 다음 sNS와 hNS 간에 업링크 및 다운링크 패킷이 교환됩니다.

# 퍼블릭 네트워크 지원 사용 방법
<a name="lorawan-roaming-use"></a>

Everynet의 퍼블릭 네트워크 지원을 활성화하려면 서비스 프로필을 만들 때 특정 로밍 파라미터를 지정합니다. 이번 베타 릴리스에서는 AWS IoT 무선 API 또는 AWS CLI를 사용할 때 이러한 파라미터를 사용할 수 있습니다. 다음 단원에서는 활성화해야 하는 파라미터와 AWS CLI를 사용하여 공용 네트워크를 활성화하는 방법을 보여 줍니다.

**참고**  
새 서비스 프로필을 생성할 때만 퍼블릭 네트워크 지원을 활성화할 수 있습니다. 이러한 파라미터를 사용하여 퍼블릭 네트워크를 활성화하기 위해 기존 프로필을 업데이트할 수는 없습니다.

**Topics**
+ [로밍 파라미터](#lorawan-roaming-parameters)
+ [디바이스에 대한 퍼블릭 네트워크 지원 활성화](#lorawan-roaming-enable)

## 로밍 파라미터
<a name="lorawan-roaming-parameters"></a>

디바이스의 서비스 프로필을 만들 때 다음 파라미터를 지정하세요. AWS IoT 콘솔의 [프로필](https://console.aws.amazon.com/iot/home#/wireless/profiles) 허브에서 서비스 프로필을 추가할 때 또는 AWS IoT 무선 API 작업, [https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_CreateServiceProfile.html](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_CreateServiceProfile.html) 또는 AWS CLI 명령 [https://docs.aws.amazon.com/cli/latest/reference/create-service-profile.html](https://docs.aws.amazon.com/cli/latest/reference/create-service-profile.html)을 사용할 때 이러한 파라미터를 지정합니다.

**참고**  
AWS IoT Core for LoRaWAN은 핸드오버 로밍을 지원하지 않습니다. 서비스 프로필을 만들 때는 핸드오버 로밍 사용 여부를 지정하는 `HrAllowed` 파라미터를 활성화할 수 없습니다.
+ 로밍 활성화 허용(`RaAllowed`): 이 파라미터는 로밍 활성화를 사용할지를 지정합니다. 로밍 활성화를 사용하면 vNS 커버리지 내에서 엔드 디바이스를 활성화할 수 있습니다. 로밍 기능을 사용할 때는 `RaAllowed`를 `true`로 설정해야 합니다.
+ 패시브 로밍 허용(`PrAllowed`): 이 파라미터는 패시브 로밍을 활성화할지를 지정합니다. 로밍 기능을 사용할 때는 `PrAllowed`를 `true`로 설정해야 합니다.

## 디바이스에 대한 퍼블릭 네트워크 지원 활성화
<a name="lorawan-roaming-enable"></a>

디바이스에서 퍼블릭 LoRaWAN 네트워크 지원을 활성화하려면 다음 절차를 실행하세요.

**참고**  
퍼블릭 네트워크 기능은 OTAA 디바이스에만 활성화할 수 있습니다. ABP를 활성화 방법으로 사용하는 디바이스에는 이 기능이 지원되지 않습니다.

1. 

**로밍 파라미터를 포함하여 서비스 프로필 생성**

   로밍 파라미터를 활성화하여 서비스 프로필을 생성합니다.
**참고**  
이 서비스 프로필에 연결할 디바이스에 대한 디바이스 프로필을 생성할 때는 `RxDelay1` 파라미터에 2초 이상의 큰 값을 지정하는 것이 좋습니다.
   + 

**AWS IoT 콘솔 사용**  
AWS IoT 콘솔의 [프로필](https://console.aws.amazon.com/iot/home#/wireless/profiles) 허브로 이동하여 **서비스 프로필 추가**를 선택합니다. 프로필을 만들 때 **퍼블릭 네트워크 활성화**를 선택합니다.
   + 

**AWS IoT 무선 API 사용**  
서비스 프로필을 생성할 때 로밍을 활성화하려면 아래 예와 같이 [CreateServiceProfile](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_CreateServiceProfile.html) API 작업 또는 [https://docs.aws.amazon.com/cli/latest/reference/create-service-profile.html](https://docs.aws.amazon.com/cli/latest/reference/create-service-profile.html) CLI 명령을 사용합니다.

     ```
     aws iotwireless create-service-profile \ 
         --region us-east-1 \
         --name roamingprofile1 \ 
         --lorawan '{"AddGwMetadata":true,"PrAllowed":true,"RaAllowed":true}'
     ```

     이 명령을 실행하면 서비스 프로필의 ARN 및 ID가 출력으로 반환됩니다.

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

1. 

**서비스 프로필에서 로밍 파라미터 확인**

   지정한 로밍 파라미터를 확인하려면 아래 예와 같이 콘솔에서 또는 `get-service-profile` CLI 명령을 사용하여 서비스 프로필을 볼 수 있습니다.
   + 

**AWS IoT 콘솔 사용**  
AWS IoT 콘솔의 [프로필](https://console.aws.amazon.com/iot/home#/wireless/profiles) 허브로 이동하여 생성한 프로필을 선택합니다. 세부 정보 페이지의 **프로필 구성** 탭에서 **RaAllowed** 및 **PrAllowed**가 `true`로 설정된 것을 볼 수 있습니다.
   + 

**AWS IoT 무선 API 사용**  
활성화한 로밍 파라미터를 보려면 아래 예와 같이 [GetServiceProfile](https://docs.aws.amazon.com/iot-wireless/2020-11-22/apireference/API_GetServiceProfile.html) API 작업 또는 [https://docs.aws.amazon.com/cli/latest/reference/get-service-profile.html](https://docs.aws.amazon.com/cli/latest/reference/get-service-profile.html) CLI 명령을 사용합니다.

     ```
     aws iotwireless get-service-profile \ 
         --region us-east-1 \ 
         --id 12345678-a1b2-3c45-67d8-e90fa1b2c34d
     ```

     이 명령을 실행하면 로밍 파라미터 값인 `RaAllowed` 및 `PrAllowed`가 포함된 서비스 프로필 세부 정보가 출력으로 반환됩니다.

     ```
     {
         "Arn": "arn:aws:iotwireless:us-east-1:123456789012:ServiceProfile/12345678-a1b2-3c45-67d8-e90fa1b2c34d",
         "Id": "12345678-a1b2-3c45-67d8-e90fa1b2c34d",
         "Name": "roamingprofile1"
         "LoRaWAN": {
             "UlRate": 60,
             "UlBucketSize": 4096,
             "DlRate": 60,
             "DlBucketSize": 4096,
             "AddGwMetadata": true,
             "DevStatusReqFreq": 24,
             "ReportDevStatusBattery": false,
             "ReportDevStatusMargin": false,
             "DrMin": 0,
             "DrMax": 15,
             "PrAllowed": true,
             "RaAllowed": true,
             "NwkGeoLoc": false,
             "TargetPer": 5,
             "MinGwDiversity": 1
         }
     }
     ```

1. 

**서비스 프로필을 디바이스에 연결**

   로밍 파라미터를 포함하여 생성한 서비스 프로필을 엔드 디바이스에 연결합니다. 디바이스 프로필을 만들고 무선 디바이스의 대상을 추가할 수도 있습니다. 이 대상을 사용하여 디바이스에서 전송되는 업링크 메시지를 라우팅합니다. 디바이스 프로필 및 대상을 만드는 방법에 대한 자세한 내용은 [디바이스 프로파일 추가](lorawan-define-profiles.md#lorawan-device-profiles) 및 [AWS IoT Core for LoRaWAN에 대상 추가](lorawan-create-destinations.md) 섹션을 참조하세요.
   + 

**새 디바이스 온보딩**  
아직 디바이스를 온보딩하지 않은 경우 디바이스를 AWS IoT Core for LoRaWAN에 추가할 때 이 서비스 프로필을 사용하도록 지정합니다. 다음 명령은 생성한 서비스 프로필의 ID를 사용하여 디바이스를 추가할 때 `create-wireless-device` CLI 명령을 사용하는 방법을 보여줍니다. 콘솔을 사용하여 서비스 프로필을 추가하는 방법에 대한 자세한 내용은 [콘솔을 사용하여 AWS IoT Core for LoRaWAN에 무선 디바이스 사양 추가](lorawan-end-devices-add.md#lorawan-end-device-spec-console) 단원을 참조하세요.

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

     다음은 *`createdevice.json`* 파일의 콘텐츠를 보여줍니다.

     **createdevice.json의 내용**

     ```
     {
         "Name": "DeviceA",  
         "Type": LoRaWAN,
         "DestinationName": "RoamingDestination1",
         "LoRaWAN": {
             "DeviceProfileId": "ab0c23d3-b001-45ef-6a01-2bc3de4f5333",
             "ServiceProfileId": "12345678-a1b2-3c45-67d8-e90fa1b2c34d",
             "OtaaV1_1": {
                 "AppKey": "3f4ca100e2fc675ea123f4eb12c4a012",
                 "JoinEui": "b4c231a359bc2e3d",
                 "NwkKey": "01c3f004a2d6efffe32c4eda14bcd2b4"
             },
             "DevEui": "ac12efc654d23fc2"
         },
     }
     ```

     이 명령을 실행하여 출력하면 무선 디바이스의 ARN과 ID가 출력으로 생성됩니다.

     ```
     {
         "Arn": "arn:aws:iotwireless:us-east-1:123456789012:WirelessDevice/1ffd32c8-8130-4194-96df-622f072a315f",
         "Id": "1ffd32c8-8130-4194-96df-622f072a315f"
     }
     ```
   + 

**기존 디바이스 업데이트**  
디바이스를 이미 온보딩한 경우 이 서비스 프로필을 사용하도록 기존 무선 디바이스를 업데이트할 수 있습니다. 다음 명령은 생성한 서비스 프로필의 ID를 사용하여 디바이스를 업데이트할 때 `update-wireless-device` CLI 명령을 사용하는 방법을 보여줍니다.

     ```
     aws iotwireless update-wireless-device \
         --id "1ffd32c8-8130-4194-96df-622f072a315f" \
         --service-profile-id "12345678-a1b2-3c45-67d8-e90fa1b2c34d" \ 
         --description "Using roaming service profile A"
     ```

     이 명령은 출력을 생성하지 않습니다. `GetWirelessDevice` API 또는 `get-wireless-device` CLI 명령을 사용하여 업데이트된 정보를 가져올 수 있습니다.

1. 

**Everynet을 사용하여 디바이스를 클라우드에 연결**

   로밍이 활성화되었으므로 이제 디바이스에서 조인을 수행해야 새로운 `DevAddr`을 얻을 수 있습니다. OTAA를 사용하면 LoRaWAN 디바이스가 조인 요청을 전송하고 네트워크 서버에서 요청을 허용할 수 있습니다. 그러면 Everynet에서 제공하는 네트워크 커버리지를 사용하여 AWS 클라우드에 연결할 수 있습니다. 활성화 절차를 수행하거나 디바이스를 조인하는 방법에 대한 지침은 디바이스 설명서를 참조하세요.
**참고**  
OTAA를 활성화 방법으로 사용하는 디바이스의 경우에만 로밍 기능을 활성화하고 퍼블릭 네트워크에 연결할 수 있습니다. ABP 디바이스는 지원되지 않습니다. 활성화 절차를 수행하거나 디바이스를 조인하는 방법에 대한 지침은 디바이스 설명서를 참조하세요. [활성화 모드](lorawan-manage-end-devices.md#lorawan-activation-modes) 섹션을 참조하세요.
디바이스의 로밍 기능을 비활성화하려면 이 서비스 프로필에서 디바이스를 분리한 다음 로밍 파라미터가 `false`로 설정된 다른 서비스 프로필에 연결할 수 있습니다. 이 서비스 프로필로 전환한 후에는 디바이스가 퍼블릭 네트워크에서 계속 실행되지 않도록 또 다른 조인을 수행해야 합니다.

1. 

**업링크 및 다운링크 메시지 교환**

   디바이스가 AWS IoT Core for LoRaWAN에 조인되면 디바이스와 클라우드 간에 메시지 교환을 시작할 수 있습니다.
   + 

**업링크 메시지 보기**  
디바이스에서 업링크 메시지를 보내는 경우 AWS IoT Core for LoRaWAN은 이전에 구성된 대상을 사용하여 이 메시지를 AWS 계정에 전송합니다. 이러한 메시지는 Everynet 네트워크를 통해 디바이스에서 클라우드로 전송됩니다.

     AWS IoT 규칙 이름을 사용하여 메시지를 보거나 MQTT 클라이언트를 사용하여 대상을 만들 때 지정한 MQTT 주제를 구독할 수 있습니다. 지정하는 규칙 이름 및 기타 대상 세부 정보에 대한 자세한 내용은 [콘솔을 사용하여 대상 추가](lorawan-create-destinations.md#lorawan-create-destination-console) 섹션을 참조하세요.

     업링크 메시지 및 형식 보기에 대한 자세한 정보는 [LoRaWAN 디바이스에서 전송된 업링크 메시지 형식 보기](lorawan-uplink-metadata-format.md) 섹션을 참조하세요.
   + 

**다운링크 메시지 전송**  
콘솔에서 또는 AWS IoT 무선 API 명령 `SendDataToWirelessDevice` 또는 AWS CLI 명령 `send-data-to-wireless-device`를 사용하여 다운링크 메시지를 대기열에 넣고 디바이스에 전송할 수 있습니다. 다운링크 메시지를 대기열에 넣고 전송하는 방법에 대한 자세한 내용은 [대기열에 LoRaWAN 장치로 전송할 다운링크 메시지 추가](lorawan-downlink-queue.md) 섹션을 참조하세요.

     다음 코드는 `send-data-to-wireless-device` CLI 명령을 사용하여 다운링크 메시지를 보내는 방법의 예를 보여줍니다. 데이터를 수신할 무선 디바이스의 ID, 페이로드, 승인 모드 사용 여부, 무선 메타데이터를 지정합니다.

     ```
     aws iotwireless send-data-to-wireless-device \
         --id "1ffd32c8-8130-4194-96df-622f072a315f" \
         --transmit-mode "1" \
         --payload-data "SGVsbG8gVG8gRGV2c2lt" \
         --wireless-metadata LoRaWAN={FPort=1}
     ```

     이 명령을 실행하면 출력에 다운링크 메시지의 `MessageId`가 생성됩니다.
**참고**  
경우에 따라, `MessageId`를 수신하더라도 패킷이 삭제될 수 있습니다. 이러한 시나리오의 문제 해결에 대한 자세한 내용은 [다운링크 메시지 대기열 오류 문제 해결](lorawan-downlink-queue.md#lorawan-downlink-queue-troubleshoot) 섹션을 참조하세요.

     ```
     {
         MessageId: "6011dd36-0043d6eb-0072-0008"
     }
     ```
   + 

**커버리지 정보 보기**  
퍼블릭 네트워크를 활성화한 후 AWS IoT 콘솔에서 네트워크 커버리지 정보를 볼 수 있습니다. AWS IoT 콘솔의 [https://console.aws.amazon.com/iot/home#/wireless/network-coverage](https://console.aws.amazon.com/iot/home#/wireless/network-coverage) 허브로 이동한 다음 위치를 검색하면 지도에서 디바이스의 커버리지 정보를 확인할 수 있습니다.
**참고**  
이 기능은 Amazon Location Service를 사용하여 디바이스의 커버리지 정보를 Amazon Location 지도에 표시합니다. Amazon Location 지도를 사용하기 전에 Amazon Location Service 이용 약관을 검토하세요. AWS는 사용자가 선택한 타사 데이터 공급자에게 사용자의 API 쿼리를 전송할 수 있으며, 이 타사 데이터 공급자는 현재 사용자가 사용하는 AWS 리전 외부에 있을 수도 있습니다. 자세한 내용은 [AWS서비스 약관](https://aws.amazon.com/service-terms)을 참조하세요.