如何使用 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的主要内容,如果未能解决你的问题,请参考以下文章

通过 EC2 连接到 AWS MySQL?

连接到 Mysql AWS RDS 实例时工作台错误 10060

如何使用 Python 连接到 AWS RDS MySql 数据库

尝试连接到 AWS Gateway 私有 API 时出现 UnknownHostException

如何从 AWS SAM 本地 docker 实例连接到主机 MySQL?

无法从 SQL WORKBENCH 连接到 AWS RDS mysql