如何将 Web 服务器放置在 AWS 的私有子网中,并通过端口 80 向外界开放

如何将 Web 服务器放置在 AWS 的私有子网中,并通过端口 80 向外界开放

我正在尝试设置高可用性 AWS Magento 部署。这里有一个参考部署:http://docs.aws.amazon.com/quickstart/latest/magento/architecture.html

基于此,我想构建自己的,并且我喜欢他的想法,其中只有 NAT 实例位于公共子网中。

RDS 实例和 Web 服务器均位于私有子网中的 NAT 后面。我发现这与我迄今为止的大部分理解不同,即 Web 服务器必须位于公共子网中才能从 Internet 访问。

我所缺少的是如何配置在公共子网中运行的 NAT 实例,以将端口 80/443 转发到私有子网中 NAT 后面的相应 Web 服务器。我不相信这可以仅通过 NAT 实例上的安全组来完成。

答案1

通常情况下,您不会将 NAT 实例(实际上更准确地说是 PAT(端口地址转换,NAT 的一个子集)实例)用于此目的。NAT 实例的存在是为了向私有子网上的实例提供对 Internet 和大多数 AWS 服务(例如 SQS 或 SNS)的出站访问 - 由私有子网上的实例(根据定义,只有私有 IP 地址)发起的出站请求流量通过 NAT 实例的公共 IP 地址进行伪装。这是可能的通过 iptables 或在 NAT 实例上运行反向代理来配置 NAT 实例的静态端口映射或更复杂的内部服务访问,但这不是典型的配置。

链接文档的图 2 显示了通过互联网访问 Web 服务器的情况。部署在公共子网中的 Elastic Load Balancer 具有公共 IP 地址和私有 IP 地址。它在公共端接受来自互联网的流量,并将其转发到私有端的 Web 服务器。

ELB 提供从外部到内部所有实例的单一逻辑访问点,并且不会将流量转发到它认为不“健康”的实例。

答案2

相关内容