Fui acionado com urgência pelo time de FinOps: a curva de custo de DNS da empresa estava numa disparada exponencial havia alguns dias. Alerta vermelho aceso, missão clara — achar o ofensor e estancar a sangria o quanto antes.
Parei tudo e iniciei o troubleshooting padrão de rede: conferi se os query logs das hosted zones estavam habilitados, olhei o volume total de registros e rodei teste de resolução a partir de múltiplos pontos. A princípio, nada de anormal na resolução das zonas públicas. Foi só ao aprofundar nos logs do CloudWatch via Logs Insights que percebi que o buraco era bem mais embaixo.
O diagnóstico: ataque de DNS Dictionary
A infraestrutura estava sendo alvo de um ataque massivo e distribuído do tipo DNS Dictionary (também chamado de Water Torture ou Random Subdomain Attack). Alguém bastante empenhado em mapear subdomínios e ativos vulneráveis na nossa zona pública estava disparando milhões de consultas por minuto — nomes aleatórios e inexistentes, tipo a1b2c3d4.meudominio.com. O servidor autoritativo do Route 53 respondia certinho com NXDOMAIN.
O problema é que, pra AWS, consulta que retorna NXDOMAIN continua sendo query válida e processada — ou seja, bilhetada normalmente.
A ironia da resiliência: o Route 53 absorveu a pancada inteira sem oscilação de latência, sem degradação, sem downtime. Do ponto de vista de disponibilidade, o serviço se provou uma fortaleza. Se o FinOps não tivesse reportado o desvio financeiro, a aplicação não teria sentido absolutamente nada.
Investigando no CloudWatch Logs Insights
Pra confirmar a tese do ataque e isolar o padrão de tráfego, usei duas queries de rotina:
fields @timestamp, responseCode, queryName | filter responseCode = 'NXDOMAIN' | stats count(*) as total_queries by queryName | sort total_queries desc | limit 20
fields @timestamp, queryName, clientIp | stats count(*) as query_count by bin(5m) | sort @timestamp desc
A solução arquitetural: o truque do wildcard + ALIAS
Com a torneira aberta, a prioridade era parar a cobrança sem impactar a resolução dos subdomínios legítimos que já existiam na zona. Estudando a fundo o modelo de bilhetagem do Route 53, cheguei a uma saída elegante: consulta que casa com um registro e usa mapeamento do tipo ALIAS apontando pra um recurso elegível da AWS — CloudFront, Application Load Balancer, bucket S3 na mesma conta — não é cobrada.
- 01Criamos um registro wildcard (
*.meudominio.com) na hosted zone. - 02Apontamos esse wildcard via ALIAS pra um recurso interno sob nosso controle, que responde de forma neutra — sem custo de query.
- 03Validamos o comportamento em ambiente de teste junto com o TAM e o engenheiro de soluções da AWS, antes de subir em produção.
Com isso, o algoritmo de decisão do Route 53 muda de fluxo:
api.meudominio.com
Bate num registro específico já existente na zona. Route 53 resolve normalmente, sem alteração nenhuma de comportamento.
a1b2c3d4.meudominio.com
Em vez de cair na árvore inteira e responder NXDOMAIN cobrado, casa direto com o wildcard — que está em ALIAS pra um recurso elegível. Consulta deixa de ser bilhetada.
Alinhei a arquitetura com o TAM e o engenheiro de soluções da AWS, validamos em teste e aplicamos em produção depois do aval da gestão. Em poucas horas, a volumetria de requisições pagas despencou e o faturamento do Route 53 voltou direto ao baseline.
Lições aprendidas
-
01
A resiliência do Route 53 é absurda
Segurou 30 bilhões de requisições sem piscar — fortaleza em disponibilidade, mas que exige governança de custo em paralelo.
-
02
FinOps e engenharia andam juntos
Visibilidade financeira também é métrica de observabilidade de segurança e infraestrutura.
-
03
Observabilidade dedicada a DNS é fundamental
Depois do incidente, subi um dashboard monitorando volume de NXDOMAIN com alarme de anomaly detection pra nunca mais ser surpreendido no fim do mês.
-
04
Dominar a arquitetura economiza dinheiro de verdade
Entender os detalhes finos da documentação e da regra de bilhetagem da AWS foi o que salvou a conta da empresa.
O fator psicológico da crise
No dia a dia de liderança e engenharia, é fácil entrar em pânico quando você se depara com uma cobrança de cinco dígitos acumulando a cada hora. Nesses momentos, gosto de lembrar de uma cena de Lost em que o Dr. Jack Shephard explica como lida com o medo: ele dá um espaço curto e contado pra sentir o medo — e, no segundo seguinte, volta o foco pra resolver o problema.
Crise financeira ou operacional pede calma, método e capacidade de análise. Aceitar o susto por alguns segundos, respirar e voltar o foco pra solução é o que separa reação de pânico de decisão de alto impacto.
Para quem quer se aprofundar
- AWS Route 53 Pricing — página oficial, com o modelo de bilhetagem de queries e registros ALIAS.
- CloudWatch Logs Insights — documentação oficial da sintaxe de query usada na investigação.
Novo post toda semana sobre redes, cloud, IaC e liderança técnica.
Ver todos os posts