您可以连接到亚马逊以外的Amazon Elasticache Redis吗?

Loi*_*ros 76 amazon-ec2 amazon-web-services redis amazon-elasticache

我能够从EC2实例连接到VPC中Elasticache redis实例,但我想知道是否有一种方法可以连接到Amazon EC2实例之外的Elasticache Redis节点,例如从我的本地开发设置或其他供应商提供的VPS实例.

目前从我当地的设置尝试时:

redis-cli -h my-node-endpoint -p 6379
Run Code Online (Sandbox Code Playgroud)

一段时间后我才会暂停.

Ric*_*ico 80

SSH端口转发应该可以解决问题.尝试从您的客户端运行此命令.

ssh -f -N -L6379:<your redis node endpoint>:6379 <your EC2 node that you use to connect to redis>
Run Code Online (Sandbox Code Playgroud)

然后从您的客户端

redis-cli -h 127.0.0.1 -p 6379
Run Code Online (Sandbox Code Playgroud)

这个对我有用.

请注意,redis的默认端口6379不是6739.还要确保允许允许您使用的EC2节点的安全组连接到您的redis实例进入Cache安全组.

此外,AWS现在支持在此处访问您的群集更多信息


E.J*_*nan 64

不,你不能不诉诸诸如隧道之类的"技巧",这可能可以用于测试但是会消除使用超高速缓存的额外延迟/开销的任何真正好处.

... 永远不允许从Internet访问VPC内部或外部Amazon ElastiCache群集.

从这里:http://aws.amazon.com/elasticache/faqs/#Can_I_access_Amazon_ElastiCache_from_outside_AWS

编辑2018:上面的答案在编写时是准确的,但是现在可以通过一些配置从外部使用方向大约在本页面的1/2左右访问redis缓存:https://docs.aws.amazon.com/AmazonElastiCache /latest/red-ug/accessing-elasticache.html

  • 我觉得'杀'有点强.例如,在AWS之外运行我们的应用程序(通过这样的隧道)时,我们没有获得明显的性能损失.与数据库操作,浏览器负载,磁盘I/O等相比,隧道的开销微不足道. (7认同)

csc*_*can 22

这些答案已过时.

您可以按照以下步骤访问AWS外部的弹性缓存:

  1. 在与缓存集群相同的VPC中创建NAT实例,但在公有子网中.
  2. 为缓存集群和NAT实例创建安全组规则.
  3. 验证规则.
  4. 将iptables规则添加到NAT实例.
  5. 确认受信任的客户端能够连接到群集.
  6. 保存iptables配置.

有关更详细的说明,请参阅aws指南:

https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/accessing-elasticache.html#access-from-outside-aws


Sha*_*yam 6

不是那么老的问题,我自己跑到同一个问题并解决了它:

有时,出于开发原因,您需要从外部访问(以避免多部署只是为了简单的错误修复?)

亚马逊发布了一个新指南,它使用EC2作为外部世界的代理:

http://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/Access.Outside.html

祝好运!

  • 作为参考,亚马逊提到的方法是NAT实例. (3认同)

smi*_*ing 5

顺便说一句,如果有人想要 Windows EC2 解决方案,请在 DOS 提示符下尝试这些(在所述 Windows EC2 机器上):

添加端口转发

C:\用户\管理员>netsh interface portproxy add v4tov4 listenport=6379 listenaddress=10.xxx.64.xxx connectport=6379 connectaddress=xxx.xxxxxx.ng.0001.use1.cache.amazonaws.com

列出端口转发的端口

C:\用户\管理员>netsh interface portproxy show all

监听 ipv4: 连接到 ipv4:

地址 端口 地址 端口


10.xxx.128.xxx 6379 xxx.xxxxx.ng.0001.use1.cache.amazonaws.com 6379

删除端口转发

C:\用户\管理员>netsh interface portproxy delete v4tov4 listenport=6379 listenaddress=10.xxx.128.xxx