AWS:在面向 ALB 的互联网后面的私有子网中部署 Web 服务器

AWS: Deploying Web Servers in a private subnet behind an internet facing ALB

从成本优化的角度来看,在私有子网而不是 public 子网中部署 Web 服务器是否有任何好处? (在面向互联网的 ALB 后面)

这两种方法的优缺点是什么?

将您的 Web 服务器放在私有子网中可能比将它们放在 public 中更昂贵(具体取决于服务器的功能)。原因是在私有子网中,他们将无法访问 互联网或任何 AWS 服务。

因此,如果他们需要使用某些外部 API 或访问某些 AWS 服务,您将需要使用 NAT 网关 and/or VPC 端点,这些端点 不是免费的(S3 和 DynamoDB 的端点除外)。

但是将所有内容都保存在 public 子网中存在 安全风险 ,许多人更愿意将服务器保存在私有子网中以遵循良好做法并且更安全然后更便宜.

简答 - 否

一个会贵一点的情况:

如果您需要从您的服务器访问 public 互联网,您需要为 NAT 网关或 NAT 实例支付一些费用。 NAT gateway vs NAT instance.

何时使用Public子网

  1. 您不打算使用任何 ALB 或自动缩放,而是想将弹性 IP 直接附加到您的单个实例。
  2. 您希望从您的 ec2 访问互联网,并且不支付 NAT

何时使用私有子网

  1. 如果您打算使用 ALB:您的应用程序应该始终有 1 个入口点,让它通过 public 常见的 ALB,不要冒险,允许直接 public 访问您的服务。对于 ssh 或其他直接连接,您可以设置 bastion host
  2. 任何不应从 public 互联网访问的服务最好放在私有子网中,并通过私有网络与其他服务通信,这在 vpc 内部通信时速度更快、成本更低,可以设置好安全组。