本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用地形作為 IaC 工具 AWS 雲端
HashiCorp Terraform
開發人員使用稱為 Terraform
使用地形的優點:
-
地形是平台不可知論者。您可以將其與任何雲服務提供商一起使用。您可以在其他許多雲端提供者之間設定、測試 AWS 和部署基礎結構。如果您的組織使用多個雲端供應商,Terraform 可以是單一、統一且一致的解決方案來管理雲端基礎架構。如需有關多雲端支援的詳細資訊,請參閱 Terraform 網站上的多雲端佈建
。 -
地形是無代理的。它不需要在受管理的基礎架構上安裝任何軟件。
-
Terraform 模塊是重用代碼並堅持不要重複自己(DRY)原則的強大方法。例如,您可能有一個應用程式的特定組態,其中包含 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體、Amazon Elastic Block Store (Amazon EBS) 磁碟區,以及其他邏輯分組的資源。如果您需要建立此組態或應用程式的多個副本,您可以將資源封裝到 Terraform 模組中,並建立模組的多個執行個體,而不必多次複製整個程式碼。這些模組可協助您組織、封裝及重複使用組態。它們還提供了一致性並確保最佳實踐。
-
Terraform 能夠檢測和管理基礎架構中的漂移
(Terraform 博客文章)。例如,如果 Terraform 管理的資源在 Terraform 之外進行修改,您可以使用 Terraform CLI 偵測漂移並將其還原到所需的狀態。
使用地形的缺點:
-
可能無法使用與任何雲端供應商相關的新功能或新資源的 Support 援。
-
地形不會自動管理您的狀態。 AWS CloudFormation依預設,它存放在本機檔案中,但您也可以將其遠端存放在 Amazon S3 儲存貯
體或透過 Terraform 企業版。 -
Terraform 狀態可以包含敏感資料,例如資料庫密碼,這些資料庫密碼可能會造成安全性考量。最佳做法是加密狀態檔案、從遠端儲存、在其上啟用檔案版本控制,以及使用最少權限進行讀取和寫入作業。如需詳細資訊,請參閱使用 AWS Secrets Manager 和 HashiCorp Terraform 保護敏感資料。
-
2023 年 8 月,哈希科普宣布將不再根據 Mozilla 公共許可證將其作為開源許可。
相反,它現在根據業務來源許可證獲得許可 。