Ec2 SQL 数据库服务器:
Connection-specific DNS Suffix . : ec2.internal
Link-local IPv6 Address . . . . . : fe80::9ca:e9d1:a7b5:3e42%16
IPv4 Address. . . . . . . . . . . : 172.31.21.189
Subnet Mask . . . . . . . . . . . : 255.255.240.0
Default Gateway . . . . . . . . . : 172.31.16.1
*(请注意,此 Ec2 DB 当前还具有与之关联的可公开访问的弹性 IP。我之所以注意到这一点,是因为我在 VPC 对等文档中看到,如果有与之关联的公共 IP,VPC 对等将无法正常运行)
我在同一个 VPC、Workspace Client 网络上设置了一个 AWS Workspace Directory:
Connection-specific DNS Suffix . : ec2.internal
Link-local IPv6 Address . . . . . : fe80::dc3c:d1c1:c7fe:812b%15
IPv4 Address. . . . . . . . . . . : 172.31.16.45
Subnet Mask . . . . . . . . . . . : 255.255.240.0
Default Gateway . . . . . . . . . : 172.31.16.1
虽然它们位于同一个 CIDR 172.31 上,但它们无法通信,我阅读了有关 VPC 对等的文档,但我认为它不适用于这种情况。在工作区桌面(客户端应用程序)和我的 ec2 实例上的 sql 数据库之间设置网络连接的适当且安全的方法是什么。
编辑
答案1
我怀疑以下某个方面存在问题:
- 安全组存在问题。 如果两个实例都有默认安全组,那就应该没有问题,但是您可能为 SQL 实例创建了一个新的安全组(因为它有一个外部 IP 地址)。如果是这样,您需要确保允许从工作区客户端的安全组、IP 地址或 IP 地址范围进行访问。
- 路由表问题(不太可能,除非你修改了默认值)
- 防火墙问题(例如,如果 EC2 SQL 实例是在 Windows 上运行的 SQL Server,则该实例上可能启用了 Windows 防火墙)
- NACL 的问题 (同样,这可能不是问题,除非您修改了它们。)
你说得对vpc 对等连接不是解决方案。vpc 对等允许您在两个不同的虚拟专用网络s. 您在同一个 VPC 中有两个子网,因此这不是您所需要的。
一些应该起作用的安全规则示例:
- 172.31.0.0/16 - 允许 VPC 中的任何设备访问 SQL Server
- 172.31.16.0/20 - 允许 172.31.16.0 子网中的任何设备访问 SQL Server
- 172.31.16.45/32 – 允许一个桌面访问 SQL 服务器。
(如果不清楚,您应该将这些添加到与 SQL Server 关联的安全组中。)