将ElastiCache连接到Elastic Beanstalk实例

时间:2016-08-15 00:19:36

标签: node.js amazon-web-services redis elastic-beanstalk amazon-elasticache

我一直在阅读有关在我的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
    }
}));

1 个答案:

答案 0 :(得分:5)

我不确定你的意思是什么:

  

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

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

  1. Elastic Beanstalk服务器位于特定的安全组中。我们将此称为SG1。
  2. ElastiCache实例位于特定的安全组中。我们将此称为SG2。
  3. 在SG2中添加规则,允许在配置ElastiCache实例时指定的端口上的流量。默认端口为6379。在此安全组规则中,在源字段中使用SG1的ID。例如,如果SG1的ID为sg-123456,则在源字段中输入该值。
  4. 完成这些步骤后,所有Elastic Beanstalk实例都可以访问您的ElastiCache Redis实例。