Project RX0004-01



RX004 AWS Setting Guide

AWS 계성 생성

  1. 다음 웹사이트에 접속한 후 계정을 생성

AWS 콘솔 로그인

  1. 다음 웹사이트에 접속한 후 콘솔에 로그인
  2. 지역 선택
    • 지역 선택 예 (아시아 태평양 서울):
      ap-northeast-2
      

AWS 예산 생성 (AWS Budgets)

다음 과정을 수행해 예상한 수준을 너머서는 비용이 발생하지 않도록 예산을 설정할 수 있습니다. 예산을 설정하면 실제 비용이 예산을 초과할 경우 알림을 받을 수 있습니다.

  1. AWS Console > 결제 및 비용 관리 (Billing Dashboard) > 예산 (Budgets) 페이지에 접속

  2. 예산 생성 (Create a Budget) 선택

  3. 예산 설정 입력
    • 입력 예:
      • 텝플릿 사용 선택

      • 템플릿: 월별 비용 예산 (Cost Budget)

      • 예산 이름: My Monthly Cost Budget - 50

      • 예산 금액: 50.00

      • 이메일 수신자: your-email@example.com

  4. 예산 생성 선택



RX004 AWS CLI Setting Guide

AWS 콘솔 로그인

  1. 다음 웹사이트에 접속한 후 콘솔에 로그인
  2. 지역 선택
    • 지역 선택 예 (아시아 태평양 서울):
      ap-northeast-2
      

AWS 사용자 생성

다음 과정을 수행에 CLI를 사용해 AWS 리소스에 접근할 수 있는 IAM 사용자 계정을 생성합니다.

  1. AWS Console > IAM > 엑세스 관리 > 사용자 그룹 > 그룹 생성 선택 후 다음 그룹 생성
    • 사용자 그룹 이름: rx004-iam_group-amplify_full_access
      • 권한:
        AdministratorAccess-Amplify
        
        AmplifyBackendDeployFullAccess
        
    • 사용자 그룹 이름: rx004-iam_group-dynamodb_full_access
      • 권한:
        AmazonDynamoDBFullAccess
        
    • 사용자 그룹 이름: rx004-iam_group-iotcore_data_full_access
      • 권한:
        AWSIoTDataAccess
        
    • 사용자 그룹 이름: rx004-iam_group-iotwireless_send_data_to_wireless_device
      • 권한:
        AWSIoTWirelessDataAccess
        
  2. AWS Console > IAM > 사용자 > 사용자 생성 선택 후 다음 사용자 생성
    • 사용자 이름:
      rx004-iam_user-all_full_access
      
    • 그룹에 사용자 추가 선택

    • 다음 사용자 그룹 선택:
      rx004-iam_group-amplify_full_access
      
      rx004-iam_group-dynamodb_full_access
      
      rx004-iam_group-iotcore_data_full_access
      
      rx004-iam_group-iotwireless_send_data_to_wireless_device
      
  3. AWS Console > IAM > 엑세스 관리 > 사용자 > rx004-iam_user-all_full_access > 보안 자역 증명 > 액세스 키

  4. 액세스 키 만들기 선택 후 다음 액세스 키 생성
    • 사용 사례: Command Line Interface (CLI)
      • 설명 태그 값:
        rx004-iam_user-all_full_access-cli_key
        
  5. 액세스 키 csv 파일 다운로드 (이 파일은 Amplify 개발 환경 설치 시 사용)

  6. 액세스 키 만들기 선택 후 다음 액세스 키 생성
    • 사용 사례: 로컬 코드
      • 설명 태그 값:
        rx004-iam_user-all_full_access-local_code_key
        
  7. 액세스 키 csv 파일 다운로드 (이 파일은 AWS 시험용 프로그램 실행 시 사용)

윈도우즈에 Amplify 개발 환경 설치

  1. 관리자 권한으로 명령 프롬프트(cmd.exe) 실행

  2. 다음 명령을 실행해 필요한 패키지 설치
    choco install nodejs-lts -y
    
    choco install awscli -y
    
  3. 명령 프롬프트(cmd.exe) 창 닫기

  4. AWS 사용자 생성 과정에서 생성한 Command Line Interface (CLI) 용 액세스 키 csv 파일에서 Access key ID, Secret access key 값 확인

  5. 일반 사용자 권한으로 명령 프롬프트(cmd.exe) 실행

  6. 다음 명령을 실행해 AWS CLI 구성 실행
    aws configure
    
  7. 액세스 키 csv 파일에서 확인한 Access key ID, Secret access key 값 입력
    • Access key ID: …

    • Secret access key: …

  8. Default region name 입력
    • 입력 예 (아시아 태평양 서울):
      ap-northeast-2
      
  9. Default output format 입력
    • 입력 예:
      json
      


