无法使用redis-cli连接到AWS Redis终端节点。连接超时

时间:2019-01-08 03:47:55

标签: amazon-web-services redis

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

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

ssh进入实例(通过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 ping

我期望PONG,但我得到

  

在以下位置无法连接到Redis   portal-test.abcdef.ab.0001.abcd1.cache.amazonaws.com:6379:   连接超时

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

enter image description here

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

enter image description here

相同的超时时间。我想念什么?

2 个答案:

答案 0 :(得分:2)

我找到了解决方法。

罪魁祸首:

  我创建的

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

如果得到:

  

PONG

你是赢家。

答案 1 :(得分:1)

马特的答案将我引向正确的方向。但是,稍作调整即可使我的连接正常工作。我查看了安全组,然后发现我具有开放连接的安全组(即Custom TCP 6379)没有绑定到我的ElastiCache Redis实例。

要在ElastiCache实例中修改安全组,请执行以下操作:

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

请等待,直到完成对ElastiCache实例的修改,然后将其SSH到EC2实例中。最后,尝试使用Matt的ping pong方法。

希望有帮助!