首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么我无法从EC2实例访问amazon RDS实例?

为什么我无法从EC2实例访问amazon RDS实例?
EN

Stack Overflow用户
提问于 2019-07-15 01:54:34
回答 3查看 334关注 0票数 0

因此,我在亚太地区(孟买)创建了一个RDS实例,并在同一区域单独创建了一个EC2实例。我的本地机器可以很好地访问DB服务器,但是不能从我的EC2实例中访问它。我使用了我的ec2的公共IPv4地址:

并将此实例ip放入我的rds实例的安全组入站规则中:

不幸的是,这并不起作用。对我来说幸运的是,公开所有的ips对我来说是有效的:

即使它可以工作,公开所有的it也不是我想要的。我是不是遗漏了什么?如何才能使我的RDS只能从EC2实例访问?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-07-15 03:50:33

已将EC2实例的公网IP添加到RDS安全组中。由于EC2实例和RDS实例位于同一个私有网络中,因此两者之间的通信将完全在私有网络内进行。这意味着您需要将EC2实例的私有IP加入白名单,而不是公网IP。只有当EC2实例向私有网络外发送请求时,才会使用公网IP。

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

票数 4
EN

Stack Overflow用户

发布于 2019-07-15 10:54:53

只需在@标记答案中添加,如果您的ec2实例和RDS在同一个私有网络中,那么内网IP应该可以工作,但是如果您在不同的私有网络中,那么您必须添加公网IP地址,但在您的情况下公有IP地址不起作用,所以这意味着两者都在同一个私有网络中。

一种方式是根据@Mark提到的3306,允许EC2实例的安全组ID。

但是另一种方式可以是,

例如,如果您的私有网络CIDR块为10.0.0.0/16,则:

我建议对DB安全组中的3306端口允许10.0.0.0/16,这将允许所有EC2实例,这将有助于测试和调试。

票数 2
EN

Stack Overflow用户

发布于 2019-07-17 05:02:35

确保在数据库设置中将“公共可访问性”设置为“是”。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57029826

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档