목적
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
6
인증서에 사물 적용
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 :
> 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> 참고 사이트
감사합니다.