brunch

You can make anything
by writing

C.S.Lewis

by Master Seo May 25. 2020

363. IoT 데이터, Redis 사용 관리

목적

1.  IoT 데이터를 Lambda 와 Redis Cache 로 분석해보자.

2. 여기서는 시뮬레이터 사용한다.

3. 작업 순서를 잘 기억하자.

q-x



구성


IoT 사물 ---- AWS IoT ---------Lambda ----ElastiCache for Redis



작업 순서

<1> 사물 생성 , 인증서 생성,  정책 생성,

       인증서에 정책 적용 ,인증서에 사물 적용,

        HTTPS 링크 확인

<2> EC2에 센서 애뮬레이터  준비 

<3> EC2 연결

<4> node.js  애뮬레이터 실행

<5> IoT   Rule생성과  Lambda 배포

<6> Redis 로  데이터 분석하기

<7> 참고 사이트



<1> 사물 생성 , 인증서 생성,  정책 생성,

인증서에 정책 적용 ,인증서에 사물 적용,

HTTPS 링크 확인


1.  사물 생성

IoT  Core > Manage > Things > Register a thing > Create a single thing    >  Name 

SensorHub

> Next



2    Create certificate  // 인증서 생성


A Certificate : xxxxxxxxxxxx  Download

A Public Key : xxxxxxxxxxxx  Download

A Private Key : xxxxxxxxxxxx  Download

>  Activate  > Done


 // 아래 부분에서 반드시 계속 클릭해서 다운로드 해야 한다.


3

Secure  > Certificates  에 만들어진 인증서가 있다.


4

정책 생성

Secure > Policies  > Create a policy

Name 

SensorHubPolicy


Advanced mode 

11.txt

{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"iot:Subscribe",
"iot:Connect",
"iot:Publish",
"iot:Receive"
],
"Resource": [ "*" ],
"Condition": {
"Bool": {
"iot:Connection.Thing.IsAttached": ["true"]
}

}
]
}

create


5  

인증서에 정책 추가

Secure > Certificates  > Attatch policy > 선택 >Attatch


인증서에 사물 적용

Secure > Certificates  > Attatch thing  > 선택  Attatch


7  

HTTPS  링크 확인

Manage   > 사물 클릭 >  interact >   HTTPS  링크 확인

ayewskb37tzoo-ats.iot.us-west-2.amazonaws.com





<2> EC2에 센서 애뮬레이터  준비 


1

FileZilla 로 파일 올리기

FileZilla   > 편집(edit)   > Setting > SFTP > ADD keyfile  > PPK 선택  > 빠른 연결


2

/home/ec2-user/utils

1) root-ca.crt 삭제

2) 이름 바꿔 올리기

sensorhub-cert.pem.crt   와   sensor-private.pem.key  2개 올리기




<3> EC2 연결

ssh 로 연결

접속 확인



<4> node 로  애뮬레이터 실행


1

cd utils

vi iot-properties.file

//내용 수정

host =

./utils/s.pem.crt

./utils/s.pem.key

  

2

// update root CA

curl https://www.amazontrust.com/repository/AmazonRootCA1.pem > /home/ec2-user/utils/root-CA.crt


3

// node  실행하기

cd /home/ec2-user

node temp-sensor.js



4

IoT Core > Test   >     Subscription tpoic

temp_readings

>  Subscription topic





<5>  IoT rule   생성과 Lambda 배포


1.  IoT Rule만들기

IoT  >  Act > Rules >   Create a rule > Name :

PersistToRedis


Rule query  statement

SELECT * FROM 'temp_readings'


Add action 

send   a message  to a  lambda function  // 선택

// 메시지를 람다로 보내기 

> Configure action



2.    Create a new Lambda function  //람다 만들기

function Name

PersistSensorData


Choose or create an execution role 

> User an existing role 

lambda_basic_vpc_execution  선택

> Create function



3

function code


Code entry type :

Upload a file from Azmazon S3  // 선택


S3  link URL :

https://us-west-2-aws-training.s3-us-west-2.amazonaws.com/awsu-spl-dev/spl-142/2.0.2.dev/scripts/PersistSensorData.zip

> SAVE


4

Handler :

PersistSensorData.handler


5

Basic settings  

Memory : 1024

Timeout : 5 분

save


6

VPC 

VPC 

Subnets

Security Group

Save



7

Function code

Code entry type , Edit code inline

엔드포인트 코드 수정


Your redis endpoint

save


8

Lambda

finalize IoT Role configurateion


9

Iot core  >  Function name   > Refresh

PersistSensordata  선택

Add action

Create rule



<6> Redis 로  데이터 분석하기


1. EC2   접속

cd /usr/local/bin/

redis-cli -h RedisEndPoint




<7> 참고 사이트

https://aws.amazon.com/ko/blogs/database/managing-iot-and-time-series-data-with-amazon-elasticache-for-redis/


감사합니다.

브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari