将ElastiCache连接到弹性Beanstalk实例

我一直在阅读关于在我的EB实例和我的Redis端点之间创build连接的Elastic Beanstalk和ElastiCache文档。 我已经将我的端点添加到了我的Node.js应用程序的会话configuration中,但是它并没有连接到我的Redis实例,如访问使用该会话的任何页面时所引发的错误所指示的那样。 我知道Elastic Beanstalk和ElastiCache之间的安全组需要保持一致,但是是否需要对环境进行调整才能连接两者?

这是我的Node.js应用程序中的Redis连接:

//Session Cookie app.use(cookieParser()); app.use(session({ store: new RedisStore({ host: 'redis-production.dfdfa.0001.use1.cache.amazonaws.com', port: 6379 }), secret: process.env.SECRET, resave: true, saveUninitialized: true, cookie: { httpOnly: true, secure: false //turn to true on production once https is in place } })); 

我不确定你的意思是:

我知道Elastic Beanstalk和ElastiCache之间的安全组需要保持一致

如果这就是你所说的,他们不需要是同一个安全组。 而且他们不需要有完全相同的设置,如果这就是你所说的话。 这是你需要做的:

  1. Elastic Beanstalk服务器位于特定的安全组中。 我们将称之为SG1。
  2. ElastiCache实例位于特定的安全组中。 我们将称这个SG2。
  3. 在SG2中添加一个允许您在configurationElastiCache实例时指定的端口上的stream量的规则。 默认端口是6379 。 在此安全组规则中使用源字段中SG1的ID。 例如,如果SG1的ID为sg-123456则在源字段中input该ID。

完成这些步骤后,所有Elastic Beanstalk实例都将有权访问您的ElastiCache Redis实例。