使用 AWS Elasticache Redis 管理 Sails.js 中的会话



我目前正在我的 Sails.js 项目中使用 connect-redis 来利用本地安装的 redis 实例。 将来,我想将通用的 redis 实例用于多个服务器实例(在负载均衡器后面),因此我一直在研究 AWS Elasticache。 不过,我在配置方面遇到了问题。

sails-project\config\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?

我尝试在 IAM 中创建具有 AmazonElastiCacheFullAccess 权限的用户,并将其访问密钥 ID 放在 pass 属性中,但我在服务器控制台中收到此错误(在我的 Windows 盒子上进行测试):

C:repossails-projectnode_modulesconnect-redislibconnect-redis.js:83
      throw err;
      ^
AbortError: Redis connection lost and command aborted. It might have been processed.
    at RedisClient.flush_and_error (C:repossails-projectnode_modulesredisindex.js:362:23)
...

关于要更改什么的任何想法?

我假设你的"Windows box"在AWS之外。

对于 Elasticache,您无法从 AWS 外部访问它。请参阅此处的安全部分:https://aws.amazon.com/elasticache/faqs/#Can_I_access_Amazon_ElastiCache_from_outside_AWS

最常见的使用案例是让 VPC 中的 EC2 实例访问并使用 Elasticache 服务。除此之外,Elasticache Redis 服务不使用身份验证,只允许通过安全组锁定。

如果您需要与此配置区分开来的东西,那么您应该考虑将 Redis 放在 EC2 上,以便您拥有完全控制权。

相关内容

  • 没有找到相关文章

最新更新