我有一个 AWS ElastiCache Redis 集群设置,希望对其进行管理。由于 AWS 不允许在 VPC 之外访问 ElastiCache,因此我设置了一个微型 EC2 实例,其中包含指向此集群的 phpRedisAdmin 脚本副本。但 AWS 已禁用 Redis 集群上的“CONFIG”命令,因此 phpRedisAdmin 无法连接和管理 ElastiCache 集群。
我已经尝试过 redis-browser 节点包,但它在 0.0.0.0:4567 上运行,并且我需要此实例上的公共 IP 来管理 Redis 集群。
有什么建议吗?
答案1
你可能想尝试一下雷德斯敏。
如果您的 EC2 实例与 Redis ElasticCache 位于同一子网中
笔记:
- 这仅在您连接到的 EC2 实例位于同一子网作为您的 ElasticCache Redis 实例。
- 以下示例将表明您的 ElastiCache 私有 IP 正在
172.31.5.13
端口上运行6379
。 - 以下示例将说明您的 EC2 私有 IP 是
172.31.5.14
,其公有 IP 是52.50.145.87
。
现在让我们一步一步地进行:
- 通过 SSH 连接到此 EC2 实例
- 运行
sudo iptables -t nat -A PREROUTING -p tcp --dport 6379 -j DNAT --to-destination 172.31.5.13:6379
不要忘记更改你的 IP 甚至端口号 - 跑步
sudo iptables -t nat -A POSTROUTING -p tcp -d 172.31.5.13 --dport 6379 -j SNAT --to-source 172.31.5.14
- 跑步
sudo service iptables save
如果上一个命令不工作, 尝试:
- 在 Debian/Ubuntu 上 =>
iptables-save > /etc/iptables/rules.v4
- 在 RHEL/CentOS 上 =>
iptables-save > /etc/sysconfig/iptables
- 在 Debian/Ubuntu 上 =>
在安全组中添加一条规则,允许来自 Redsmin IP 的入站请求
62.210.222.165
,协议 = TCP,端口 = 6379- 在 redsmin 中使用连接字符串添加一个新的 Direct Server:,
redis://52.50.145.87:6379
完成!
如果您没有与 Redis ElasticCache 位于同一子网中的 EC2 实例
- 按照这个亚马逊教程设置 NAT 实例,设置它与您的 ElastiCache 位于同一子网服务器。
- 现在按照上面的上一节进行。
如果你只是想将 Redsmin 连接到 EC2 Redis
- 在安全组中添加一条规则以允许来自 Redsmin IP 的入站请求
62.210.222.165
(例如,不要忘记指定正确的端口6379
) - 使用 EC2 公共 IP 和您打开的端口在 Redsmin 中连接您的 Redis 服务器。
答案2
我能够ElastiCache private IP
通过从 EC2 shell ping 主端点来找到它。
PING xyz.abc.euw2.cache.amazonaws.com (172.31.xxx.xxx) 56(84) bytes of data.