RX004 DynamoDB and Access Policy Setting Guide

AWS 콘솔 로그인

  1. 다음 웹사이트에 접속한 후 콘솔에 로그인
  2. 지역 선택
    • 지역 선택 예 (아시아 태평양 서울):
      ap-northeast-2
      

DynamoDB device registry table 생성

  1. AWS Console > DynamoDB > 테이블 > 테이블 생성 선택

  2. 다음 내용을 입력해 테이블을 생성한다.
    • 테이블 이름:
      rx004-dynamodb_table-device_registry_001
      
    • 파티션 키:
      • 이름:
        id
        
      • 형식: String

    • 정렬 키:
      • 이름:
        time
        
      • 형식: Number

Device registry data 예

{
    "id": {
        "S": "ac1f09fffffffffd"
    },
    "time": {
        "N": "1743690661923"
    },
    "altitude": {
        "N": "70"
    },
    "device_profile": {
        "S": "OTTA_KR920_A_M102"
    },
    "horizontal_accuracy": {
        "N": "0"
    },
    "latitude": {
        "N": "-35.89167"
    },
    "longitude": {
        "N": "128.61139"
    },
    "service_prifile": {
        "S": "UBID_Temperature_Humidity_Sensor"
    },
    "tag": {
        "S": "KNU_GP_1309"
    }
}

DynamoDB sensor data table 생성

  1. AWS Console > DynamoDB > 테이블 > 테이블 생성 선택

  2. 다음 내용을 입력
    • 테이블 이름:
      rx004-dynamodb_table-sensor_data_001
      
    • 파티션 키:
      • 이름:
        id
        
      • 형식: String

    • 정렬 키:
      • 이름:
        time
        
      • 형식: Number

  3. Global Secondary Index (GSI) 설정
    • 인덱스 이름:
      id-sensing_time-index
      
    • 파티션 키:
      • 이름:
        id
        
      • 형식: String

    • 정렬 키:
      • 이름:
        sensing_time
        
      • 형식: Number

    • Projection type: ALL

  4. 테이블 생성

Sensor data 예

{
    "id": {
        "S": "ac1f09fffffffffd"
    },
    "time": {
        "N": "1743690661923"
    },
    "battery": {
        "N": "100"
    },
    "humidity": {
        "N": "33.9"
    },
    "rssi": {
        "N": "-47"
    },
    "sensing_time": {
        "N": "1743690657000"
    },
    "snr": {
        "N": "14"
    },
    "temperature": {
        "N": "23.1"
    }
}

테이블 ARN 확인

  1. AWS Console > DynamoDB > 테이블 > 대상 테이블 > 개요 에서 대상 테이블의 Amazon 리소스 이름(ARN)을 확인
    • 대상 테이블:
      • rx004-dynamodb_table-device_registry_001

      • rx004-dynamodb_table-sensor_data_001

    • ARN 예:
      • arn:aws:dynamodb:ap-northeast-2:869400000018:table/rx004-dynamodb_table-device_registry_001

      • arn:aws:dynamodb:ap-northeast-2:869400000018:table/rx004-dynamodb_table-sensor_data_001

Sensor Data View 용 정책 생성

  1. AWS Console > IAM > 엑세스 관리 > 정책 > 정책 생성 > JSON 탭 선택 후, 앞서 확인한 테이블 ARN을 참조해 정책을 입력
    • 입력 예:
      {
          "Version": "2012-10-17",
          "Statement": [
              {
                  "Effect": "Allow",
                  "Action": [
                      "dynamodb:Scan",
                      "dynamodb:Query"
                  ],
                  "Resource": [
                      "arn:aws:dynamodb:ap-northeast-2:869400000018:table/rx004-dynamodb_table-device_registry_*",
                      "arn:aws:dynamodb:ap-northeast-2:869400000018:table/rx004-dynamodb_table-sensor_data_*",
                      "arn:aws:dynamodb:ap-northeast-2:869400000018:table/rx004-dynamodb_table-sensor_data_*/index/id-sensing_time-index"
                  ]
              }
          ]
      }
      

    마지막에 번호를 붙여 구분한 모든 테이블을 포함시키기 위해 테이블 ARN 마지막에 번호 대신 “*”를 붙인다.

  2. 다음 선택 후 아래 내용을 입력해 정책을 생성
    • 정책 이름:
      rx004-iam_policy-sensor_data_view
      

