OpenTofu na AWS: do Zero à Infraestrutura Real
Autor: Andrew Ramires

7. Resiliência e Alta Disponibilidade

Nesta fase, vamos colocar em prática dois conceitos fundamentais de arquiteturas distribuídas: observabilidade e resiliência.

⚡ Visão rápida: com três instâncias servindo a mesma página, não há como saber pelo browser qual máquina respondeu. Vamos resolver isso com o hostname — e depois destruir uma instância manualmente para ver se o serviço sobrevive.

O problema

Com o Load Balancer distribuindo o tráfego entre três instâncias, toda requisição pode chegar a uma máquina diferente. A página HTML é idêntica nas três — não há como distinguir quem respondeu.

Isso cria dois desafios práticos:

  • Observabilidade: como saber qual instância está servindo cada requisição?
  • Resiliência: o que acontece se uma instância falhar? O serviço para?

O que vamos fazer

Usuário → ALB → instância [0]  →  página: "Servido por: i-0abc123..."
               → instância [1]  →  página: "Servido por: i-0def456..."
               → instância [2]  →  página: "Servido por: i-0ghi789..."
  • 7.1: modificar o user_data para injetar o ID da instância na página HTML no boot;
  • 7.2: destruir uma instância manualmente pelo painel da AWS e verificar que o serviço continua, depois usar o OpenTofu para recuperar a infraestrutura.

Próximo passo: