Skip to content
Latchkey

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 CDKTerraform
EstiloImperativo (código real)Declarativo (HCL)
EscopoAWS (CloudFormation)Multi-cloud + SaaS
AbstraçãoConstructs, recursos de linguagemMódulos
StateGerenciado pelo CloudFormationState do Terraform
Melhor paraEquipes apenas AWS que priorizam códigoMulti-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.

Guias relacionados