将ElastiCache连接到Elastic Beanstalk实例

cph*_*ill 5 amazon-web-services redis node.js amazon-elasticache amazon-elastic-beanstalk

我一直在阅读有关在我的EB实例和我的Redis端点之间创建连接的Elastic Beanstalk和ElastiCache文档.我已将我的端点添加到我的Node.js应用程序中的会话配置中,但它似乎没有连接到我的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
    }
}));
Run Code Online (Sandbox Code Playgroud)

Mar*_*k B 6

我不确定你的意思是:

我知道Elastic Beanstalk和ElastiCache之间的安全组需要相同

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

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

完成这些步骤后,所有Elastic Beanstalk实例都可以访问您的ElastiCache Redis实例.