如何使用 mySQL 工作台连接到 AWS 私有子网 VPC 中的 RDS
Posted
技术标签:
【中文标题】如何使用 mySQL 工作台连接到 AWS 私有子网 VPC 中的 RDS【英文标题】:How to use mySQLworkbench to connect to RDS in AWS private subnet VPC 【发布时间】:2017-01-28 22:39:05 【问题描述】:我是 AWS VPC 的新手。我对如何将 mysqlworkbench 连接到 AWS 私有子网中的 RDS 有疑问。
我使用 VPC 向导创建场景 2:具有公共子网和私有子网的 VPC。从很多博客和论坛中,大多数人都建议数据库应该在私有子网中,所以我在私有子网中创建了数据库。我还创建了 NAT 网关(不是实例)。无论如何我可以使用来自公共(任何)网络的 mySQLworkbench 连接到私有子网中的数据库吗?
谢谢, 安吉拉
【问题讨论】:
您必须在公有子网中创建 EC2 实例,并使用 SSH 隧道从本地计算机访问 RDS 服务器。 ***.com/questions/19129428/… 看来我还是需要一个实例。谢谢马克。 【参考方案1】:我还遵循了AWS Documentation 中的场景 2,没有 NAT 部分。但是现在我无法从我的计算机访问 RDS 实例,因为 RDS 在私有子网中。
为了解决可访问性问题,我从tutorial 得到了这个想法。我其实没追,所以不推荐。
我实际做的是:
1) 我创建了一个 EC2 实例并给它一个弹性 IP。
2) 然后我允许数据库接收来自该实例的流量(这已经在 AWS 教程的数据库服务器安全组上定义)。
3) 然后我允许从我的计算机到 EC2 实例的 SSH 连接。
4) 最后,我能够通过建立“标准 TCP/IP over SSH”连接使用 MySQL WorkBench 连接到数据库
好消息是,仅使用免费层资源(在撰写本文时)AFAIK 即可实现此解决方案。
【讨论】:
【参考方案2】:使用 *** 解决方案,例如 Open***。
在公共子网中配置 Open*** 服务器。 服务器配置中私有子网的推送路由 调整私有路由表以通过 *** 服务器传递 *** 流量 使用 PC 上的客户端配置连接到 ***。 使用 Mysql 工作台连接到您的数据库实例如前所述,您可以配置 ssh 堡垒主机,然后将其用作跳转服务器以 ssh 进入数据库实例。相应配置mysqlworkbench连接到db
【讨论】:
"- 调整私有路由表以通过 *** 服务器传递 *** 流量" - 你能在这条线上提供更多细节吗?谢谢! 这对我有用。关键是确保数据库的安全组允许 Postgres 从与 Open*** 实例所在的公共子网关联的 NAT 网关的弹性 IP 访问。谢谢 @BatteryAcid 我按照 mahesh duvvuru 步骤并确保更新安全组,以便它允许您所说的流量,但我仍然无法连接到数据库,我正在考虑一个服务器配置问题或 DNS 解析,因为 RDS 没有私有 IP(我在这个子网上有另一个实例,我能够连接到私有 IP),除了我想要的私有子网之外,我是否需要配置任何东西到达? @FelipeM 所以我刚刚检查了我的配置,我的数据库安全组具有来自 *** 安全组的 PostgreSQL 入站角色。此外,我的 *** EC2 实例和数据库位于同一可用区(*** 是公共子网和数据库私有子网),不确定这会有所不同。 我终于能够连接到我的 RDS 实例,结果工作台正在解析我的本地网络中的 DNS 而不是 *** 并被阻止,我更改了选项“是否应该路由客户端 Internet 流量通过***?”是的,现在一切都在使用 DNS 解析私有 IP。非常感谢@BatteryAcid 和 mahesh duvvuru 希望这个小小的讨论对其他人有所帮助。以上是关于如何使用 mySQL 工作台连接到 AWS 私有子网 VPC 中的 RDS的主要内容,如果未能解决你的问题,请参考以下文章
连接到 Mysql AWS RDS 实例时工作台错误 10060
如何使用 Python 连接到 AWS RDS MySql 数据库
尝试连接到 AWS Gateway 私有 API 时出现 UnknownHostException