本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用 Terraform 作为 IaC 的工具 AWS Cloud
HashiCorp Terraform
开发人员使用一种名为 Terraform
使用 Terraform 的优点:
-
Terraform 与平台无关。您可以将其与任何云服务提供商一起使用。您可以跨云提供商和许多其他云提供商配置、测试 AWS 和部署基础架构。如果您的组织使用多个云提供商,Terraform 可以成为管理云基础架构的单一、统一、一致的解决方案。有关多云支持的更多信息,请参阅 Terraform 网站上的多云配置
。 -
Terraform 是无代理的。它不需要在托管基础架构上安装任何软件。
-
Terraform 模块是重用代码并坚持自己不要重复 (DRY) 原则的强大方法。例如,您可能为包含亚马逊弹性计算云 (Amazon EC2) 实例、亚马逊弹性块存储 (Amazon EBS) 卷和其他按逻辑分组的资源的应用程序进行了特定的配置。如果您需要创建此配置或应用程序的多个副本,则可以将资源打包到 Terraform 模块中并创建该模块的多个实例,而不必多次复制整个代码。这些模块可以帮助您组织、封装和重用配置。它们还提供一致性并确保最佳实践。
-
Terraform 能够检测和管理基础架构中的偏差
(Terraform 博客文章)。例如,如果在 Terraform 之外修改了 Terraform 管理的资源,则可以使用 Terraform CLI 检测偏差并将其恢复到所需的状态。
使用 Terraform 的缺点:
-
可能不支持与任何云提供商相关的新功能或新资源。
-
Terraform 不会像那样自动管理你的状态。 AWS CloudFormation默认情况下,它存储在本地文件中,但您也可以将其远程存储在 Amazon S3 存储桶
中或通过 Terraform Enter prise。 -
Terraform 状态可能包含敏感数据,例如数据库密码,这可能会带来安全问题。最佳做法是加密状态文件,将其远程存储,对其启用文件版本控制,并使用最低权限对其进行读写操作。有关更多信息,请参阅使用 AWS Secrets Manager 和 HashiCorp Terraform 保护敏感数据。
-
2023年8月,Hashicorp宣布将不再根据 Mozilla
公共许可证获得开源许可。相反,它现在是根据商业来源许可证获得许可 的。