【发布时间】:2020-12-13 22:16:30
【问题描述】:
我想了解对 Terraform 等工具的需求。当我们确实有可用的 Cloudformation 模板并且可以使用该模板创建/更新所有 AWS 服务时,使用 Terraform 之类的服务有什么意义。 请提出建议。
【问题讨论】:
标签: amazon-web-services terraform amazon-cloudformation
我想了解对 Terraform 等工具的需求。当我们确实有可用的 Cloudformation 模板并且可以使用该模板创建/更新所有 AWS 服务时,使用 Terraform 之类的服务有什么意义。 请提出建议。
【问题讨论】:
标签: amazon-web-services terraform amazon-cloudformation
CloudFormation (CFN) 和 Terraform (CF) 都是基础架构即代码 (IaC) 开发工具。
但是,CFN 仅适用于 AWS。您不能将它与 Azure、GCP 或 AWS 生态系统之外的任何其他东西一起使用。相比之下,TF 与云无关。您不仅可以在多个云提供商之间使用它,还可以与非云产品一起使用,例如 docker、各种数据库,甚至可以根据需要使用多米诺比萨。
所以 TF 的主要优势在于,一旦您只学习一次,您就可以将其应用到多个云提供商。 CFN 只在 AWS 中有用,一旦你停止使用 CFN,你必须学习一些新的东西才能与其他云一起工作。
TF 和 CFN 的工作方式也有所不同。两者都有自己的长处和周末。例如:
当您使用 CFN 进行部署时,可以在 AWS 的一个中心位置查看所有资源以及模板的源代码。而 TF 则没有这样的地方。如果你登录 AWS 控制台,你不知道 TF 创建了什么,使用的源代码是什么等。
TF 有循环和复杂的数据结构和条件,而 CFN 没有。
CFN 有创建策略和更新策略,TF 没有。
您可以使用 CFN 策略和 IAM 策略控制对 CFN 的访问。您不能对 TF 做同样的事情,因为它“存在”在 AWS 之外。
【讨论】:
您可能会选择 Terraform 而不是 CloudFormation 的原因有几个:
【讨论】: