Skip to content
Latchkey

AWS CDK vs CloudFormation: código vs templates

O CDK permite escrever infraestrutura AWS em uma linguagem real que sintetiza para CloudFormation; o CloudFormation é o próprio motor de templates por baixo.

O CloudFormation provisiona infraestrutura AWS a partir de templates declarativos em YAML/JSON com estado gerenciado e change sets. O AWS CDK permite expressar a mesma infraestrutura em TypeScript, Python ou Java usando constructs de alto nível que sintetizam templates CloudFormation - então o CDK é uma camada de desenvolvedor sobre o CloudFormation.

AWS CDKCloudFormation
AutoriaLinguagens reais + constructsTemplates YAML / JSON
AbstraçãoAlta (constructs L2/L3)Recursos crus
Por baixo dos panosSintetiza CFNNativo
ReusoFunções, pacotes, classesNested stacks, módulos
Melhor paraDevs querendo IaC em códigoTemplates simples/explícitos

No CI

O CDK reduz drasticamente o boilerplate - constructs de alto nível conectam padrões sensatos - e os pipelines o tratam como um build normal que roda cdk synth e depois deploy. O CloudFormation cru é mais verboso, mas totalmente explícito e não tem etapa de synth nem toolchain de linguagem para gerenciar. Como o CDK compila para CloudFormation, você pode misturá-los e até cair para recursos crus quando necessário.

Acelere

Faça cache das dependências de linguagem do CDK e rode synth/deploy no CI. O synth e o deploy rodam em runners de CI; managed runners mais rápidos encurtam o build.

O veredito

Quer IaC baseado em código com constructs de alto nível e menos boilerplate: AWS CDK. Quer templates explícitos sem toolchain de linguagem: CloudFormation. O CDK é construído sobre o CloudFormation, então a escolha é de estilo de autoria.

Guias relacionados