Terraform vs CloudFormation: IaC multi-cloud vs nativo da AWS
O Terraform é IaC multi-cloud com HCL e um ecossistema enorme de providers; o CloudFormation é nativo da AWS, profundamente integrado e com estado gerenciado pela AWS.
O Terraform provisiona infraestrutura em muitas clouds e serviços usando HCL e um vasto registry de providers, com estado que você gerencia. O CloudFormation é o serviço de IaC nativo da AWS - templates em YAML/JSON, estado e drift tratados pela AWS, e integração estreita com recursos da AWS como change sets e stack policies.
| Terraform | CloudFormation | |
|---|---|---|
| Escopo | Multi-cloud + muitos providers | Apenas AWS |
| Linguagem | HCL | YAML / JSON |
| Estado | Backend autogerenciado | Gerenciado pela AWS |
| Ecossistema | Enorme (registry, módulos) | Nativo da AWS, CDK por cima |
| Melhor para | Multi-cloud, tooling amplo | Empresas totalmente na AWS |
No CI
O Terraform é o padrão quando você abrange várias clouds ou quer um ecossistema rico de módulos, mas você assume o backend de estado e o locking. O CloudFormation é atraente para empresas que usam só AWS - sem estado para gerenciar, change sets nativos, e os recursos mais recentes da AWS costumam chegar primeiro nele. Ambos fazem plan e apply de forma limpa no CI; cuidado com o locking de estado no Terraform e o drift de stack no CloudFormation.
Acelere
Faça cache dos plugins de providers (Terraform) e rode plan/apply no CI com locking. Os downloads de providers e o plan rodam em runners de CI; managed runners mais rápidos encurtam o setup a frio.
O veredito
Multi-cloud ou quer o amplo ecossistema e módulos: Terraform. Totalmente na AWS e quer estado gerenciado com integração nativa: CloudFormation. Escolha pelo escopo de cloud e por quanto do gerenciamento de estado você quer assumir.