Pular para o conteúdo

Tema

Arquiteturas resilientes

Folha de revisão · 6 temas · AWS Solutions Architect Associate

Feita para a véspera. Imprimir esta página tira o menu e as abas.

Alta disponibilidade e tolerância a falhas

É a base do domínio de 26%, e onde nasce a resposta padrão da prova: se o enunciado fala em falha, a alternativa certa quase sempre distribui em mais de uma zona de disponibilidade. Sem saber o que é zona, região e serviço de escopo regional, você não distingue a alternativa que resolve da que só parece resolver.

Como cai: A aplicação precisa continuar disponível se um data center inteiro falhar. O que muda na arquitetura?

Erros comuns

  • Tratar região e zona de disponibilidade como sinônimos. Região é a área geográfica; zona é um ou mais data centers isolados dentro dela. Multi-AZ protege contra falha de data center; multirregião protege contra falha da região inteira.
  • Achar que multirregião é sempre melhor. Custa mais, adiciona latência de replicação e complexidade. A prova pune resposta acima do requisito: se o enunciado fala em falha de AZ, a resposta multirregião está errada.
  • Confundir alta disponibilidade com tolerância a falhas. Alta disponibilidade aceita uma interrupção curta durante o failover; tolerância a falhas não perde nada, e custa bem mais.
  • Esquecer que uma instância EC2 vive em uma única zona. Ela não migra sozinha: o que dá disponibilidade é ter várias, em zonas diferentes, atrás de um balanceador.
  • Achar que S3, DynamoDB e Lambda precisam de configuração para serem resilientes na região. Eles já replicam entre zonas por desenho; o que exige decisão é a proteção entre regiões.
  • Ignorar o modelo de responsabilidade compartilhada. A AWS entrega zonas isoladas; usar mais de uma é trabalho do arquiteto, não acontece por padrão.

Vocabulário

região
— Área geográfica com várias zonas de disponibilidade, como sa-east-1 (São Paulo). Você escolhe a região por latência, custo, serviços disponíveis e exigência legal de onde o dado mora.
zona de disponibilidade
— Um ou mais data centers dentro de uma região, com energia, refrigeração e rede independentes. Separados o bastante para um desastre local não atingir dois; próximos o bastante para replicação síncrona.

Balanceamento de carga e Auto Scaling

Aparece em metade dos cenários do Domínio 2 e reaparece nos de desempenho e custo. A prova cobra três decisões: qual balanceador (a pista está no protocolo e no tipo de roteamento), o que a verificação de integridade faz de fato, e a diferença entre repor capacidade e aumentar capacidade — que é o par Auto Scaling e política de escala.

Como cai: A aplicação precisa suportar picos imprevisíveis e sobreviver à falha de uma instância, com o MENOR custo. O que você desenha?

Erros comuns

  • Escolher NLB para roteamento por caminho ou por cabeçalho. NLB é camada 4: enxerga IP e porta, não URL. Roteamento por conteúdo é ALB.
  • Escolher ALB quando o enunciado pede IP estático, latência ultrabaixa ou milhões de conexões por segundo. Isso é NLB, que ainda suporta protocolos além de HTTP.
  • Achar que o balanceador dá alta disponibilidade sozinho. Ele distribui entre alvos saudáveis; se todos estão na mesma zona, a zona continua sendo o ponto único de falha.
  • Confundir verificação de integridade do balanceador com a do Auto Scaling. A do balanceador tira o alvo da rotação; para o Auto Scaling substituir a instância, o grupo precisa usar o tipo de verificação ELB, não só EC2.
  • Usar escala por agendamento para carga imprevisível, ou escala reativa para pico conhecido. Agendamento é para padrão previsível; rastreamento de alvo é para carga variável.
  • Ignorar o período de estabilização (cooldown) e o aquecimento. Sem eles, o grupo escala em cascata reagindo a métricas de instâncias que ainda nem subiram.

Vocabulário

