我最近在 AWS elasticache 上创建了一个 Redis 集群,但在从本地计算机通过 redis-cli 连接时遇到问题。每次我运行命令时:
redis-cli -h <redis_cluster_domain> -p 6379
连接从未建立,最终因超时而退出。
最终,我发现它是由于安全组上的设置而被阻止的,因此我编辑了入站规则以允许来自我的 IP 地址的所有流量。即使执行此操作后,我仍然无法连接到集群。有什么想法吗?
我明白了。
显然,默认情况下您无法从AWS外部访问elasticache集群。为此,您需要通过 AWS 创建 VPN 并连接到该 VPN,以便到达所需的集群。
本 AWS 教程此处概述了执行此操作的步骤,但更简单地说,我所做的就是以下内容:
使用 AWS Certificate Manager 创建并导入授权证书。您将使用此证书来授权您的 VPN 连接。
创建 VPN 客户端端点并附加上一步中生成的密钥和证书。
将 Elasticache 集群上使用的 VPC 与 VPN 终端节点关联。
为所有用户授权 VPN 上的所有流量。
将路由添加到 VPN 端点的路由表中,以允许从任何地方 (0.0.0.0/0) 进行访问。
在本地下载 VPN 客户端配置文件,并使用“openvpn”(您可能需要安装它)以及第一步中创建的证书和密钥连接到 VPN。
这对我有用,我很高兴我明白了。现在我可以使用“redis-cli”从本地计算机连接到我的 Redis 集群!
您还可以通过跳转服务器/堡垒主机甚至本地端口转发来完成此操作。
可能需要在Redis集群的网络&安全中编辑入站规则。另外,如果您使用VPN,请确保您是否已创建TCP协议条目。
对于后代,如果您尝试通过同一 VPC 中的资源进行连接但仍然无法连接,并且您已启用传输中加密,则可能需要在命令行中使用 redis-cli 传递 --tls 选项在您的 Redis 集群上。
更多详细信息请点击此处 -> https://repost.aws/knowledge-center/elasticache-redis-cluster-fix-connection