我可以从EC2示例连接到VPC中的ElastiCache Redis示例,但我想知道是否有方法连接到Amazon EC2示例之外的ElastiCache Redis节点,例如从我的 local dev设置或其他供应商提供的VPS示例。
当前从本地设置尝试时:
redis-cli -h my-node-endpoint -p 6379
我只有在一段时间后才能得到暂停。
我可以从EC2示例连接到VPC中的ElastiCache Redis示例,但我想知道是否有方法连接到Amazon EC2示例之外的ElastiCache Redis节点,例如从我的 local dev设置或其他供应商提供的VPS示例。
当前从本地设置尝试时:
redis-cli -h my-node-endpoint -p 6379
我只有在一段时间后才能得到暂停。
9条答案
按热度按时间4jb9z9bj1#
SSH端口转发应该可以完成这个任务。试着从你的客户端运行它。
那你的委托人
对我很有效。
请注意,redis的默认端口是
6379
,而不是6739
。此外,还要确保您允许用于连接到redis示例的EC2节点的安全组进入缓存安全组。此外,AWS现在支持访问您的群集更多信息here
c0vxltue2#
2018年更新
之前的答案在编写时是准确的,但是现在可以通过一些配置从外部访问redis缓存,使用从AWS外部访问ElastiCache资源中的说明
旧答案
不,你不能不诉诸'技巧',如隧道,这可能是好的测试,但将扼杀任何真实的的好处,使用超快缓存与增加的延迟/开销。
在VPC内部使用Amazon ElastiCache与在外部使用有何不同?:
Amazon ElastiCache集群,无论是在VPC内部还是外部,都 * 永远不允许从Internet访问 *
但是,此语言已在当前常见问题解答中删除
elcex8rz3#
这些答案已过期。
您可以通过以下步骤访问AWS外部的弹性缓存:
1.在与缓存集群相同的VPC中创建一个NAT示例,但该示例位于公共子网中。
1.为该高速缓存群集和NAT示例创建安全组规则。
1.验证规则。
1.将iptables规则添加到NAT示例。
1.确认受信任的客户机能够连接到群集。
1.保存iptables配置。
有关更详细的描述,请参阅aws指南:
https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/accessing-elasticache.html#access-from-outside-aws
1bqhqjot4#
不是那么老的问题,我跑到同样的问题自己,并解决了它:
有时,出于开发的原因,您需要从外部访问(为了避免多个部署,只是为了一个简单的错误修复?)
Amazon发布了一份新指南,将EC2用作外部世界的代理:
https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/accessing-elasticache.html#access-from-outside-aws
祝你好运!
x9ybnkn65#
顺便说一句,如果任何人想要一个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 6379xxx.xxxxx.ng.0001.use1.cache.amazonaws.com:
删除端口转发
C:\用户\管理员〉
netsh interface portproxy delete v4tov4 listenport=6379 listenaddress=10.xxx.128.xxx
ymdaylpp6#
我们使用HAProxy作为保留代理服务器。
您在AWS之外的系统---〉互联网--〉带有公共IP的HAProxy--〉亚马逊Redis(Elasticache)
请注意,(在那个时候)这样做还有另一个很好的理由
由于我们使用的是node.js客户端,它不支持Amazon DNS故障转移,客户端驱动程序也不支持DNS再次查找。如果redis失败,客户端驱动程序将保持连接到旧的主服务器,即故障转移后的从服务器。
通过使用HAProxy,它解决了这个问题。
现在使用最新的ioredis驱动程序,它支持amazon dns故障转移。
cx6n0qe37#
这是一个坚实的节点脚本,将为您做所有肮脏的工作。测试和验证它的工作。
https://www.npmjs.com/package/uzys-elasticache-tunnel
如何使用用法:uzys-elasticache-隧道[选项][命令]
命令:
选项:
用法示例
pvabu6sv8#
从VPC示例直接访问经典集群是不可能的,解决方法是在经典示例上配置NAT。
NAT需要一个简单的tcp代理
cedebl8k9#
我解决了使用这个亚马逊文档,它说你必须安装stunnel在您的另一个ec2机器。
https://aws.amazon.com/premiumsupport/knowledge-center/elasticache-connect-redis-node/