Sensor Data Put 용 정책 생성

  1. AWS Console > IAM > 엑세스 관리 > 정책 > 정책 생성 > JSON 탭 선택 후, 앞서 확인한 테이블 ARN을 참조해 정책을 입력
    • 입력 예:
      {
          "Version": "2012-10-17",
          "Statement": [
              {
                  "Effect": "Allow",
                  "Action": [
                      "dynamodb:PutItem"
                  ],
                  "Resource": [
                      "arn:aws:dynamodb:ap-northeast-2:869400000018:table/rx004-dynamodb_table-sensor_data_*"
                  ]
              }
          ]
      }
      

    마지막에 번호를 붙여 구분한 모든 테이블을 포함시키기 위해 테이블 ARN 마지막에 번호 대신 “*”를 붙인다.

  2. 다음 선택 후 아래 내용을 입력해 정책을 생성
    • 정책 이름:
      rx004-iam_policy-sensor_data_put
      

IoT Core message publish 용 정책 생성

  1. AWS Console > IAM > 엑세스 관리 > 정책 > 정책 생성 > JSON 탭 선택 후 정책을 입력
    • 입력 예:
      {
          "Version": "2012-10-17",
          "Statement": [
              {
                  "Effect": "Allow",
                  "Action": "iot:Publish",
                  "Resource": "*"
              }
          ]
      }
      
  2. 다음 선택 후 아래 내용을 입력해 정책을 생성
    • 정책 이름:
      rx004-iam_policy-iotcore_publish
      

IoT Core LoRaWAN sending data to device 용 정책 생성

  1. AWS Console > IAM > 엑세스 관리 > 정책 > 정책 생성 > JSON 탭 선택 후 정책을 입력
    • 입력 예:
      {
          "Version": "2012-10-17",
          "Statement": [
              {
                  "Effect": "Allow",
                  "Action": "iotwireless:SendDataToWirelessDevice",
                  "Resource": "*"
              }
          ]
      }
      
  2. 다음 선택 후 아래 내용을 입력해 정책을 생성
    • 정책 이름:
      rx004-iam_policy-rx004-iam_policy-iotwireless_send_data_to_wireless_device
      


RX004 IoTCore LoRaWAN Gateway Setting Guide

AWS 콘솔 로그인

  1. 다음 웹사이트에 접속한 후 콘솔에 로그인
  2. 지역 선택
    • 지역 선택 예 (아시아 태평양 도쿄):
      ap-northeast-1
      

    현재는 서울 지역은 LoRaWAN 서비스를 지원하지 않으므로, 지원하는 가장 가까운 지역인 도쿄를 선택한다.

IoT Core LoRaWAN Gateway 생성

  1. AWS Console > AWS IoT > 관리 > LPWAN 디바이스 > 게이트웨이 > 게이트웨이 추가를 선택 후, 다음을 입력해 Gateway를 추가
    • 입력 예:
      • 게이트웨이 EUI: ac1f09fffffffffd

      • 주파수 대역(RF 리전): KR920

      • 이름: ubig004002

      • 설명: WisGate Edge Lite 2 with LBT

      • AWS IoT 사물에 게이트웨어 연결: 체크

  2. 다음 선택

  3. 인증서 생성을 선택한 후 인증서 파일을 다운로드
    • 파일 이름 예:
      • 07c7ffff-2a79-42a9-a4ca-dffff28417d1.cert.pem (Client certificate)

      • 07c7ffff-2a79-42a9-a4ca-dffff28417d1.private.key (Client key)

  4. 엔드 포인드 정보를 기록
    • 엔드 포인드 정보 예:
      • Configuration and Update Server(CUPS) 엔드포인트: (<CUPS URL>:<CUPS Port>)
        https://AO4RFFFFFFD7W.cups.lorawan.ap-northeast-1.amazonaws.com:443
        
      • LoRaWAN Network Server(LNS) 엔드포인트: (<LNS URL>:<LNS Port>)
        wss://AO4RFFFFFFD7W.lns.lorawan.ap-northeast-1.amazonaws.com:443
        
  5. 서버 신뢰 인증서 다운로드를 선택해 인증서 다운로드
    • 파일 이름 예:
      • cups.trust

      • lns.trust Trust (CA Certificate)

  6. 계정에 대한 IoTWirelessGatewayCertManagerRole IAM 역할을 생성하지 않은 경우 게이트웨이를 계속 추가하기 전에 역할을 생성

