roc*_*cer 3 subnet amazon-web-services amazon-vpc sysadmin
我目前每个集群(stg、prd、tst、misc)都有每个 VPC,标准集群(stg、prd)有以下子网:
VPC(stg,prd) ?10.100.0.0/16 az-1 | ?10.100.0.0/20 elb | ?10.100.16.0/20 elb-int | ?10.100.32.0/20 svc | ?10.100.48.0/20 svc | ?10.100.64.0/20 分贝 | ?10.100.80.0/20 dmz | ?10.100.96.0/20 <保留> | ? ... | ?10.1-0.240.0/20 <保留> ?10.101.0.0/16 az-2 | ?10.101.0.0/20 elb | ?10.101.16.0/20 elb-int | ?10.101.32.0/20 svc | ?10.101.48.0/20 svc | ?10.101.64.0/20 分贝 | ?10.101.80.0/20 dmz | ?10.101.96.0/20 <保留> | ? ... | ?10.101.240.0/20 <保留> ?10.102.0.0/16 az-3 ?10.102.0.0/20 elb ?10.102.16.0/20 elb-int ?10.102.32.0/20 svc ?10.102.48.0/20 svc ?10.102.64.0/20 分贝 ?10.102.80.0/20 dmz ?10.102.96.0/20 <保留> ? ... ?10.102.240.0/20 <保留>
我知道这个问题很广泛,比如“这取决于情况”有点问题。但是我在互联网上搜索并没有找到任何明智的指导方针。
所以我问这个问题是为了了解系统管理员如何为其子网选择策略。请分享您的观点,如果可以,请发表一个简短的声明,解释您选择这种方法的原因。
恐怕 ServerFault 不是进行调查或征求基于意见的答案的地方。
无论如何,您的设置似乎过于复杂。
因为在 AWS 安全和防火墙中主要使用安全组完成,所以如果您有 6 个子网层(如您在问题中描述的那样)或每个 VPC只有 2个子网层( Public 和 Private )并不重要。
如果 SG 规则允许,公共子网中的资源具有公共/弹性 IP,并且可以从 Internet 访问
例如 - 公共 ELB/ALB、跳转主机等
私有子网中的资源无法从外部访问并使用 NAT 进行通话
例如 - RDS 集群、ECS 集群、Web 服务器(隐藏在 ELB 后面)等。
或者,您可以拥有没有互联网访问权限的私有子网- 这有时用于数据库 (RDS),但几乎同样经常将它们简单地放入普通的私有子网中。
当然,您的公共和私有子网层应该跨越几个可用区以实现高可用性,但不要过度。最多使用 2 或 3 个可用区,这通常就足够了,即使在某些地区您可以拥有更多可用区。
当然,从技术上讲,您不能跨AZ跨越子网,但您可以在 AZ“a”中使用 priv-a 172.31.0.0/24,在 AZ“b”中使用 priv-b 172.31.1.0/24 并在两者之间部署 ELB 和 ASG并将其视为一个。
请注意,以上所有内容都适用于每个 VPC - 通常您会有多个 VPC,例如。每个阶段(开发、测试、..)一个,甚至每个项目有多个 AWS 账户(例如dev和prod),以便在生产和开发/测试工作负载之间实现更大的分离。
当然,这些都不是硬性规定。某些客户端需要每个 VPC 有更多子网层或更多可用区,但这些是例外。
对于大多数 VPC,跨 3 个可用区的公共 + 私有子网完全没问题。
请记住 -安全组是您的朋友 :)