AWS CDK vs Terraform: Qual Ferramenta de IaC?
O AWS CDK define infraestrutura AWS em linguagens de programação reais e sintetiza CloudFormation; o Terraform usa HCL declarativo em muitos providers e clouds.
O CDK permite escrever infraestrutura AWS em TypeScript, Python ou outras linguagens, usando loops, abstrações e constructs, e então sintetiza CloudFormation por baixo dos panos, profundamente nativo à AWS. O Terraform usa HCL declarativo com um vasto ecossistema de providers que abrange AWS, GCP, Azure e SaaS, com seu próprio modelo de state. O CDK favorece a autoria AWS nativa em linguagem; o Terraform favorece a amplitude declarativa multi-cloud.
| AWS CDK | Terraform | |
|---|---|---|
| Estilo | Imperativo (código real) | Declarativo (HCL) |
| Escopo | AWS (CloudFormation) | Multi-cloud + SaaS |
| Abstração | Constructs, recursos de linguagem | Módulos |
| State | Gerenciado pelo CloudFormation | State do Terraform |
| Melhor para | Equipes apenas AWS que priorizam código | Multi-cloud, declarativo |
Caso de uso e escopo
O CDK se encaixa em equipes apenas AWS que preferem linguagens de programação reais, constructs reutilizáveis e state gerenciado pelo CloudFormation. O Terraform se encaixa em infraestrutura multi-cloud ou que abrange SaaS e em equipes que preferem HCL declarativo com um enorme ecossistema de providers. O CDK se apoia na AWS; o Terraform abrange providers e é agnóstico de cloud.
No CI
Ambos executam plan/diff e apply a partir do CI usando OIDC para autenticação AWS sem chaves; proteja o apply com revisão. Qualquer um roda em runners gerenciados, onde runners mais rápidos encurtam as etapas de synth/plan e apply.
O veredito
Apenas AWS e preferindo linguagens de programação reais e constructs: AWS CDK. Multi-cloud, abrangendo SaaS ou com preferência por HCL declarativo: Terraform. O CDK é excelente para equipes AWS que priorizam código; o Terraform é a escolha mais ampla e agnóstica de cloud.