IoT Core LoRaWAN 용 단말장치 메시지 처리용 라우팅 규칙 생성

  1. AWS Console > AWS IoT > 메시지 라우팅 > 규칙 > 규칙 생성 선택

  2. 아래 정보 입력 후, 다음 선택
    • 규칙 이름:
      LoRaWANMessageRouting
      
  3. 아래 정보 입력 후, 다음 선택
    • SQL 버전 : 2016-03-23

    • SQL 문:
      SELECT * FROM 'iot/topic'
      
  4. 아래 정보 입력 후, 다음 선택
    • 작업1: Republish to AWS IoT Topic
      • 주제:
        rx004/sensor
        
      • IAM 역할: LoRaWANMessageRoutingRole (이 역할이 없으면 새 역할 생성을 선택해 생성)

    • 작업2: Republish to AWS IoT Topic
      • 주제:
        monitoring/iot/topic
        
      • IAM 역할: LoRaWANMessageRoutingRole

  5. 생성 선택

IoT Core LoRaWAN 용 서버 메시지 처리용 Lambda 함수 및 라우팅 규칙 생성

  1. AWS Console > Lambda > 함수 생성 > 새로 작성 선택

  2. 다음 정보 입력 후, 함수 생성 선택
    • 함수 이름:
      rx004_lambda_iotcore_lorawan_message_handler
      
    • 런타임: Python 3.13

  3. 함수 입력
    • app/rx004_lambda_iotcore_lorawan_message_handler 참조

  4. Deploy > 구성 > 권한 > 역할 이름 클릭 > 권한 > 권한 추가 > 정책 연결 선택 후, 아래 항목 선택
    • rx004-iam_policy-sensor_data_put

    • rx004-iam_policy-iotcore_publish

  5. 권한 추가 선택

  6. AWS Console > AWS IoT > 메시지 라우팅 > 규칙 > 규칙 생성 선택

  7. 아래 정보 입력 후, 다음 선택
    • 규칙 이름:
      rx004_iotcore_message_routing_sensor
      
  8. 아래 정보 입력 후, 다음 선택
    • SQL 버전 : 2016-03-23

    • SQL 문:
      SELECT * FROM 'rx004/sensor'
      
  9. 아래 정보 입력 후, 다음 선택
    • 작업1: Lambda
      • Lambda 함수:
        rx004_lambda_iotcore_lorawan_message_handler
        
  10. 다음, 생성 선택

IoT Core LoRaWAN Gateway 등록

  • 등록시 필요한 AWS IoT Core 정보 및 파일 예
    • Work mode: Basics station

    • Basic Station Server Type: LNS Server

    • Server URL: wss://AO4RFFFFFFD7W.lns.lorawan.ap-northeast-1.amazonaws.com

    • Server Port: 443

    • Autentication Mode: TLS Server & Client Authentication

    • Trust (CA Certificate): lns.trust

    • Client certificate: 07c7ffff-2a79-42a9-a4ca-dffff28417d1.cert.pem

    • Client key: 07c7ffff-2a79-42a9-a4ca-dffff28417d1.private.key

WisGate Edge Lite 2 (RAK7268V2/RAK7268CV2) 등록 방법

아래 링크의 웹페이지를 참조해 등록한다.

WisGate Developer D4H/D4H+/D4HP (RAK7248/RAK7248P/RAK7248C) 등록 방법

아래 링크의 웹페이지를 참조해 등록한다.



RX004 IoTCore LoRaWAN Device Setting Guide

AWS 콘솔 로그인

  1. 다음 웹사이트에 접속한 후 콘솔에 로그인
  2. 지역 선택
    • 지역 선택 예 (아시아 태평양 도쿄):
      ap-northeast-1
      

    현재는 서울 지역은 LoRaWAN 서비스를 지원하지 않으므로, 지원하는 가장 가까운 지역인 도쿄를 선택한다.

IoT Core LoRaWAN 디바이스 프로필 추가

