Amazon web services 您是否应该在AWS中为每个区域或可用区域创建独立的地形配置?

Amazon web services 您是否应该在AWS中为每个区域或可用区域创建独立的地形配置?,amazon-web-services,terraform,Amazon Web Services,Terraform,我只是在学习Terraform并包含AWS中的每个区域(以及每个区域的多个可用性区域)。作为旁注,计划配置花费了3分钟 我得到的反馈是,最好根据系统的故障情况创建独立的地形配置,因此,如果一个区域出现故障,您可以在另一个区域独立于故障区域运行地形配置 但我想知道,如果可用性区域可能失败,那么在AWS中为每个可用性区域创建1个地形配置是否更好?假设你覆盖了每个地区和亚利桑那州,你将有100多个独立的地形“项目”,你将分别规划和申请。这是大型地形项目通常的工作方式吗?覆盖多个地区的大型项目的最佳实践

我只是在学习Terraform并包含AWS中的每个区域(以及每个区域的多个可用性区域)。作为旁注,计划配置花费了3分钟

我得到的反馈是,最好根据系统的故障情况创建独立的地形配置,因此,如果一个区域出现故障,您可以在另一个区域独立于故障区域运行地形配置


但我想知道,如果可用性区域可能失败,那么在AWS中为每个可用性区域创建1个地形配置是否更好?假设你覆盖了每个地区和亚利桑那州,你将有100多个独立的地形“项目”,你将分别规划和申请。这是大型地形项目通常的工作方式吗?覆盖多个地区的大型项目的最佳实践是什么?它们通常是如何在地形中管理的?

这完全取决于基础设施的设置方式,但通常每个地区都是

您可以将其按逻辑因子进行拆分,如以下其中一项:

  • 网络(每个专有网络)
  • 应用程序(每个应用程序,例如仅该应用程序或服务使用的负载平衡器或lambda)
  • 业务职能(每个业务部门)
  • 环境(生产vs QA vs开发)
作为代码的基础设施的意义在于使您的生活更轻松,而不是更困难,因此,请花时间规划如何以对您和您的组织有意义的方式组织它

根据经验法则,当您推出配置时,它应该整体运行。您不需要运行多个terraform plan并应用命令来获得工作网络。虽然这会使您在灾难恢复场景中的生活更加轻松,但您不想考虑需要应用哪些配置


请记住,在大型项目中,在提高可重用性的同时,使用将使结构更易于导航。

如何只运行一个terraform计划,而将其划分为多个配置?如何将配置变量从一个terraform配置传递到下一个terraform配置(比如说在全局和区域之间)?举个例子:。有一个
区域。tf
,它包括模块并创建层次结构。当您在此处运行terraform plan时,它实际上会构建两个区域。AZ、服务或您想要设置的任何地方也可以这样做:)