不同区域的 VPC 中的 Amazon EC2 VM 之间如何通信?

不同区域的 VPC 中的 Amazon EC2 VM 之间如何通信?

我正在建立一个网站,该网站将在美国和欧洲拥有用户。我设置了一个亚马逊虚拟私有云(VPC)位于美国东部地区,另一个 VPC 位于欧洲西部地区。我还配置了亚马逊 53 号公路DNS 具有基于延迟的选项,因此用户将被定向到最近的 VPC。大多数请求将在本地处理,但对于某些请求,应用服务器将需要在其他区域获取一些数据。更准确地说,我的网站将允许用户相互发送消息,尽管大多数消息可能保留在同一区域,但一些用户偶尔会向其他区域的用户发送消息。因此,VPC 之间需要进行一些通信。

我可以看到 4 个选项:

  1. 如果亚马逊有一个选项可以通过 VPN 透明安全地连接不同区域的 VPC,那就太理想了。但我没有在任何地方看到这个选项(现在是 2013 年 3 月)。我是不是错过了什么?这在他们的路线图上吗?
  2. 我可以在两个 VPC 之间设置自己的 VPN 连接。为了实现冗余,我至少需要在美国安装 2 台虚拟机,在欧洲安装 2 台虚拟机,并在这些虚拟机上设置 OpenVPN。我担心吞吐量和延迟会受到影响,而且还需要管理(和支付)另外 4 台虚拟机。
  3. 我可以配置我的应用服务器以通过互联网打开数据库连接。我必须使用 SSL 连接以确保安全,并设置一些身份验证和防火墙。我担心 SSL 连接会对性能产生不利影响,除非我使用一些池来保持它们处于活动状态。
  4. 我可以实现 Web 服务,并让应用服务器通过这些 Web 服务获取所需的数据。通信必须采用 HTTPS。这似乎比选项 3 更简洁,但同时也要复杂得多。坦率地说,我不确定这是否值得。

您会推荐什么解决方案?还有其他想法吗?

谢谢

答案1

亚马逊 VPC目前不提供连接多个 VPC 的方法 - 您没有错过任何东西。

如果你决定使用 VPN 路由,有几篇文章介绍如何在 VPC 之间进行设置 - 其中一个利用IPsec和另一个OpenVPN

我实际上建议使用 SSH 隧道,并将端口重定向从应用服务器重定向到数据库服务器。您可以使用以下工具自动SSH确保 SSH 隧道始终处于打开状态。这样可以避免每个数据库连接 SSL 协商的开销。

相关内容