시작하기 자습서 - AWS IoT Core

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

시작하기 자습서

이 튜토리얼에서는 잠재적인 이상을 감지하기 위해 센서의 온도를 모니터링하는 플릿 지표를 생성합니다. 플릿 지표를 생성할 때 온도가 화씨 80도를 초과하는 센서의 수를 감지하는 집계 쿼리를 정의합니다. 쿼리가 60초마다 실행되도록 지정하면 쿼리 결과가 CloudWatch로 내보내지며, 여기에서 잠재적인 고온 위험이 있는 센서의 수를 보고 경보를 설정할 수 있습니다. 이 자습서를 완료하려면 AWS CLI를 사용합니다.

이 자습서에서는 다음을 수행하는 방법을 알아봅니다.

이 자습서는 완료하는 데 약 15분이 소요됩니다.

사전 조건

설정

플릿 지표를 사용하려면 플릿 인덱싱을 사용하도록 설정합니다. 지정된 데이터 원본과 관련 구성을 사용하여 사물 또는 사물 그룹에 대한 플릿 인덱싱을 사용하도록 설정하려면 사물 인덱싱 관리사물 그룹 인덱싱 관리의 지침을 따르세요.

설정
  1. 다음 명령을 실행하여 플릿 인덱싱을 사용하도록 설정하고 검색할 데이터 원본을 지정합니다.

    aws iot update-indexing-configuration \ --thing-indexing-configuration "thingIndexingMode=REGISTRY_AND_SHADOW,customFields=[{name=attributes.temperature,type=Number},{name=attributes.rackId,type=String},{name=attributes.stateNormal,type=Boolean}],thingConnectivityIndexingMode=STATUS" \

    위의 CLI 명령 예시는 AWS_Things 인덱스를 사용하여 레지스트리 데이터, 섀도우 데이터 및 사물 연결 상태 검색을 지원하도록 플릿 인덱싱을 사용하도록 설정합니다.

    구성 변경을 완료하는 데 몇 분 정도 걸릴 수 있습니다. 플릿 지표를 생성하기 전에 플릿 인덱싱이 사용하도록 설정되어 있는지 확인합니다.

    플릿 인덱싱이 사용하도록 설정되었는지 확인하려면 다음 CLI 명령을 실행합니다.

    aws --region us-east-1 iot describe-index --index-name "AWS_Things"

    자세한 내용은 사물 인덱싱 사용을 참조하세요.

  2. 다음 bash 스크립트를 실행하여 10개의 사물을 생성하고 설명합니다.

    # Bash script. Type `bash` before running in other shells. Temperatures=(70 71 72 73 74 75 47 97 98 99) Racks=(Rack1 Rack1 Rack2 Rack2 Rack3 Rack4 Rack5 Rack6 Rack6 Rack6) IsNormal=(true true true true true true false false false false) for ((i=0; i < 10; i++)) do thing=$(aws iot create-thing --thing-name "TempSensor$i" --attribute-payload attributes="{temperature=${Temperatures[@]:$i:1},rackId=${Racks[@]:$i:1},stateNormal=${IsNormal[@]:$i:1}}") aws iot describe-thing --thing-name "TempSensor$i" done

    이 스크립트는 10개의 센서를 나타내는 10개의 사물을 생성합니다. 각 사물에는 다음 표에 설명된 대로 temperature, rackIdstateNormal 속성이 있습니다.

    속성 데이터 유형 설명
    temperature 숫자 화씨의 온도 값
    rackId String 센서가 포함된 서버 랙의 ID
    stateNormal 센서의 온도 값이 정상인지 여부

    이 스크립트의 출력에는 10개의 JSON 파일이 포함됩니다. JSON 파일 중 하나가 다음과 같습니다.

    { "version": 1, "thingName": "TempSensor0", "defaultClientId": "TempSensor0", "attributes": { "rackId": "Rack1", "stateNormal": "true", "temperature": "70" }, "thingArn": "arn:aws:iot:region:account:thing/TempSensor0", "thingId": "example-thing-id" }

    자세한 내용은 사물 생성을 참조하세요.

플릿 지표 생성

