关于使用一个 VPC 与多个用于应用程序托管的良好实践,我似乎找不到任何具体的指导。该链接涉及该主题,但已经很老了,并没有真正提供答案。
我目前正在将由大约 50 个应用程序和两个数据库场(SQL Server 和 Oracle)组成的传统托管环境迁移到 AWS;总资产约为 250 台 Windows 服务器。目前,每个应用程序基本上都位于其自己的 /24 子网上。
我得到指导,每个应用程序和数据库场都应该位于自己的 AWS 账户和 VPC 中,我不确定这种方法是否明智;尤其是从数据库中分离应用程序的部分。
我不太担心的帐户,因为这更像是一个计费问题。但就 VPC 而言,我试图理解说之间的区别:
- 在 1 个 VPC 内复制整个环境,而不是
- 引入 50 个 VPC 来托管相同数量的应用程序/服务器。
在(1)和(2)之间做出决定时应该考虑什么,或者在中间做出一些妥协。我查看了 AWS 文档,并没有真正找到关于这个主题的任何明确建议。
在我看来,主要区别在于网络流量都是 VPC 内部与 VPC 之间的流量。这表示:
- 现在有额外的成本,因为 VPC 间的流量成本和 VPC 内的流量没有。
- 还有一些额外的复杂性在于需要选择、设置和管理 VPC 间机制(例如对等或中转网关)。
但是以上都不是以一种或另一种方式做事的明确理由;例如,虽然 50 个 VPC 相当多,但所讨论的数字完全在 Peering 的限制范围内。
还有什么我应该考虑的吗?
- Intra vs. Inter VPC 流量等的性能特征如何?
其他注意事项:
- 必须跨 VPC 管理 CIDR 块以避免冲突。
- Peering 的最大 MTU 为 1500 字节
- 默认情况下,VPC 间流量未加密。
- DNS 并发症。
谢谢你的帮助。
查看AWS Landing Zone和AWS Control Tower以获得最佳实践。
我已经设计了一些企业 AWS 网络,当您要求的区域有很多工作负载时,这是我的一般建议(登陆区设计的完整建议是我为客户举办的为期两天的研讨会)
这为您提供了良好的隔离并降低了您的爆炸半径,但您需要良好的自动化,因为您将拥有 150 个帐户。账户只是计费和 VPC 的容器。是的,您需要为带宽支付更多费用。
为了降低带宽成本,另一种选择是在一个 VPC 中提供一切。这使得隔离、控制和爆炸半径成为问题。
此外,对于我的产品,我使用一个单独的、高度锁定的帐户来备份 prod env。(RDS、S3 等)以及运行 prod 的不同区域。锁定帐户中的灾难恢复测试每 15 天进行一次,以确保备份正常工作!