一个 VPC 中需要多少个子网

How many subnets required in a VPC

我希望在符合以下要求的 AWS 虚拟私有云 (VPC) 中实施我的网站:

  1. Web 层将跨多个可用区 (AZ) 使用 Auto Scaling 组。

  2. 数据库将使用多可用区 RDS MySQL,不应 public 可访问。

所需的最少子网数量是多少?

我假设一个子网 = 一个可用区。话虽如此,我将需要 2 个子网用于 RDS 实例,一个用于我的 Web 层,这可能必须位于 public 个子网中?所以总共最少 3 个?

3个子网没有要求。

如果你把 2 个子网放在不同的 AZ 中,1 个是 public,1 个是私有的,也可以相互通信,因为在 1 个 VPC 中,多伙伴实例可以相互诽谤和不同.

但是,如果您像您所说的那样将 3 个子网放在不同的 AZ 中,那么对于网络服务器的安全性和可访问性会更好。

但是,如果您像您所说的那样将 3 个子网放在不同的 AZ 中,那么对于网络服务器的安全性和可访问性会更好。

您有两个选择:

  • Public 子网 中执行所有操作,使用安全组保护您的数据库,或
  • 使用Public & 私有子网

如果这两个选项,您需要:

  • 亚马逊 VPC
  • 互联网网关(将 VPC 连接到互联网)
  • 弹性负载均衡器
  • Amazon EC2 实例的 Auto Scaling 组 运行 您的 Web 层
  • 一个 Amazon RDS 多可用区数据库 -- 您已表示偏好 MySQL

此外,您将创建三个安全组:

  • A 负载均衡器安全组,允许来自 Internet (0.0.0.0/0) 的 HTTP(端口 80)和推测的 HTTPS(端口 443)的入站流量
  • A Web 层安全组,允许相同端口上来自负载均衡器安全组的入站流量
  • A 数据库安全组,允许来自端口 3306 (MySQL)
  • 上的 Web 层安全组的入站流量

选项 1:在 public 个子网中执行所有操作

在此选项中,您可以将所有服务放入 Public 子网(定义为通过 Internet 网关连接到 Internet 的子网)。 您希望实施多可用区解决方案,因此每个可用区需要一个子网。如果您选择使用两个可用区,这意味着您将需要两个子网。 (如果您所在的地区可用,您可以选择使用两个以上 AZs/subnets。)

在两个子网中部署您的负载均衡器。创建您的 Auto Scaling 组 以使用这两个子网。创建跨两个子网的 Amazon RDS 数据库子网组 以供多可用区数据库使用,并将数据库启动到该数据库子网组。

安全组将确保只有 Load Balancer 暴露在 Internet 上。其他任何东西都public无法访问。

选项 2:使用 Public 和私有子网

有些人更喜欢使用私有子网来确保资源不会暴露在 Internet 上。这主要是为了与没有安全组概念的传统本地架构保持兼容。

此选项将涉及:

  • A Public Subnet in each AZ: Put your Load Balancer in these subnets
  • 每个 AZ 中的 私有子网:将您的 Web Tier Auto Scaling 组和您的数据库放在这些子网中(通过 DB 子网组定义)
  • 使用与选项 1
  • 相同的安全组