Terraform VS. CloudFormation
CloudFormation 是 AWS 原生的 infrastructure as code 服務,可以透過 JSON、YAML 格式佈署 AWS 服務,與 Terraform 是相同性質的 IaC 工具,在使用前可以先參考兩者的比較。
差異比較表
比較項目 | 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 組合技的技巧」但是帶來的學習成本也是需要考量的點。