无法ping通AWS RDS端点

时间:2014-03-24 00:36:03

标签: mysql amazon-web-services ping

我想将本地mysql数据库迁移到Amazon RDS。但首先我想测试它是否正在接收通信。所以我试着ping它。但尝试超时。

ping -c 5 myfishdb.blackOut.us-west-2.rds.amazonaws.com
PING ec2-54-xxx-xxx-118.us-west-2.compute.amazonaws.com (54.xxx.xxx.118): 56 data bytes
Request timeout for icmp_seq 0
Request timeout for icmp_seq 1
Request timeout for icmp_seq 2
Request timeout for icmp_seq 3

我怀疑我需要打开入站设置,因此我将设置打开到

SSH TCP 22 72.xxx.xxx.xxx/32

它仍然不起作用。你觉得我做错了什么?我错过了什么吗?

7 个答案:

答案 0 :(得分:17)

  

所以我试着ping它。但尝试超时。

Ping不起作用,因为安全组默认阻止所有通信。您必须在安全组防火墙中“挖洞”才能获得实例流量。

  

SSH TCP 22 72.xxx.xxx.xxx/32它仍然不起作用。

烨。 RDS不允许您通过SSH登录到该框。只有MySQL端口(3306)处于打开状态。

  

我想将本地mysql数据库迁移到Amazon RDS。

好的,但要小心。不要向整个互联网开放3306(即0.0.0.0)。 MySQL不是为此而设计的,并且通常存在任何人都可能侵入您的数据库的缺陷。

您可以打开3306到您的(家庭)IP地址(或您将使用它的服务器。)它应该看起来像“5.5.5.5/32 TCP端口3306”。但请注意,这不是很好的安全性,因为其他人可以看到您的数据包。 (MySQL支持加密连接,但您必须明确设置它们。)

您可以使用telnet my.mysql.ip.address 3306测试您的设置。如果没有消息,则端口未打开。如果你“连接到......”,那么你的MySQL端口正在工作。

使用RDS的最安全方法是来自EC2实例。您可以在EC2实例和RDS安全组之间创建信任。您的数据包不会通过Internet传输,而只能在AWS网络上传输。其他人将无法看到您的数据包,因为EC2中的任何内容都不允许这样做。

答案 1 :(得分:9)

Amazon RDS是关系数据库的托管服务。它不提供对低级别基础架构的访问。

http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Welcome.html

没有授权给RDS实例的SSH,Telnet或Ping访问

的Seb

答案 2 :(得分:7)

“RDS实例未配置为接受和响应ping的ICMP数据包。建立与RDS实例的连接的唯一方法是通过标准SQL客户端应用程序。”

这意味着,将ICMP规则添加到特定RDS安全组中,不会使您的RDS实例可通过ICMP访问。

答案 3 :(得分:0)

对我有用的解决方案是在安全组部分中打开IP:PORT

enter image description here

答案 4 :(得分:0)

像其他人所说的那样,Ping被阻止。允许Amazon RDS从您的EC2实例连接。转到RDS实例的“安全性”组。编辑“入站”设置。并将“自定义”更改为“任何地方”。之后,您将可以连接到数据库。

答案 5 :(得分:0)

您可以使用Linux中的 host ,它也是AWS says的一部分。

host <db_instance_endpoint>

即使 ping 超时,这也对我有用。

答案 6 :(得分:-2)

AWS安全组默认阻止ICMP(包括ping)。你必须打开ICMP - 盲目地试图打开TCP / 22不会做任何事情。