无法从Lightsail实例访问Amazon RDS MySQL实例

4

我是AWS的新手,不是网络管理员,只是开发人员,需要您的帮助。

我无法从我的lightsail ubuntu实例连接到我的aws RDS(mysql)。在尝试连接时,它只等待一分钟然后失败了。我也无法ping我的RDS。

这里是设置:

Lightsail实例启用了位于伦敦区域A的VPC对等连接。

我已经在AWS上创建了一个mysql RDS实例,并使用默认的VPC对等连接。mysql被限制为VPC,并使用默认安全组,该安全组具有入站规则-默认安全组源的所有流量。

默认VPC有2个子网,CIDR分别为172.31.16.0/20172.31.0.0/16,适用于两个可用区A和B。在子网的路由表中,我将目标设为vpc对等连接的172.26.0.0/16,并且进一步具有以下内容:

请求方VPC CIDRs 172.26.0.0/16
接受方VPC CIDRs 172.31.0.0/16

我的lightsail实例具有私有IP172.26.15.xxx,位于lon-Zone-A。当我ping我的mysql实例时,我得到了IP172.31.10.9

连接使用的命令:mysql -h xxxxxx.xxxxx.eu-west-2.rds.amazonaws.com -P 3306 -u db_master_username -p

2个回答

15

要使AWS Lightsail可访问AWS RDS,您可以通过以下两种方式之一完成:

方法1。

  1. 使RDS公开可访问。

    在RDS中选择您的实例并单击“修改”。 在“网络和安全性”部分中选择“Yes”以将“Publicly accessible”设置为Yes。 应用设置并等待其生效。 您的RDS现在具有公共IP。

  2. 将您的Lightsail 公共IP 添加到RDS安全组入站流量中。

    使用CIDR:x.x.x.x / 32,其中x.x.x.x是您的Lightsail实例的公共IP。

方法2.(更好的选项,RDS没有公共IP)

  1. 确保您的Lightsail实例与RDS位于同一可用区。
  2. 设置VPC Peering在Lightsail VPC和Amazon VPC之间。

  3. 将您的Lightsail 本地IP添加到RDS安全组入站流量中。


1
当Lightsail VPC和Amazon VPC位于不同的AZ但相同的区域时,对等连接是否有效?这是由于多AZ故障转移和可扩展性引起的。 - axiom
不,它们都必须在同一个区域内。 - Aaron McKeehan

3
我已经解决了。我必须将我的Lightsail实例IP CIDR添加到RDS入站规则中,以允许mysql/aurora TCP流量通过。:-)

1
现在您也会注意到,您仍然无法ping通RDS。这是正常/预期的行为。RDS不会响应ping。 - Michael - sqlbot
Aurora也能用吗? 我正在尝试使用Aurora作为数据库,已经将入站规则添加到安全组中,但是我仍然无法访问数据库。 - axiom

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接