从 VPC 内的 EC2 连接到 ElastiCache(VPC 外)实例

Connecting to ElastiCache (Outside VPC) instance from a EC2 inside VPC

我们有大量应用程序使用一个位于 VPC 外部的 ElasticCache 实例 (Redis)(经典实例)。有些应用程序位于 VPC 中,有些位于 VPC 之外(经典实例)。我们如何将所有应用程序连接到缓存?

我们可以将 VPC 外部的应用程序连接到缓存,因为缓存也位于 VPC 外部 VPC 内有少量应用无法连接到缓存。

谢谢。

VPC实例无法直接访问classic-cluster。解决方法是在经典实例上配置 NAT。

NAT需要一个简单的tcp代理

YourIP=1.2.3.4
YourPort=80
TargetIP=2.3.4.5
TargetPort=22

iptables -t nat -A PREROUTING --dst $YourIP -p tcp --dport $YourPort -j DNAT \
--to-destination $TargetIP:$TargetPort
iptables -t nat -A POSTROUTING -p tcp --dst $TargetIP --dport $TargetPort -j SNAT \
--to-source $YourIP
iptables -t nat -A OUTPUT --dst $YourIP -p tcp --dport $YourPort -j DNAT \
--to-destination $TargetIP:$TargetPort

更多详情:https://docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/Access.Outside.html