CloudFormation: a AWS declarada em código

CloudFormation: a AWS declarada em código

Robson Rabelo - 13 de julho de 2026 - 0 visualizações

Stacks com rollback atômico, change sets e drift detection, o CDK que compila TypeScript para template, e a resposta honesta para o duelo com o Terraform.

Já defendemos a tese geral da infraestrutura como código: ambiente clicado é ambiente irreproduzível. Este artigo desce ao capítulo AWS da história: o CloudFormation, a ferramenta nativa da casa, e a família que cresceu em volta dele.

O modelo: stacks que a AWS reconcilia

Você descreve os recursos num template (YAML/JSON) e os entrega ao CloudFormation, que cria, atualiza e destrói tudo como uma unidade chamada stack (docs.aws.amazon.com/cloudformation):

Resources:
  FilaPedidos:
    Type: AWS::SQS::Queue
    Properties:
      QueueName: pedidos
      RedrivePolicy:
        deadLetterTargetArn: !GetAtt FilaPedidosDLQ.Arn
        maxReceiveCount: 5

  FilaPedidosDLQ:
    Type: AWS::SQS::Queue
    Properties:
      QueueName: pedidos-dlq

(A DLQ desde o dia um, declarada.) O que o modelo de stacks compra:

  • Atomicidade com rollback: a atualização falhou no recurso 7 de 12? O CloudFormation desfaz tudo e volta ao estado anterior. É a rede de segurança que scripts imperativos não têm.
  • Change sets: antes de aplicar, um diff do que será criado/alterado/destruído, o plan da casa, revisável em PR.
  • Detecção de drift: alguém mexeu no console? O drift detection aponta o desvio entre o template e a realidade.
  • Sem estado para guardar: diferente do Terraform, o estado vive na própria AWS: um arquivo crítico a menos para proteger.

O pulo do gato moderno: CDK

Escrever YAML gigante cansa. O CDK (Cloud Development Kit) deixa você declarar a mesma infraestrutura em TypeScript/Python, com loops, funções e abstrações de alto nível, e compila para CloudFormation:

const fila = new sqs.Queue(this, "Pedidos", {
  deadLetterQueue: { queue: dlq, maxReceiveCount: 5 },
});

new lambda.Function(this, "Processador", {
  runtime: lambda.Runtime.NODEJS_22_X,
  handler: "processar.handler",
  code: lambda.Code.fromAsset("dist"),
  events: [new eventsources.SqsEventSource(fila)],
});

Duas construções, e o CDK gera a fila, a Lambda, as permissões IAM mínimas entre elas e o gatilho: os constructs de alto nível embutem as boas práticas que em YAML puro são 80 linhas fáceis de errar. Para times que já vivem em TypeScript, é a porta de entrada mais produtiva para IaC na AWS.

A família CloudFormation e a escolha vs Terraform

CloudFormation ou Terraform? (a pergunta que sempre vem)

Os dois são maduros; a escolha é de contexto:

  • Só AWS, time de devs (não de infra), muito serverless: CDK/CloudFormation. Rollback nativo, sem estado para gerenciar, constructs aceleram, e o suporte a recurso novo da AWS chega primeiro.
  • Multi-provedor (AWS + Cloudflare + Datadog + ...), time de plataforma, padrão já estabelecido: Terraform/OpenTofu. Um fluxo só para tudo, ecossistema de módulos gigante, e o que já mostramos na série de cloud.
  • Os dois convivem com fronteiras claras (rede base em Terraform, aplicações serverless em CDK) melhor do que uma guerra santa interna. Registre a escolha num ADR e siga.

O que não muda em nenhum caso: template no git, mudança por PR, aplicação pela esteira. A ferramenta é detalhe; a disciplina é o valor.

Os tropeços de quem começa

  1. A stack monolito: todo o ambiente numa stack só = qualquer mudança arrisca tudo, e o limite de recursos chega rápido. Separe por ciclo de vida: rede, dados, aplicação.
  2. Recursos com estado dentro de stacks voláteis: um cfn delete distraído leva o banco junto. DeletionPolicy: Retain em tudo que guarda dado, e backups testados.
  3. Misturar console e código: o drift vira rotina e a confiança no template morre. Depois de codificar, o console vira leitura.
  4. Ignorar os limites de update: alguns recursos são substituídos (destruídos e recriados!) em certas mudanças. O change set avisa; leia antes de aprovar.

Colocar a AWS inteira em código (CDK ou Terraform, com a esteira e as fronteiras certas) é parte do nosso serviço de Cloud e Infraestrutura.

Quantos recursos da sua conta AWS nasceram de cliques? O drift detection conta. Pergunte à IA da Rabelo Digital, aqui no canto da tela, por onde começar a codificação. Sem formulário, sem espera.


Leia também

Compartilhar:

Deixe um Comentário

Categorias

Posts Recentes