AWS RDS MySQL 在私有子网中,如何从我的本地计算机访问 RDS

问题描述 投票:0回答:2

我在私有子网中拥有 EC2 实例,其在 NAT 网关下,并且 AWS RDS MySQL 可以公开访问。 EC2 和 RDS 位于同一 VPC,同一区域。

我需要避免在公共可访问的 AWS RDS 上使用私有子网创建 RDS。如果我创建了,我必须能够在必要的时间连接到 RDS。

因此,我尝试为此使用站点到站点 VPN,但我的隧道始终无法连接。

请提供适合我的场景的解决方案,除了该站点到站点 VPN 之外,如果我们有适合我们场景的最佳解决方案,您可以建议我们。

尝试过站点到站点 VPN,但隧道状态始终为“关闭”。 尝试为私有子网上的 RDS 添加安全组,无法将该数据库与本地计算机上的 MySQL 工作台连接

期待针对我的场景有更好的解决方案。如果站点到站点 VPN 是更好的解决方案,则需要了解如何将隧道状态解析为“关闭”。

amazon-web-services amazon-rds
2个回答
1
投票

使用 VPN,您需要设置客户端 VPN 端点,请参阅此处如何设置客户端 VPN 端点。请记住将 VPN 连接分配到私有子网之一,并允许流量流向其安全组中的 AWS RDS 数据库。 不要忘记检查客户端 VPN 的费用

作为替代方案,您可以使用 SSM 在专用网络中设置堡垒主机来连接到您的数据库。了解如何使用 Session Manager 和 Amazon EC2 Instance Connect 访问堡垒主机

在本地,您可以使用端口转发到 RDS 数据库:

aws ssm start-session --target <EC2-instance-ID> --document-name AWS-StartPortForwardingSession --parameters '{"portNumber":["3306"], "localPortNumber":["3306"]}' --profile <your-profile>

请相应地替换 以及可选的端口 (3306)。

旁注:您可以在需要时启动和停止堡垒主机以节省成本。


0
投票

检查安全组:确保与您的 EC2 实例和 RDS 实例关联的安全组允许必要端口上的入站和出站流量。对于 MySQL,默认端口通常为 3306。请确保您的 EC2 实例可以通过该端口与 RDS 实例通信。 检查路由表:确认与私有子网关联的路由表已正确配置,以将发往 RDS 实例 IP 地址范围的流量路由到 NAT 网关。 检查 NACL:网络访问控制列表 (NACL) 在子网级别提供额外的安全层。确保与您的私有子网关联的 NACL 允许端口 3306(或您的 RDS 实例用于 MySQL 的端口)上的入站和出站流量。 检查 VPC 对等互连:如果您有多个 VPC 并使用 VPC 对等互连来连接它们,请确保对等连接配置正确并允许 VPC 之间的流量。 VPN 连接:如果您仍在考虑使用 VPN 连接,请仔细检查配置以确保其符合您的 VPC 和 RDS 实例的要求。确保 VPN 隧道已正确建立,并且路由已配置为在 VPC 和本地网络之间路由流量。 VPC 终端节点:如果您的 EC2 实例需要访问其他 AWS 服务,请考虑将 VPC 终端节点用于 S3 或 DynamoDB 等服务。这可以通过将流量保留在 AWS 网络内来帮助提高安全性和性能。 AWS Direct Connect:如果您的组织需要在本地环境和 AWS 之间建立专用网络连接,请考虑使用 AWS Direct Connect。这提供了从您的数据中心到 AWS 的私有、专用连接,绕过公共互联网。

© www.soinside.com 2019 - 2024. All rights reserved.