Terraform VS. CloudFormation

CloudFormation 是 AWS 原生的 infrastructure as code 服務,可以透過 JSON、YAML 格式佈署 AWS 服務,與 Terraform 是相同性質的 IaC 工具,在使用前可以先參考兩者的比較。

terraform-cloudformation-comparison

差異比較表

比較項目 Terraform CloudFormation
支援平台 非常多 AWS
原廠支援 HashiCorp AWS
雲服務支援 依靠社群,服務支援較慢 原生雲服務支援較快
語言 HCL YAML、JSON
現有 Legacy 移轉 可匯入現有資源 必須重建
Rollback 無 有
執行差異比對 有 有
Cross Regions 變數實現 StackSet
Deployment Locking DynamoDB 內建
Metadata State 支援多種類型 S3
Destry Protection 有 有
模組化概念 Module Registry Stack
UI CLI CLI、Web Console
授權 開源軟體 / 企業版 Free
其他 可支援 CloudFormation Stack Policy、Event Trigger

Terraform 和 CloudFormation 兩者工具在功能上算是互補,擇一都會有部分的缺陷必須接受,兩者共用則可以參考「Terraform 和 CloudFormation 組合技的技巧」但是帶來的學習成本也是需要考量的點。

參考資料