Terraform VS. CloudFormation

CloudFormationAWS 原生的 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 PolicyEvent Trigger

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

參考資料