amazon-web-services - 从 ElasticBeanstalk EC2 到 Redis (ElastiCache) 的连接失败

标签 amazon-web-services amazon-ec2 redis amazon-elastic-beanstalk amazon-elasticache

我们正在使用 ElasticBeanstalk 设置一些 Node.js 环境。目前,我们使用 Redis 作为 session 存储,它在 ElastiCache 中设置。

当我 ssh 进入 EC2 实例并 netcat Redis 存储时,我可以确认网络允许通过端口 6379 进行连接:

[ec2-user@<redacted>]$ nc -v <redacted>.usw2.cache.amazonaws.com 6379
Connection to <redacted>.usw2.cache.amazonaws.com 6379 port [tcp/*] succeeded!

EC2 安全组的出站策略:0.0.0.0/0

Redis 安全组的入站策略允许在端口 6379 上从我的 EC2 安全组传入 TCP。

这似乎支持我们在 netcat 成功 ping Redis 存储时看到的观察结果。但是,当尝试连接到 Redis 时,Node.js 应用程序本身会挂起。我可以通过运行以下命令在 EC2 实例上复制此内容:

[ec2-user@<redacted>]$ ./redis-cli -c -h <redacted>.usw2.cache.amazonaws.com -p 6379 ping

这只是挂起,我们没有收到 PONG回复。鉴于 netcat 的成功,我相当有信心这不是安全组问题,但这里肯定存在一些看似奇怪的事情。

有什么想法吗?

最佳答案

问题在于 ElastiCache 配置为传输和静态加密。事实证明,对于这个特定的实例,我们不需要它,所以一旦我们删除它,事情就开始工作了。如果我们保留加密,实际的解决方案是什么,待定。

关于amazon-web-services - 从 ElasticBeanstalk EC2 到 Redis (ElastiCache) 的连接失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55090822/

相关文章:

node.js - 使用nodejs在JSON redis中设置函数类型

database - Redis AOF 和 Tarantool WAL 日志的区别

linux - 使用 AWS Elastic Beanstalk 在创建实例时运行命令

Java查看Redis内存使用情况

amazon-web-services - 带有 SQS 触发器的 AWS lambda 不断重试并将作业放回队列中

amazon-web-services - "DependsOn": [] means in cloudformation 是什么意思

linux - yum install ffmpeg 找不到repomd.xml

java - Log4j 在本地打印错误堆栈跟踪,但不在服务器上打印

amazon-web-services - 如何在 AWS 中创建和查看组织中的实例?

amazon-s3 - s3 cloudfront 向匿名用户列出存储桶中的所有内容