verificação de integridade
— Teste periódico que o balanceador faz em cada alvo. Ao falhar o limiar configurado, o alvo sai da rotação e deixa de receber tráfego.
grupo de Auto Scaling
— Conjunto de instâncias criado a partir de um modelo de lançamento, com capacidade mínima, desejada e máxima, distribuído pelas sub-redes informadas.

Bancos resilientes: Multi-AZ, réplicas de leitura e tabelas globais

Multi-AZ e réplica de leitura resolvem problemas diferentes e a prova oferece um como distrator do outro em quase todo cenário de banco. Quem sabe que a espera do Multi-AZ não aceita leitura, e que a réplica pode estar atrasada, elimina metade das alternativas antes de pensar no resto.

Como cai: O banco precisa sobreviver à falha de uma zona e aguentar relatórios pesados sem afetar as transações. O que você configura?

Erros comuns

  • Achar que a instância de espera do Multi-AZ atende leitura. Ela não recebe tráfego nenhum; existe para assumir no failover. Quem quer distribuir leitura precisa de réplica de leitura.
  • Usar réplica de leitura como mecanismo de alta disponibilidade. A replicação é assíncrona e a promoção é manual: há atraso possível e não há failover automático.
  • Esquecer que o failover do Multi-AZ troca o registro DNS do endpoint. A aplicação precisa reconectar; conexão presa em cache de DNS é o sintoma clássico.
  • Confundir Aurora réplica com Aurora Global Database. Réplicas ficam na mesma região e podem ser alvo de failover; Global Database replica para outra região, com atraso típico abaixo de um segundo.
  • Achar que tabela global do DynamoDB precisa de configuração de failover. Ela é ativa em todas as regiões escolhidas: escreve-se e lê-se em qualquer uma, com resolução do último escritor em caso de conflito.
  • Tratar backup automático como alta disponibilidade. Backup restaura depois, com tempo parado; disponibilidade é continuar.

Vocabulário

Aurora
— Banco compatível com MySQL e PostgreSQL em que o armazenamento é uma camada compartilhada, com seis cópias em três zonas, separada das instâncias de computação.
tabela global
— Replicação ativa em várias regiões: escreve-se e lê-se em qualquer uma delas, com resolução de conflito pelo último escritor.

Route 53: políticas de roteamento e failover

É a peça que liga duas regiões numa arquitetura, e a prova sempre dá a pista na palavra: 'usuário mais próximo' não é a mesma coisa que 'menor latência', e 'dividir o tráfego para testar' não é a mesma coisa que 'usar o outro se este cair'. Cada uma dessas frases aponta para uma política diferente.

Como cai: A aplicação roda em duas regiões e deve mandar o usuário para a mais rápida, caindo para a outra se ela falhar. O que configurar?

Erros comuns

  • Confundir roteamento por latência com geolocalização. Latência escolhe a região que responde mais rápido para aquele usuário; geolocalização escolhe pelo país ou continente de origem, mesmo que outra fosse mais rápida.
  • Confundir geolocalização com geoproximidade. Geolocalização é regra por local de origem; geoproximidade calcula distância até os recursos e permite deslocar tráfego com um viés (bias).
  • Achar que failover funciona sem verificação de integridade. Sem ela, o Route 53 não sabe que o primário caiu e continua respondendo o mesmo endereço.
  • Esquecer o TTL. Enquanto o registro antigo estiver em cache do resolvedor, o cliente continua indo ao destino que caiu; TTL alto atrasa qualquer failover de DNS.
  • Usar registro CNAME na raiz do domínio. A raiz não aceita CNAME; para apontar a raiz a um recurso da AWS, usa-se o registro de alias.
  • Tratar roteamento multivalor como balanceador. Ele devolve até oito endereços saudáveis e o cliente escolhe; não distribui carga nem verifica capacidade.

Vocabulário

verificação de integridade do Route 53
— Teste periódico, feito de vários pontos do mundo, contra um endereço, um alarme do CloudWatch ou outras verificações combinadas. Registros associados a uma verificação que falha deixam de ser devolvidos.
registro de alias
— Registro exclusivo do Route 53 que aponta para um recurso da AWS (ELB, CloudFront, site em S3, API Gateway) pelo nome do serviço, funciona na raiz da zona e não é cobrado por consulta.

