AWS SAA-C03/06 - Bancos de Dados2 mincheatsheet
Cheatsheet Bancos de Dados
Cheatsheet — Bancos de Dados
Escolha por sinal do enunciado
| Sinal | Serviço |
|---|---|
| SQL relacional, migrar banco existente | RDS |
| Relacional + alta performance + escala automática | Aurora |
| Chave-valor, latência de milissegundo, escala massiva | DynamoDB |
| Cache, sessão, leaderboard | ElastiCache |
| Data warehouse, BI, agregação analítica | Redshift |
| Relacionamento entre entidades, rede social, fraude | Neptune (grafo) |
| Compatível com MongoDB | DocumentDB |
| Compatível com Cassandra | Keyspaces |
| Série temporal, IoT, métrica | Timestream |
| Ledger imutável, criptograficamente verificável | QLDB |
| Redis com durabilidade | MemoryDB |
RDS — Multi-AZ vs Read Replica
| Multi-AZ | Read Replica | |
|---|---|---|
| Objetivo | Disponibilidade | Escalar leitura |
| Replicação | Síncrona | Assíncrona |
| Standby é legível? | Não (no Multi-AZ clássico) | Sim |
| Failover | Automático, DNS aponta pro standby | Manual (promover) |
| Cross-region | Não | Sim |
| Quantidade | 1 standby | Até 5 (15 no Aurora) |
A pegadinha
"Melhorar performance de leitura" → Read Replica. "Sobreviver à falha de uma AZ" → Multi-AZ. Multi-AZ não melhora performance — o standby fica ocioso. Existe também o Multi-AZ DB cluster (2 standbys legíveis) — mas se a questão disser só "Multi-AZ", assuma o clássico.
Aurora
- 6 cópias em 3 AZs; tolera perda de 2 cópias sem afetar escrita, 3 sem afetar leitura.
- Storage cresce sozinho, de 10 GB até 128 TB.
- Até 15 read replicas com lag de milissegundos.
- Aurora Serverless v2: escala em fração de segundo — sinal de "carga imprevisível" ou "intermitente".
- Global Database: replicação cross-region < 1 s, promoção em < 1 min. Sinal: "DR global com RTO baixo".
- Backtrack (MySQL): volta o banco no tempo sem restore.
DynamoDB
| Conceito | Regra |
|---|---|
| RCU | 1 leitura fortemente consistente de 4 KB/s · ou 2 eventualmente consistentes |
| WCU | 1 escrita de 1 KB/s |
| On-demand | Sem planejar capacidade, paga por request — carga imprevisível |
| Provisioned | Mais barato em carga estável e previsível |
| Índice | Chave de partição | Quando criar | Capacidade |
|---|---|---|---|
| LSI | Mesma da tabela, sort diferente | Só na criação | Compartilha com a tabela |
| GSI | Diferente | Qualquer momento | Própria |
- DAX: cache in-memory nativo, leitura em microssegundos. Só serve pra DynamoDB.
- Streams: captura mudanças → dispara Lambda (padrão event-driven).
- Global Tables: multi-região ativo-ativo. Exige Streams habilitado.
- TTL: expira item automaticamente, sem custo de WCU.
ElastiCache — Redis vs Memcached
| Redis | Memcached | |
|---|---|---|
| Persistência | Sim | Não |
| Réplica / Multi-AZ | Sim, com failover | Não |
| Estruturas | Lista, set, sorted set, pub/sub | Só chave-valor |
| Multi-thread | Não | Sim |
| Use para | Sessão, leaderboard, precisa sobreviver | Cache puro e descartável, escalar horizontal |
Regra: se o enunciado pede HA, persistência ou estrutura de dados → Redis. Se pede cache simples e multi-threaded → Memcached.
Parte de 06 - MOC Bancos de Dados