현재 Sails.js 프로젝트에서 connect-redis를 사용하여 로컬에 설치된 redis 인스턴스를 활용합니다. 앞으로는로드 밸런서 뒤에있는 여러 서버 인스턴스에 일반적인 redis 인스턴스를 사용하여 AWS Elasticache를 살펴 보았습니다. 구성에 문제가 있습니다.AWS Elasticache Redis를 사용하여 Sails.js에서 세션 관리
돛 프로젝트 \ 설정 \ session.js :
adapter: 'connect-redis',
host: 'primary-endpoint.xxxxxx.ng.0001.apse1.cache.amazonaws.com',
port: 6379,
ttl: <redis session TTL in seconds>,
db: 0,
pass: <redis auth password>,
prefix: 'sess:',
TTL 값은 무엇을해야 하는가? 패스 속성이 어떻게 든 IAM을 가리켜 야합니까?
나는 AmazonElastiCacheFullAccess 권한으로 IAM에서 사용자를 만들고pass
속성에의 액세스 키 ID를 퍼팅 시도,하지만 난 내 서버 콘솔에서 (내 Windows 상자에 테스트)이 오류가 발생했습니다 :
C:\repos\sails-project\node_modules\connect-redis\lib\connect-redis.js:83
throw err;
^
AbortError: Redis connection lost and command aborted. It might have been processed.
at RedisClient.flush_and_error (C:\repos\sails-project\node_modules\redis\index.js:362:23)
...
하나를 변경해야 할 것에 대한 아이디어?
TTL은 세션이 활성화되기를 원하는 기간을 기준으로 애플리케이션에 적합하다고 생각하는 것 같습니다. IAM 관련 내용입니다. 1) IAM 사용자가 여기에서 일한다고 생각하지 않습니까? AWS 사용자 이름/암호가 아닌 Elasticache 사용자 이름과 암호를 요구합니다. 2) Redis는 기본적으로 열려 있기 때문에 인증 할 필요가 없습니다 (그렇게하면 안된다고 말하는 것이 아니라 Redis 고유의 방식으로이 작업을 수행해야합니다). – d1ll1nger
예, 서버와 동일한 인스턴스에서 redis를 실행할 때 구성에 자격 증명을 제공하지 않습니다. 다른 서버를 가리킬 때 인증이 필요하다고 가정합니다. 내가 말할 수있는 한, "Elasticache 사용자 이름"이없는 것처럼 보이므로, 함께 조각하는 방법에 대해 당황 스럽다. – carpiediem
그래, 조금 이상합니다. 마지막으로 들었던 것은 elasticache redis 서비스가 보안 그룹에 의해 잠겨져 있어야한다는 것입니다. 추가 제어가 필요한 경우 EC2에 재발생을 생성하십시오. – d1ll1nger