【发布时间】:2018-07-01 23:40:52
【问题描述】:
我是 3 层 Web 应用程序的 AWS VPC 设置新手。我创建了一个子网为 10.0.0.0/16 的 VPC,在 AWS VPC 中为 3 层 Web 应用程序进行子网分段的最佳最佳实践是什么?我有 ELB,有 2 个 EC2 实例,后端有 RDS 和 S3。
请指教!!谢谢。
【问题讨论】:
标签: amazon-web-services amazon-ec2
我是 3 层 Web 应用程序的 AWS VPC 设置新手。我创建了一个子网为 10.0.0.0/16 的 VPC,在 AWS VPC 中为 3 层 Web 应用程序进行子网分段的最佳最佳实践是什么?我有 ELB,有 2 个 EC2 实例,后端有 RDS 和 S3。
请指教!!谢谢。
【问题讨论】:
标签: amazon-web-services amazon-ec2
你会发现一个常见的模式是:
10.0.0.0/16,它提供所有 10.0.x.x 地址)10.0.5.0/24,它提供所有 10.0.5.x 地址)10.0.6.0/23,它提供所有10.0.6.x 和10.0.7.x)——这更大,因为大多数资源通常都进入私有子网,而且这样做很痛苦后来变大了当然,您可以在允许的范围内将上述这些尺寸更改为您想要的任何尺寸。
与其创建一个三层结构,不如考虑一个二层结构:
除非您是超级偏执狂,否则无需将应用程序和数据库放在单独的私有子网中。您可以使用安全组来配置额外的安全层,而无需使用单独的子网。这意味着更少的 IP 地址被浪费(例如在部分使用的子网中)。
当然,您可以对所有事情都使用安全组,并且只使用一层,但是使用私有子网可以提供额外的安全配置保证。
【讨论】:
我们的做法:
我们创建一个 /16 的 VPC,例如172.20.0.0/16。不要使用默认 VPC。
然后我们为每个应用程序“层”创建一组子网。
公共 - 任何具有公共 IP 的内容。负载均衡器和 NAT 网关几乎是这里唯一的东西。
Web DMZ - Web 服务器位于此处。任何作为负载均衡器目标的东西。
数据 - 负责存储和检索数据的资源。 RDS 实例、EC2 数据库服务器、ElastiCacahe 实例
私有 - 用于真正与 Internet 流量隔离的资源。管理和报告。您的环境中可能不需要它。
子网都是 /24。每个可用区一个子网。所以会有 3 个公共子网、3 个 Web DMZ 子网等。
网络 ACL 控制子网之间的流量。公共子网可以与 Web DMZ 通信。 Web DMZ 可以与 Data 对话。数据子网可以相互通信以促进集群。私有子网不能与任何人交谈。
我有意将网络 ACL 中的内容保持得很粗糙。我不限制特定的端口/应用程序。我们在安全组级别执行此操作。
专业提示:在 /20 边界上对齐子网组以简化您的网络 ACL 规则。您可以只列出一个包含所有数据子网的 /20,而不是单独列出每个数据子网。
有些人会认为这种分离程度是过度的。但是我发现它很有用,因为它迫使人们思考应用程序的逻辑结构。它可以防止有人在安全组中做一些愚蠢的事情。它不是防弹的,但它是第二层防御。此外,我们有时会从希望看到传统结构的客户那里获得安全审计,就像您在本地网络中发现的那样。
【讨论】: