限制访问 Amazon 跨区域 EC2 实例

Restrict access to Cross-region ec2 instances amazon

我需要设计一个跨区域的跨 VPC 架构,但我不确定如何限制对我的资源的访问 要求是我需要 运行 我的网络应用程序在一个地区和我的数据库在另一个地区。 两台服务器都在私有子网内。 Web 应用程序附加了一个自动缩放组和负载均衡器。其他区域的数据库服务器只能从此 Web 应用程序访问。我不能使用基于 ip 的限制,因为负载均衡器的 IP 随时间变化。我还有什么其他选择?

您的负载均衡器的 IP 地址无关紧要,因为负载均衡器仅用于与您的 Web 服务器的传入连接。

首先,我应该指出 让您的数据库远离您的应用程序是一个糟糕的架构决策,这会减慢您的应用程序。 可以的话请重新考虑!

你提供的信息不多,所以我做以下假设:

  • 区域 A 中的 VPC 包含:
    • public 子网中的负载均衡器
    • 私有子网中的 Web 服务器
  • 区域 B 中的 VPC 包含:
    • 私有子网中的数据库

在这种情况下,您希望在位于不同区域的不同 VPC 中的两个私有子网之间进行通信。为此,您可以考虑通过位于每个 VPC 的 public 子网中的 Amazon EC2 实例创建 私有 VPN 连接。这将使用 软件 VPN 例如 OpenVPN or OpenSwan.

您还应该考虑如何为该解决方案实现高可用性选项。 well-architected VPC 会将您的 Web 服务器部署在区域 A 的多个可用区中,您的数据库最好在区域 B 中采用 multi-AZ 配置(假设您使用的是 Amazon RDS)。您应该类似地将您的 VPN 解决方案设计为 highly-available 以防万一。

另一种方法是在 Region A 的 VPC 的 public 子网中放置一个 NAT Server,并配置私有路由 Table 来发送流量通过 NAT 服务器。这意味着从 Web 服务器到 Internet 的流量将全部来自与 NAT 服务器关联的 public IP 地址( 而不是 负载均衡器)。

但是,数据库位于私有子网中,因此无法将流量直接路由到数据库,因此这只是解决方案的一半。然后它将要求数据库位于 public 子网中(具有仅接受来自 NAT 服务器的连接的安全组)或 public 子网中的某种类型的代理服务器将流量转发到数据库。与软件 VPN 选项相比,这将变得过于复杂。