0

我知道一种方法是在公共子网中使用负载均衡器,但对于开发服务器,我们不需要负载均衡器。是否有其他选项可以允许从 Internet 访问私有子网中的应用程序?

如果不是,那么最好的选择是将开发服务器留在公共子网中吗?数据库实例仍将位于私有子网中。

4

1 回答 1

6

私有子网中的 Amazon EC2 实例永远无法从 Internet 直接访问,即使它具有公共 IP 地址。这是因为私有子网没有将子网连接到 Internet 网关的路由表条目。这是有意和期望的。

因此,您的选择是:

  • 将您的实例放在公共子网而不是私有子网中,或者
  • 创建到 VPC 的VPN 连接,以便您可以与 VPC 中的资源(包括私有子网)进行通信,或者
  • 连接到公共子网中的实例并使用端口转发来获取与私有实例的连接(见下文),或者
  • 在公共子网中使用负载均衡器或代理将流量转发到私有子网(一个好处是它模仿了生产设置)

端口转发是一种常用技术,用于为不可直接访问的资源提供专用连接。例如:

  • Public-Instance在公共子网中
  • Private-Instance在私有子网中
  • 通过端口转发SSH 进入Public-Instance,然后建立与Private-Instance
  • 访问本地机器上的资源,它实际上会将请求转发到Private-Instance

示例连接字符串为:

ssh -i pemfile ec2-user@public-instance -L 8000:private-instance:80

发送到本地计算机端口 8000 的任何请求都将转发到Public-Instance,然后转发到private-instance:80。只要 SSH 会话存在,这将继续。

于 2019-03-06T22:10:26.197 回答