我想将本地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
它仍然不起作用。你觉得我做错了什么?我错过了什么吗?
答案 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)
答案 4 :(得分:0)
像其他人所说的那样,Ping被阻止。允许Amazon RDS从您的EC2实例连接。转到RDS实例的“安全性”组。编辑“入站”设置。并将“自定义”更改为“任何地方”。之后,您将可以连接到数据库。
答案 5 :(得分:0)
答案 6 :(得分:-2)
AWS安全组默认阻止ICMP(包括ping)。你必须打开ICMP - 盲目地试图打开TCP / 22不会做任何事情。