플릿 지표를 생성하는 방법
  1. 다음 명령을 실행하여 high_temp_FM이라는 플릿 지표를 생성합니다. CloudWatch에서 온도가 화씨 80도를 초과하는 센서 수를 모니터링하는 플릿 지표를 생성합니다.

    aws iot create-fleet-metric --metric-name "high_temp_FM" --query-string "thingName:TempSensor* AND attributes.temperature >80" --period 60 --aggregation-field "attributes.temperature" --aggregation-type name=Statistics,values=count

    --metric-name

    데이터 형식: 문자열. --metric-name 파라미터는 플릿 지표 이름을 지정합니다. 이 예에서는 high_temp_FM이라는 플릿 지표를 생성하고 있습니다.

    --query-string

    데이터 형식: 문자열. --query-string 파라미터는 쿼리 문자열을 지정합니다. 이 예에서 쿼리 문자열은 이름이 TempSensor로 시작하고 온도가 화씨 80도 이상인 모든 사물을 쿼리하는 것을 의미합니다. 자세한 내용은 쿼리 구문을 참조하세요.

    --period

    데이터 형식: 정수. --period 파라미터는 집계된 데이터를 검색하는 시간을 초 단위로 지정합니다. 이 예에서는 생성 중인 플릿 지표가 60초마다 집계된 데이터를 검색하도록 지정합니다.

    --aggregation-field

    데이터 형식: 문자열. --aggregation-field 파라미터는 평가할 속성을 지정합니다. 이 예에서는 온도 속성을 평가해야 합니다.

    --aggregation-type

    --aggregation-type 파라미터는 플릿 지표에 표시할 통계 요약을 지정합니다. 모니터링 태스크의 경우 다양한 집계 유형(통계(Statistics), 카디널리티(Cardinality)백분위 수(Percentile)의 집계 쿼리 속성을 사용자 지정할 수 있습니다. 이 예에서 집계 유형과 통계에 대해 개수를 지정하여 쿼리와 일치하는 속성이 있는 디바이스 수를 반환합니다. 즉, 이름이 TempSensor로 시작하고 온도가 화씨 80도 이상인 디바이스 수를 반환합니다. 자세한 내용은 집계 데이터 쿼리를 참조하세요.

    이 명령의 출력은 다음과 같습니다.

    { "metricArn": "arn:aws:iot:region:111122223333:fleetmetric/high_temp_FM", "metricName": "high_temp_FM" }
    참고

    CloudWatch에 데이터 포인트가 표시되는 데 시간이 걸릴 수 있습니다.

    플릿 지표를 생성하는 방법에 대해 자세히 알아보려면 플릿 지표 관리를 참조하세요.

    플릿 지표를 생성할 수 없는 경우 플릿 지표 문제 해결을 참조하세요.

  2. (선택 사항) 다음 명령을 실행하여 high_temp_FM이라는 플릿 지표를 설명합니다.

    aws iot describe-fleet-metric --metric-name "high_temp_FM"

    이 명령의 출력은 다음과 같습니다.

    { "queryVersion": "2017-09-30", "lastModifiedDate": 1625249775.834, "queryString": "*", "period": 60, "metricArn": "arn:aws:iot:region:111122223333:fleetmetric/high_temp_FM", "aggregationField": "registry.version", "version": 1, "aggregationType": { "values": [ "count" ], "name": "Statistics" }, "indexName": "AWS_Things", "creationDate": 1625249775.834, "metricName": "high_temp_FM" }

CloudWatch에서 플릿 지표 보기

플릿 지표를 생성한 후 CloudWatch에서 지표 데이터를 볼 수 있습니다. 이 튜토리얼에서는 이름이 TempSensor로 시작하고 온도가 화씨 80도 이상인 센서의 수를 보여주는 지표를 볼 수 있습니다.

CloudWatch에서 데이터 포인트를 보려면
  1. https://console.aws.amazon.com/cloudwatch/에서 CloudWatch 콘솔을 엽니다.

  2. 왼쪽 패널의 CloudWatch 메뉴에서 지표를 선택하여 하위 메뉴를 확장한 다음 모든 지표를 선택합니다. 이렇게 하면 위쪽 절반에 그래프가 표시되고 아래쪽 절반에 4개의 탭 섹션이 있는 페이지가 열립니다.

  3. 첫 번째 탭 섹션인 모든 지표에는 그룹에서 볼 수 있는 모든 지표가 나열됩니다. IoTFleetMetrics를 선택합니다. 여기에는 모든 플릿 지표가 포함됩니다.

  4. 모든 지표(All metrics) 탭의 집계 유형(Aggregation type) 섹션에서 집계 유형(Aggregation type)을 선택하여 생성한 모든 플릿 지표를 확인합니다.

  5. 플릿 지표를 선택하여 집계 유형(Aggregation type) 섹션 왼쪽에 그래프를 표시합니다. 지표 이름 왼쪽에 값 개수 값이 표시되며 이는 이 자습서의 플릿 지표 생성 섹션에서 지정한 집계 유형의 값입니다.

  6. 모든 지표(All metrics) 탭의 오른쪽에 있는 그래프로 표시된 지표(Graphed metrics)라는 두 번째 탭을 선택하여 이전 단계에서 선택한 플릿 지표를 확인합니다.

    다음과 같이 화씨 80도보다 높은 온도의 센서 수를 표시하는 그래프를 볼 수 있어야 합니다.

    AWS IoT 플릿 지표
    참고

    CloudWatch의 기간(Period) 속성은 기본적으로 5분으로 설정됩니다. CloudWatch에 표시되는 데이터 포인트 사이의 시간 간격입니다. 필요에 따라 기간(Period) 설정을 변경할 수 있습니다.

  7. (선택 사항) 지표 경보를 설정할 수 있습니다.

    1. 왼쪽 패널의 CloudWatch 메뉴에서 경보를 선택하여 하위 메뉴를 확장한 다음 모든 경보를 선택합니다.

    2. 경보(Alarms) 페이지의 오른쪽 상단 모서리에서 경보 생성(Create alarm)을 선택합니다. 콘솔에서 경보 생성(Create alarm) 지침에 따라 경보를 생성합니다. 자세한 내용은 Amazon CloudWatch 경보 사용을 참조하세요.

자세한 내용은 Amazon CloudWatch 지표 사용을 참조하세요.

CloudWatch에서 데이터 포인트를 볼 수 없는 경우 플릿 지표 문제 해결을 참조하세요.

정리

플릿 지표를 삭제하려면

delete-fleet-metric CLI 명령을 사용하여 플릿 지표를 삭제합니다.

high_temp_FM이라는 플릿 지표를 삭제하려면 다음 명령을 실행합니다.

aws iot delete-fleet-metric --metric-name "high_temp_FM"

사물을 정리하려면

delete-thing CLI 명령을 사용하여 사물을 삭제합니다.

생성한 10개의 사물을 삭제하려면 다음 스크립트를 실행합니다.

# Bash script. Type `bash` before running in other shells. for ((i=0; i < 10; i++)) do thing=$(aws iot delete-thing --thing-name "TempSensor$i") done

CloudWatch에서 지표를 정리하려면

CloudWatch는 지표 삭제를 지원하지 않습니다. 지표는 보존 일정에 따라 만료됩니다. 자세한 내용은 Amazon CloudWatch 지표 사용을 참조하세요.