Desacoplamento: SQS, SNS e EventBridge

Desacoplar é a resposta estrutural do Domínio 2: componentes que falham juntos viram componentes que falham sozinhos. A prova testa a escolha entre os três serviços com pistas precisas — 'processar depois' é fila, 'avisar vários' é tópico, 'rotear por conteúdo do evento' é EventBridge — e cobra o que acontece com a mensagem quando o consumidor falha.

Como cai: Picos de pedidos derrubam o serviço de processamento e pedidos se perdem. Como redesenhar para não perder nada?

Erros comuns

  • Achar que fila padrão do SQS garante ordem. Ela é de melhor esforço e pode entregar a mesma mensagem mais de uma vez; ordem estrita e exatamente uma entrega são da fila FIFO.
  • Esquecer que o consumidor precisa apagar a mensagem. Sem a exclusão, ela reaparece quando o tempo de visibilidade expira — que é justamente o que protege contra consumidor que morreu no meio.
  • Usar SNS quando o requisito é absorver pico. Tópico entrega e esquece; se o assinante estiver fora, a mensagem se perde. Absorver carga e reter é fila.
  • Usar SQS quando o requisito é avisar vários sistemas. Uma mensagem na fila é consumida por um consumidor; para vários destinos, é tópico, ou tópico com uma fila por destino.
  • Tratar EventBridge como fila. Ele roteia eventos por regra para destinos; não guarda para consumo posterior nem tem tempo de visibilidade.
  • Não configurar fila de mensagens mortas. Sem ela, uma mensagem que sempre falha fica reprocessando para sempre e trava a fila.

Vocabulário

SQS
— Fila gerenciada. O produtor publica, a mensagem fica retida, o consumidor lê, processa e apaga. Absorve picos e isola ritmos.
SNS
— Tópico de publicação e assinatura. Uma mensagem chega a todos os assinantes: filas, funções, endpoints HTTP, e-mail, SMS.

Estratégias de recuperação de desastres: RTO, RPO e as quatro opções

É onde o Domínio 2 fecha, e a questão é sempre a mesma em roupas diferentes: o enunciado dá um RTO e um RPO e pergunta a estratégia mais barata que os atende. Quem sabe a ordem das quatro e o que cada uma mantém ligada responde em segundos; quem não sabe escolhe pela que parece mais robusta e erra por excesso.

Como cai: O negócio aceita 4 horas parado e no máximo 15 minutos de dados perdidos. Qual estratégia de DR atende com o MENOR custo?

Erros comuns

  • Trocar RTO por RPO. RTO é tempo até voltar (olha para a frente); RPO é o ponto no passado a que você volta, ou seja, quanto dado se perde (olha para trás).
  • Escolher a estratégia mais robusta quando o enunciado pede a mais barata que atende. A prova pune resposta acima do requisito: se 4 horas de RTO bastam, multissítio está errado.
  • Achar que luz-piloto mantém a aplicação ligada. Ela mantém só o núcleo, tipicamente o dado replicado; os servidores estão desligados ou nem existem, e sobem na hora do desastre.
  • Confundir espera morna com multissítio. Espera morna mantém uma versão reduzida rodando de verdade, que é escalada no desastre; multissítio atende tráfego nas duas regiões o tempo todo.
  • Esquecer que a região secundária precisa de mais que dados: AMIs, modelos de lançamento, configuração, limites de serviço e a zona de DNS também precisam existir lá.
  • Confiar num plano de DR nunca testado. A prova cobra teste periódico, e o custo real de um RTO baixo inclui o ensaio.

Vocabulário

RTO
— Recovery Time Objective: o tempo máximo aceitável entre o desastre e o serviço de volta. Olha para a frente.
RPO
— Recovery Point Objective: o ponto no passado a que se volta — na prática, quanto trabalho se perde. Olha para trás.