从外部通过telnet连接到AWS ElastiCache

据说AWS ElastiCache只能从同一VPC内的EC2进行访问。

步骤4:允许访问 – 引用自Amazon ElastiCache

所有的ElastiCache集群都是设计用来从Amazon EC2实例进行访问的。集群和相关的EC2实例需要位于同一个Amazon Virtual Private Cloud(Amazon VPC)中。如果需要从VPC内的EC2实例以外的地方访问ElastiCache集群,则可以设置一个或多个在缓存的VPC内作为外部代理的EC2主机作为解决方案。

所以,我会按照指示使用EC2作为代理,尝试从外部网络进行连接。

步骤 (Bù

将IP地址设定如下所示。

    • AWS ElastiCache エンドポイントIP: xxx.xxx.xxx.xxx

 

    • AWS EC2 プロキシサーバ パブリックIP: yyy.yyy.yyy.yyy ※ElasticIP推奨

 

    外部のソースIP: zzz.zzz.zzz.zzz

构建ElastiCache

我会在安全组中允许“安全组自身访问11211端口”,然后构建。剩下的可以随意。我选择了t2.micro并安装了memcache1.4.24。

建立 EC2

在安全组中允许来自”zzz.zzz.zzz.zzz”的SSH(22)端口和11211端口,并进行设置。
其他的随便。我选择了t2.nano实例类型,并使用了AmazonLinux镜像。

使用SSH登入EC2实例,启用通过iptables进行IP转发设置。

$ ssh -i ~/.ssh/(生成した鍵) ec2-user@yyy.yyy.yyy.yyy
$ sudo su -

# yum install telnet iptables
# sysctl -w net.ipv4.ip_forward = 1
# iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
# iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 11211 -j DNAT --to xxx.xxx.xxx.xxx:11211

如果您打算长期使用sysctl和iptables设置,建议将其记录在/etc目录下以实现持久化。

确认连接

使用古老而強大的TELNET協議進行連接驗證。

首先从内部EC2开始。

[ec2-user@ip-yyy-yyy-yyy-yyy ~]$ telnet xxx.xxx.xxx.xxx 11211
Trying xxx.xxx.xxx.xxx...
Connected to XXXXX.XXXXXX.XXXX.XXXXX.cache.amazonaws.com.
Escape character is '^]'.
^]

外部から。

[argus@01110110111 ~]$ telnet xxx.xxx.xxx.xxx 11211
Trying xxx.xxx.xxx.xxx...
Connected to XXXXX.XXXXXX.XXXX.XXXXX.cache.amazonaws.com.
Escape character is '^]'.
^]

我成功了。

参考资料

    • AWS 外部からの ElastiCache リソースへのアクセス – Amazon ElastiCache

 

    アルゴス – ニンジャスレイヤー Wiki
广告
将在 10 秒后关闭
bannerAds