为什么我不能从EC2实例访问我的Amazon RDS实例?

时间:2019-07-14 17:54:33

标签: amazon-web-services amazon-ec2 amazon-rds

因此,我在亚太(孟买)地区创建了RDS实例,并在同一地区分别创建了EC2实例。我的本地机器可以正常访问数据库服务器,但是无法从我的EC2实例中访问它。 我使用了EC2的公共IPv4地址: enter image description here 并将此实例ip放入我rds实例的安全组的入站规则中: enter image description here 不幸的是,这没有用。对我来说很幸运,公开所有ip对我有用: enter image description here即使确实可行,也不希望公开所有ip。我想念什么吗?如何使我的RDS仅能从EC2实例访问?

3 个答案:

答案 0 :(得分:2)

您已将EC2实例的公用IP添加到RDS安全组。由于EC2实例和RDS实例位于同一VPC中,因此它们之间的通信将完全在VPC内进行。这意味着您需要将EC2实例的Pipate IP(而不是Public IP)列入白名单。仅当EC2实例在VPC外部发送请求时,才会使用Public IP。

我实际上建议将EC2实例所属的安全组ID列入白名单,而不是EC2实例的特定IP地址。如果EC2实例的IP发生更改,或者您将应用程序扩展到多个EC2实例,这将使安全组继续工作。

答案 1 :(得分:1)

只需添加到@Mark答案,如果您的ec2实例和RDS在同一VPC中,则专用IP应该可以工作,但是如果在不同的VPC中,则您必须添加公共IP地址,但在您的情况下,public无法工作,因此表示两者都在同一个VPC中。

一种方法是允许EC2实例的安全组ID反对@Mark所说的3306

但是另一种可能是

例如,如果您的VPC CIDR块是10.0.0.0/16,则:

我建议在数据库安全组中的10.0.0.0/16端口上使用3306端口,这将允许所有EC2实例,这将有助于测试和调试。

答案 2 :(得分:0)

请确保您具有数据库设置中“是”的“公共可访问性”。