【问题标题】:Unable to connect to AWS Redis endpoint using redis-cli. Connection timed out无法使用 redis-cli 连接到 AWS Redis 终端节点。连接超时
【发布时间】:2019-06-02 17:47:43
【问题描述】:

我在 ElastiCache 下创建了cache.t2.small Redis。可用。

我有端点:portal-test.abcdef.ab.0001.abcd1.cache.amazonaws.com

ssh'ed 到实例(通过ubuntu@ip-172-xx-xx-xxruncloud@ip-172-xx-xx-xx 尝试)。我正在尝试通过redis-cli 键入以下内容进行连接:

redis-cli -h portal-test.abcdef.ab.0001.abcd1.cache.amazonaws.com -p 6379 平

我期待 PONG 但我得到了

无法连接到 Redis 门户-test.abcdef.ab.0001.abcd1.cache.amazonaws.com:6379: 连接超时

我进入我的 EC2 实例并定义了端口 6379 的入站流量:

在 runcloud(我用于此实例)上,我还打开了端口并成功部署了防火墙规则:

同样的超时。我错过了什么?

【问题讨论】:

  • 只是一个建议,出站规则允许所有流量?
  • 您是否将其设置为在 Elasticache 端对公众开放访问? (您只显示您的 ec2 入站安全组)

标签: amazon-web-services redis


【解决方案1】:

我找到了解决办法。

罪魁祸首:

我创建的 Redis 不在同一个 VPC/可用区/子网中 作为我的 Laravel 应用程序所在的 EC2 实例。第一个 IP 为 10.x.x.x > 而 EC2 实例为 172.x.x.x。我认为这种不匹配正在阻止 两端互相交谈。 ???

解决方案:

创建 Redis 时,只需将其分配给与 Laravel 宝宝所在的现有 EC2 实例相同的 VPC。还重用您打开端口 6379 的同一个安全组(假设您在创建 Redis 时选择了此端口作为默认端口)。

现在通过 SSH 连接到您的 EC2 并从类型内:

redis-cli -h endpoint-from-your-aws-redis-dashboard -p 6379 ping

如果你得到:

乒乓球

你是赢家。

【讨论】:

  • 完美,这很有帮助。谢谢
【解决方案2】:

马特的回答让我朝着正确的方向前进。然而,一个小的调整使我的连接工作。我查看了安全组,发现我已打开连接的安全组(即Custom TCP 6379)没有绑定到我的 ElastiCache Redis 实例。

要修改 ElastiCache 实例中的安全组:

  • 点击您的实例(确保其突出显示)
  • 点击操作下拉菜单
  • 修改
  • VPC 安全组(点击铅笔图标)
  • 选择安全组并保存
  • 最后,点击修改

等到您的 ElastiCache 实例完成修改,然后通过 ssh 连接到您的 EC2 实例。最后,试试 Matt 的pingpong 方法。

希望对您有所帮助!

【讨论】:

    猜你喜欢
    • 2017-08-06
    • 2014-05-08
    • 2018-05-21
    • 1970-01-01
    • 2019-10-18
    • 1970-01-01
    • 2020-11-01
    • 1970-01-01
    • 2015-02-06
    相关资源
    最近更新 更多