

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# Amazon DynamoDB에 속성 값 업데이트 게시
<a name="publish-to-amazon-dynamodb"></a>

이 자습서에서는 [Amazon DynamoDB](https://aws.amazon.com/dynamodb/)를 사용하여 데이터를 저장하는 편리한 방법을 소개하므로 AWS IoT SiteWise API를 반복적으로 쿼리하지 않고도 과거 자산 데이터에 더 쉽게 액세스할 수 있습니다. 이 자습서를 완료하면 전체 풍력 발전소의 풍속 및 방향에 대한 라이브 맵과 같은 자산 데이터를 사용하는 사용자 지정 소프트웨어를 생성할 수 있습니다. 사용자 지정 솔루션을 구현하지 않고 데이터를 모니터링 및 시각화하려는 경우 [를 사용하여 데이터 모니터링 AWS IoT SiteWise Monitor](monitor-data.md) 섹션을 참조하세요.

이 자습서에서는 풍력 발전소에 대한 샘플 데이터 세트를 제공하는 AWS IoT SiteWise 데모를 기반으로 합니다. AWS IoT Core 규칙을 통해 데이터를 생성한 DynamoDB 테이블로 보내도록 풍력 발전소 데모에서 속성 값 업데이트를 구성합니다. 속성 값 업데이트를 활성화하면가 AWS IoT SiteWise MQTT 메시지 AWS IoT Core 의 로 데이터를 전송합니다. 그런 다음 메시지의 내용에 따라 DynamoDB 작업과 같은 작업을 수행하는 AWS IoT 코어 규칙을 정의합니다. 자세한 내용은 [다른 AWS 서비스와 상호 작용](interact-with-other-services.md) 단원을 참조하십시오.

**Topics**
+ [사전 조건](#dynamodb-tutorial-prerequisites)
+ [1단계: 속성 값 업데이트를 게시 AWS IoT SiteWise 하도록 구성](#dynamodb-tutorial-enable-value-notifications)
+ [2단계: AWS IoT 코어에서 규칙 생성](#dynamodb-tutorial-create-iot-rule)
+ [3단계: DynamoDB 규칙 작업 구성](#dynamodb-tutorial-configure-rule-action)
+ [4단계: DynamoDB에서 데이터 탐색](#dynamodb-tutorial-explore-dynamodb-data)
+ [리소스 정리](#dynamodb-tutorial-clean-up-resources)
+ [추가 리소스](#dynamodb-tutorial-additional-resources)

## 사전 조건
<a name="dynamodb-tutorial-prerequisites"></a>

이 자습서를 완료하려면 다음이 필요합니다.
+  AWS 계정. 없으면 [AWS 계정 설정](getting-started.md#set-up-aws-account) 섹션을 참조하세요.
+ 에 액세스하기 위해 Windows, macOS, Linux 또는 Unix를 실행하는 개발 컴퓨터입니다 AWS Management Console. 자세한 내용은 [AWS Management Console이란 무엇인가요?](https://docs.aws.amazon.com/awsconsolehelpdocs/latest/gsg/what-is.html)를 참조하세요.
+ 관리자 권한이 있는 AWS Identity and Access Management (IAM) 사용자. 자세한 지침은 [AWS IoT SiteWise 에서 IAM을 사용하는 방법](security_iam_service-with-iam.md) 섹션을 참조하세요.
+ 실행 중인 AWS IoT SiteWise 데모입니다. 자세한 내용은 [AWS IoT SiteWise 데모 사용](getting-started-demo.md) 단원을 참조하십시오.

**참고**  
이 자습서에서는에서 생성된 리소스를 사용해야 합니다[AWS IoT SiteWise 데모 사용](getting-started-demo.md). 이 자습서를 진행하기 전에 완료해야 합니다.

**중요**  
이 자습서를 완료할 때까지 모든 데모 리소스를 보관합니다. 구성 요소를 삭제하면 데모의 기능이 중단되고 자습서를 완료하는 기능에 영향을 미칠 수 있습니다.

## 1단계: 속성 값 업데이트를 게시 AWS IoT SiteWise 하도록 구성
<a name="dynamodb-tutorial-enable-value-notifications"></a>

이 절차에서는 데모 터빈 자산의 **Wind Speed** 속성에 대한 속성 값 알림을 활성화합니다. 속성 값 알림을 활성화하면는 MQTT 메시지의 각 값 업데이트를 AWS IoT 코어에 AWS IoT SiteWise 게시합니다.

**자산 속성에 대한 속성 값 업데이트 알림 활성화**

1. [AWS IoT SiteWise 콘솔](https://console.aws.amazon.com/iotsitewise/)에 로그인합니다.

1. 가 AWS IoT SiteWise 지원되는 [AWS IoT SiteWise 엔드포인트 및 할당량을](https://docs.aws.amazon.com/general/latest/gr/iot-sitewise.html) 검토하고 필요한 경우 AWS 리전을 전환합니다. AWS IoT SiteWise 데모를 실행하는 리전으로 전환합니다.

1. 왼쪽 탐색 창에서 **자산**을 선택합니다.

1. **Demo Wind Farm Asset** 옆에 있는 화살표를 선택하여 풍력 발전소 자산의 계층 구조를 확장합니다.

1. 데모 터빈을 선택하고 **편집**을 선택합니다.

1. **측정**을 선택합니다.

1. **Wind Speed** 속성의 **MQTT 알림 상태를** **ACTIVE**로 업데이트합니다.

1. 페이지 하단에서 [**Save(저장하기)**]를 선택합니다.

1. 각 데모 터빈 자산에 대해 단계 5\~7을 반복합니다.

1. 데모 터빈(예: **Demo Turbine Asset 1**)을 선택합니다.

1. **측정**을 선택합니다.

1. **Wind Speed** 속성 옆에 있는 복사 아이콘을 선택하여 알림 주제를 클립보드로 복사합니다. 이 자습서의 뒷부분에서 사용하도록 알림 주제를 저장합니다. 하나의 터빈에서만 알림 주제를 기록하면 됩니다.

   알림 주제는 다음 예시와 같은 형식이어야 합니다.

   ```
   $aws/sitewise/asset-models/{{a1b2c3d4-5678-90ab-cdef-11111EXAMPLE}}/assets/{{a1b2c3d4-5678-90ab-cdef-22222EXAMPLE}}/properties/{{a1b2c3d4-5678-90ab-cdef-33333EXAMPLE}}
   ```

## 2단계: AWS IoT 코어에서 규칙 생성
<a name="dynamodb-tutorial-create-iot-rule"></a>

이 단계에서는 속성 값 알림 메시지를 구문 분석하고 Amazon DynamoDB 테이블에 데이터를 삽입하는 규칙을 AWS IoT 코어에서 생성합니다. AWS IoT 코어 규칙은 MQTT 메시지를 구문 분석하고 각 메시지의 내용 및 주제를 기반으로 작업을 수행합니다. 그러고 나서 이 자습서의 일부로 생성한 DynamoDB 테이블에 데이터를 삽입하는 DynamoDB 작업을 사용하여 규칙을 생성합니다.

**DynamoDB 작업을 사용하여 규칙 생성**

1. [AWS IoT 콘솔](https://console.aws.amazon.com/iot/)로 이동합니다.

1. 왼쪽 탐색 창에서 **메시지 라우팅**을 선택한 다음 **규칙을** 선택합니다.

1. **규칙 생성**을 선택합니다.

1. **규칙 속성 지정**에서 규칙의 이름과 설명을 입력합니다.

1. 이 자습서의 앞부분에서 저장한 알림 주제를 찾습니다.

   ```
   $aws/sitewise/asset-models/{{a1b2c3d4-5678-90ab-cdef-11111EXAMPLE}}/assets/{{a1b2c3d4-5678-90ab-cdef-22222EXAMPLE}}/properties/{{a1b2c3d4-5678-90ab-cdef-33333EXAMPLE}}
   ```

   주제의 자산 ID(`assets/` 뒤의 ID)를 `+` 기호로 바꿉니다. 이렇게 하면 모든 데모 풍력 터빈 자산의 풍속 속성이 선택됩니다. `+` 주제 필터는 해당 주제에 포함된 단일 수준의 모든 노드를 수용합니다. 주제는 다음 예시와 같은 형식이어야 합니다.

   ```
   $aws/sitewise/asset-models/{{a1b2c3d4-5678-90ab-cdef-11111EXAMPLE}}/assets/+/properties/{{a1b2c3d4-5678-90ab-cdef-33333EXAMPLE}}
   ```

1. 다음 규칙 쿼리 문을 입력합니다. `FROM` 섹션의 주제를 해당 알림 주제로 바꿉니다.

   ```
   SELECT
     payload.assetId AS asset,
     (SELECT VALUE (value.doubleValue) FROM payload.values) AS windspeed,
     timestamp() AS timestamp
   FROM
     '$aws/sitewise/asset-models/{{a1b2c3d4-5678-90ab-cdef-11111EXAMPLE}}/assets/+/properties/{{a1b2c3d4-5678-90ab-cdef-33333EXAMPLE}}' 
   WHERE
     type = 'PropertyValueUpdate'
   ```

1. **규칙 작업**에서 **작업 1**로 이동합니다.

1. **작업 선택** 페이지에서 **DynamoDBv2**를 선택합니다. 이렇게 하면 메시지가 DynamoDB 테이블의 여러 열로 분할됩니다.

1. **테이블 이름**에서 **새 테이블 생성을** 선택합니다. 규칙 작업에서 풍속 데이터를 수신할 Amazon DynamoDB 테이블을 생성합니다.

1. [DynamoDB 콘솔](https://console.aws.amazon.com/dynamodb/)의 **테이블 이름**에 테이블 이름을 입력합니다.

1. **파티션 키**의 경우 다음을 수행합니다.

   1. 파티션 키로 **timestamp**를 입력합니다.

   1. **번호** 유형을 선택합니다.

   1. **정렬 키 추가** 확인란을 선택합니다.

   1. 정렬 키로 **asset**을 입력하고 기본 정렬 키 유형인 **문자열**을 그대로 둡니다.

1. **테이블 생성**을 선택합니다.

1. **작업 구성** 페이지가 있는 탭으로 돌아갑니다.

1. **규칙 연결 작업** 페이지에서 **테이블 이름** 목록을 새로 고치고 이전 단계에서 생성한 새 DynamoDB 테이블을 선택합니다.

## 3단계: DynamoDB 규칙 작업 구성
<a name="dynamodb-tutorial-configure-rule-action"></a>

이 단계에서는 속성 값 업데이트의 데이터를 새 DynamoDB 테이블에 삽입하도록 Amazon DynamoDB 규칙 작업을 구성합니다.

**DynamoDB 규칙 작업 구성**

1. **역할 생성을** 선택하여 규칙 작업을 수행할 수 있는 AWS IoT 코어 액세스 권한을 부여하는 IAM 역할을 생성합니다.

1. 역할 이름을 입력합니다. 예: `WindSpeedDataRole`. **역할 생성**을 선택합니다.

1. **다음**을 선택합니다.

1. 페이지 하단에서 **생성을** 선택하여 규칙 생성을 완료합니다.

   데모 자산 데이터가 DynamoDB 테이블에 나타나기 시작합니다.

## 4단계: DynamoDB에서 데이터 탐색
<a name="dynamodb-tutorial-explore-dynamodb-data"></a>

이 단계에서는 새 Amazon DynamoDB 테이블에서 데모 자산의 풍속 데이터를 살펴봅니다.

**DynamoDB에서 자산 데이터 탐색**

1. DynamoDB 테이블이 열려 있는 탭으로 돌아갑니다.

1. 이전에 생성한 테이블에서 **테이블 항목 탐색** 탭을 선택하여 테이블의 데이터를 봅니다. 테이블에 행이 표시되지 않으면 페이지를 새로 고칩니다. 몇 분 후에도 행이 나타나지 않는 경우 [규칙 문제 해결(DynamoDB)](troubleshoot-rule.md#dynamodb-tutorial-troubleshoot-rule) 단원을 참조하세요.

1. 테이블의 행에서 편집 아이콘을 선택하여 데이터를 확장합니다.

1. **windspeed** 구조 옆의 화살표를 선택하여 풍속 데이터 포인트 목록을 확장합니다. 각 목록에는 풍력 발전소 데모에서 로 전송 AWS IoT SiteWise 한 바람 속도 데이터 포인트 배치가 반영됩니다. 고유한 용도의 규칙 작업을 설정하는 경우 다른 데이터 형식을 사용할 수 있습니다. 자세한 내용은 [에서 자산 속성 알림 쿼리 AWS IoT SiteWise](query-notification-messages.md) 단원을 참조하십시오.

이제 자습서를 완료했으므로 규칙을 비활성화 또는 삭제하고 DynamoDB 테이블을 삭제하여 추가 요금이 발생하지 않도록 할 수 있습니다. 리소스를 정리하려면 [리소스 정리](#dynamodb-tutorial-clean-up-resources) 섹션을 참조하세요.

또한 사용자 지정 애플리케이션을 생성하여이 데이터를 사용하고 시각화하는 방법을 배울 수 있습니다. AWS IoT SiteWise 데이터 시각화에 대한 안내 자습서는 섹션을 참조하세요[Grafana에서 데이터 시각화 및 공유](visualize-with-grafana.md).

## 리소스 정리
<a name="dynamodb-tutorial-clean-up-resources"></a>

자습서를 완료한 후 추가 요금이 발생하지 않도록 리소스를 정리합니다.

** AWS IoT SiteWise 데모를 삭제하려면**

1. [AWS IoT SiteWise 콘솔](https://console.aws.amazon.com/iotsitewise/)로 이동합니다.

1. 페이지 오른쪽 상단에서 **데모 삭제**를 선택합니다.

1. 확인 대화 상자에 **DELETE**를 입력한 다음 **삭제**를 선택합니다.

자세한 내용은 [AWS IoT SiteWise 데모 삭제](getting-started-demo.md#delete-getting-started-demo) 단원을 참조하십시오.

다음 절차에 따라 속성 값 업데이트 알림을 비활성화하고(데모를 삭제하지 않은 경우), AWS IoT 규칙을 비활성화 또는 삭제하고, DynamoDB 테이블을 삭제합니다.

**자산 속성에 대한 속성 값 업데이트 알림 비활성화**

1. [AWS IoT SiteWise 콘솔](https://console.aws.amazon.com/iotsitewise/)로 이동합니다.

1. 왼쪽 탐색 창에서 **자산**을 선택합니다.

1. **Demo Wind Farm Asset** 옆에 있는 화살표를 선택하여 풍력 발전소 자산의 계층 구조를 확장합니다.

1. 데모 터빈을 선택하고 **편집**을 선택합니다.

1. **Wind Speed** 속성의 **알림 상태를** **비활성**으로 업데이트합니다.

1. 페이지 하단에서 **자산 저장**을 선택합니다.

1. 각 데모 터빈 자산에 대해 4\~6단계를 반복합니다.

**에서 규칙을 비활성화하거나 삭제하려면 AWS IoT Core**

1. [AWS IoT 콘솔](https://console.aws.amazon.com/iot/)로 이동합니다.

1. 왼쪽 탐색 창에서 **메시지 라우팅**을 선택한 다음 **규칙**을 선택합니다.

1. 규칙을 선택하고 **삭제**를 선택합니다.

1. 확인 대화 상자에서 규칙 이름을 입력한 다음 삭제를 선택합니다.

**DynamoDB 테이블 삭제**

1. [DynamoDB 콘솔](https://console.aws.amazon.com/dynamodb/)로 이동합니다.

1. 왼쪽 탐색 창에서 **테이블**을 선택합니다.

1. 와 같이 이전에 생성한 테이블을 선택합니다`WindSpeedData`.

1. **삭제**를 선택합니다.

1. 확인 대화 상자에서 **confirm**를 입력하여 테이블을 삭제합니다.

## 추가 리소스
<a name="dynamodb-tutorial-additional-resources"></a>

DynamoDB 작업 및 데이터 모니터링에 대한 자세한 내용은 다음 리소스를 참조하세요.
+ *DynamoDB 개발자 안내서*[의 CloudWatch를 사용하여에서 지표 모니터링 ](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Monitoring-metrics-with-Amazon-CloudWatch.html) 
+ *DynamoDB 개발자 안내서*의 [에서 파티션 키를 효과적으로 설계하고 사용하는 모범 사례 ](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/bp-partition-key-design.html) 
+ *AWS IoT 개발자 안내서*의에 [대한 규칙 AWS IoT](https://docs.aws.amazon.com/iot/latest/developerguide/iot-rules.html) 
+ [Grafana에서 데이터 시각화 및 공유](visualize-with-grafana.md)