안녕세계

[Node.js] Redis & ElastiCache 본문

[Node.js] Redis & ElastiCache

Junhong Kim 2016. 10. 21. 14:26
728x90
반응형

- ElasticCache for Redis -




[Step1] Create Security Group



AWS > Compute > EC2 > NETWORK & SECURITY > Security Groups 에 들어갑니다.


상단에 Creaste Security Group 클릭!


- Security group name : 이름

- descrtiption : 설명

- VPC : VPC 선택


Create 클릭!


Security group을 생성한 뒤 Redis inbound에  TCP 6379 port를 추가 시켜줍니다.





[Step2] Create ElastiCache


AWS > Database > ElastiCache 클릭!






Get Started Now 클릭!






※ 주의!! free-tier 사용시 설정해 줘야 하는 것들

- Node type : cache.t2.micro (0.5GiB) free tier에서 이용하실 분은 꼭 t2.micro를 선택하셔야 750시간 동안 요금이 부과되지 않습니다.

- Multi-AZ with Auto-Failover : t2에서는 지원하지 않기 때문에 체크를 해제 해줍니다.

- Securit groups : 이전에 만든 Redis로 설정 이때 해당 Security group을 설정하면 해당하는 곳에 연결됩니다.


설정을 완료한후 Create 클릭!







status에 creating 이라고 나오고 5분정도 기다려줍니다.



생성이 완료되면 status가 available로 바뀝니다.


" 여기까지 하셨다면 ElastiCache for Redis 생성 완료! : ) "   






[Step3] Connect ElastiCache(Redis) to Node.js


Node.js에서 사용하기 위해 필요한 모듈을 먼저 설치를 합니다.


 npm install redis --save 

 npm install connect-redis express-session --save 





[ app.js ]

var redis = require('redis');
var redisClient = redis.createClient();

var session = require('express-session');
var RedisStore = require('connect-redis')(session);

app.use(session({
store: new RedisStore({
client: redisClient, // client redis
host: 'Primary Endpoint',
port: 6379 // Redis port 번호
}),
secret: 'SecretKey', // Secret Key는 아무거나 입력하시면 됩니다.
resave: true, // 요청때 세션이 수정된게 없으면 강제로 세션 저장
saveUninitialized: true, // 저장된게 없으면 세션을 저장
cookie: {
path: '/',
httpOnly: true,
secure: false, // 안전한 상태에서만 쿠키를 보내겠습니다. (https 에서만 보내겠다는 뜻)
maxAge: 1000 * 60 * 60 * 24 * 30 // 쿠키 저장되는 만료기간 (단위 * 초 * 분 * 시 * 일)
}
}));

redis서버에 접속하기 위해서 RedisStore에 클라이언트, 호스트, 포트를 지정해 줍니다

여기서 호스트는 위에서 우리가 만든 redis를 눌러보면 primary Endpoint가 있는데 이를 지정해줍니다.

port는 말그대로 port 번호


- 끝 -


※ 필독!!

ElastiCache를 사용하면 RedisStore가 EC2를 통하므로 세션 기능을 사용하려면 EC2에서 테스해야합니다.

로컬에서 테스트 해보려면 로컬에 Redis 설치하세용~


[참고]

http://gun0912.tistory.com/45








728x90
반응형
Comments