OTTA_KR920_A_M103 디바이스 프로필 추가

  1. AWS Console > AWS IoT > 관리 > LPWAN 디바이스 > 프로필 > 디바이스 프로필 추가를 선택한 후 다음 정보를 입력해 추가
    • 디바이스 프로필 이름: OTTA_KR920_A_M103

    • 주파수: KR920

    • MAC 버전: 1.0.3

    • 리전 파라미터 버전: RP002-1.0.1

    • MaxEIRP: 13

    • 클래래스 B 지원: 지원 안함

    • 클래스 C 지원: 지원 안함

    • 조인 지원: 지원

OTTA_KR920_A_M102 디바이스 프로필 추가

  1. AWS Console > AWS IoT > 관리 > LPWAN 디바이스 > 프로필 > 디바이스 프로필 추가를 선택한 후 다음 정보를 입력해 추가
    • 디바이스 프로필 이름: OTTA_KR920_A_M102

    • 주파수: KR920

    • MAC 버전: 1.0.2

    • 리전 파라미터 버전: RP002-1.0.1

    • MaxEIRP: 13

    • 클래래스 B 지원: 지원 안함

    • 클래스 C 지원: 지원 안함

    • 조인 지원: 지원

IoT Core LoRaWAN 서비스 프로필 추가

UBID_Temperature_Humidity_Sensor 서비스 프로필 추가

이 서비스 프로필은 디바이스 예제로 개발한 온습도 센서 디바이스를 LoRaWAN 네트워크에 연결하기 위해 사용됩니다.

  1. AWS Console > AWS IoT > 관리 > LPWAN 디바이스 > 프로필 > 서비스 프로필 추가를 선택한 후 다음 정보를 입력해 추가
    • 이름: UBID_Temperature_Humidity_Sensor

    • 게이트웨이 메타 데이터 추가: 체크

    • 퍼블릭 네트워크 구성: 체크 안함

IoT Core LoRaWAN 에 디바이스 추가

UBID_Temperature_Humidity_Sensor 디바이스 추가

  1. AWS Console > AWS IoT > 관리 > LPWAN 디바이스 > 디바이스 > 무선 디바이스 추가 를 선택한 후 다음 정보를 입력해 추가

  • 입력 정보 예:
    • 무선 디바이스 사양: OTAA v1.0.x

    • Device EUI: AC1F09FFFFFFFFFD

    • Application key: 5D26FA95E72601C03E410507FFFFFFFF

    • AppEUI/JoinEUI: AppEUI, CBCBCADAFFFFFFFF

    • 디바이스 이름: ubid004xxx

    • 디바이스 설명: UBID_Temperature_Humidity_Sensor_xxx

    • 무선 디바이스 프로필: OTTA_KR920_A_M102

    • 서비스 프로필: UBID_Temperature_Humidity_Sensor

    • 대상 이름: ProcessLoRa



RX004 Amplify Sensor Data View Deployment Guide

AWS 콘솔 로그인

  1. 다음 웹사이트에 접속한 후 콘솔에 로그인
  2. 지역 선택
    • 지역 선택 예 (아시아 태평양 서울):
      ap-northeast-2
      

Amplify Sensor Data View App 생성

  1. AWS Console > AWS Amplify > 새 앱 생성을 선택

  2. 앱 배포 > Github 선택

  3. github repository 선택
  4. branch 선택
    • 예: ubinos-main

  5. 내 앱은 모노 리포지토리임 선택

  6. 앱 루트 디렉토리 선택
    • 예: app/rx004_amplify_sensor_data_view

  7. 다음, 저장 및 배포

  8. 배포가 완료될 때까지 기다림

Amplify app backend 에 dynamodb 데이터 스캔 권한 추가

  1. AWS Console > AWS Amplify > 모든 앱 > 대상 앱 선택
    • 예: rx004

  2. 브랜치 > 대상 브랜치 선택
    • 예: ubinos-main

  3. 함수 > 함수 이름 선택

  4. Lambda 에서 보기 > 구성 > 권한 선택

  5. 역할 이름 클릭 > 권한 > 권한 추가 > 정책 연결 선택 후 아래 정책 이름 입력
    • 정책 이름: rx004-iam_policy-sensor_data_view

  6. 권한 추가 선택

Amplify app 열기

  1. AWS Console > AWS Amplify > 모든 앱 > 대상 앱 선택
    • 예: rx004

  2. 개요 > 도메인을 선택해 앱 열기
    • 앱 스크린샷

rx004_amplify_sensor_data_view screenshot

그림 88 rx004_amplify_sensor_data_view screenshot