🧠FFVAcademy
🗄️

Databases: RDS, Aurora, DynamoDB, Redshift

12 min de leitura·+60 XP

A AWS oferece um banco para cada modelo de dados: relacional, key-value, documento, grafo, time-series, in-memory, ledger, data warehouse. Escolher errado gera problemas de performance ou custo proibitivo. O CLF-C02 cobra os fundamentos de cada família — não exige dominar queries, mas sim saber quando usar cada um.

Onde isso entra no exame

📘 Domain 3 — Cloud Technology and Services· 34%

Databases formam cerca de 20% do domínio 3. As questões são de cenário: "qual banco para esta workload?". A chave é reconhecer o padrão de acesso descrito (transacional? analítico? key-value? grafo?) e mapear ao serviço correto.

O catálogo AWS de bancos (purpose-built)

ModeloServiço AWSUso típico
RelacionalRDS, AuroraERPs, CRMs, apps transacionais clássicas
Key-value / DocumentDynamoDBCarrinhos, sessões, leaderboards, IoT
Document (MongoDB)DocumentDBApps que já usam MongoDB API
In-memoryElastiCache (Redis/Memcached)Cache, session store, real-time leaderboards
GraphNeptuneRedes sociais, fraud detection, knowledge graphs
Time-seriesTimestreamIoT, métricas, dados temporais
Ledger (imutável)QLDBCompliance, auditoria, supply chain
Wide-columnKeyspacesApps que usam Apache Cassandra
Data warehouseRedshiftBI, analytics em petabytes
SearchOpenSearchBusca full-text, logs

Amazon RDS (Relational Database Service)

Bancos relacionais gerenciados. A AWS cuida do SO, patches, backups, réplicas. Engines suportados:

  • MySQL, PostgreSQL, MariaDB — open source
  • Oracle, SQL Server — proprietários (BYOL ou license-included)
  • Aurora (MySQL/PostgreSQL-compatible) — proprietário AWS
  • Db2 — desde 2023

Features essenciais:

  • Multi-AZ — standby síncrono em outra AZ (failover <2 min)
  • Read Replicas — até 5 réplicas assíncronas para escalar leitura
  • Automated Backups — retenção 1-35 dias (point-in-time recovery)
  • Manual Snapshots — mantidos indefinidamente
  • Encryption at rest — via KMS

Amazon Aurora — o diferencial

Proprietário AWS, compatível com PostgreSQL e MySQL. Arquitetura de storage distribuído em 6 cópias em 3 AZs. Auto-scale de storage até 128 TB. Failover <30s.

🗺️ Aurora storage layer

           ┌─────────────────────────────────────────┐
           │          Aurora Writer (primary)        │
           └─────────────────────────────────────────┘
                              │
           ┌──────────────────┼──────────────────────┐
           │                  │                      │
    AZ-a   ▼          AZ-b    ▼              AZ-c    ▼
     ┌──────────┐      ┌──────────┐         ┌──────────┐
     │ storage  │      │ storage  │         │ storage  │
     │ copy 1/2 │      │ copy 3/4 │         │ copy 5/6 │
     └──────────┘      └──────────┘         └──────────┘
     ┌──────────┐      ┌──────────┐         ┌──────────┐
     │ reader 1 │      │ reader 2 │         │ reader 3 │
     └──────────┘      └──────────┘         └──────────┘

Benefícios vs RDS vanilla:

  • • Até 5x throughput de MySQL, 3x de PostgreSQL
  • • Até 15 réplicas de leitura (vs 5 no RDS)
  • • Backup contínuo incremental para S3
  • Aurora Serverless v2 — escala automaticamente em ACUs
  • Global Database — replicação cross-region <1s

Amazon DynamoDB

NoSQL key-value e document, serverless, escala horizontal ilimitada, latência single-digit ms. Pagamento por capacidade provisionada (leituras/segundo) ou On-Demand (paga por requisição).

Features únicas:

  • Global Tables — replicação multi-master multi-region
  • Streams — dispara Lambda em mudanças
  • TTL — apaga itens automaticamente após timestamp
  • DAX (DynamoDB Accelerator) — cache in-memory com latência em microssegundos
  • PITR — point-in-time recovery últimos 35 dias
💡
Padrão do exame: "Escala horizontal massiva, baixa latência, sem schema rígido" → DynamoDB. "Transações ACID complexas com JOINs" → RDS/Aurora.

Redshift — data warehouse

Data warehouse colunar, MPP (Massively Parallel Processing), até petabytes. Baseado em PostgreSQL modificado. Features:

  • Redshift Spectrum — query SQL em dados no S3 sem carregar
  • Redshift Serverless — sem gerenciar cluster
  • Concurrency Scaling — escala transparente em picos de BI
  • • Integra com QuickSight, Tableau, Power BI

ElastiCache — cache in-memory

EngineUsoRecurso principal
RedisCache + estrutura de dados rica + pub/subPersistência, replicação, clustering
MemcachedCache simples, ultra-leveMulti-threaded, particionamento simples

ElastiCache é usado como camada de cache na frente de RDS/DynamoDB para reduzir latência e custo.

Bancos especializados

ServiçoModeloQuando usar
NeptuneGraph (Gremlin, SPARQL)Redes sociais, fraude, recomendação
TimestreamTime-seriesIoT, métricas, DevOps observability
QLDBLedger imutável (append-only)Histórico de transações auditável
DocumentDBMongoDB-compatibleApps que já usam MongoDB
KeyspacesCassandra-compatibleApps Cassandra sem gerenciar cluster

Database Migration Service (DMS)

Serviço para migrar bancos on-prem ou entre engines. Suporta homogêneo (Oracle → Oracle) e heterogêneo (Oracle → PostgreSQL). Integra com AWS Schema Conversion Tool (SCT) para converter stored procedures.

Cenários de decisão

📋 E-commerce com carrinho de compras, 100k usuários simultâneos

DynamoDB

Carrinho é key-value (userId → items). DynamoDB escala horizontal automático, latência ms, sem schema. Para pedidos finais (ACID), considere Aurora ou RDS.

Alt: RDS MySQLPode virar gargalo em picos sem arquitetura de cache/read replicas

📋 Sistema bancário transacional (débitos/créditos ACID)

Aurora PostgreSQL (ou RDS PostgreSQL)

ACID, transações complexas, JOINs, consistência forte. Aurora tem melhor HA (Multi-AZ built-in + storage distribuído).

📋 Dashboard de BI consultando 500 TB de eventos de vendas históricos

Redshift (ou Redshift Spectrum sobre S3)

Consultas analíticas em volumes petabyte exigem storage colunar + MPP. RDS/Aurora são transacionais, lentos para analytics.

📋 Feed de rede social (amigos de amigos, recomendações)

Neptune

Grafos naturalmente expressam relacionamentos. Queries 'shortest path', 'common neighbors' são lentas em SQL e rápidas em graph DB.

📋 Cache de resultado de API externa, TTL 5 minutos

ElastiCache Redis

Latência <1ms, TTL nativo, estruturas ricas (lists, sets, sorted sets). Ficar à frente de RDS ou DynamoDB.

Exemplos de CLI

bash
# RDS — criar instância PostgreSQL Multi-AZ
aws rds create-db-instance \
  --db-instance-identifier meu-pg \
  --db-instance-class db.t3.medium \
  --engine postgres \
  --master-username admin \
  --master-user-password <senha> \
  --allocated-storage 100 \
  --multi-az

# DynamoDB — criar tabela on-demand
aws dynamodb create-table \
  --table-name Pedidos \
  --attribute-definitions AttributeName=id,AttributeType=S \
  --key-schema AttributeName=id,KeyType=HASH \
  --billing-mode PAY_PER_REQUEST

# DynamoDB — inserir item
aws dynamodb put-item \
  --table-name Pedidos \
  --item '{"id":{"S":"001"},"valor":{"N":"199.90"}}'
⚠️
Pegadinha: "RDS é serverless?" — Não por padrão. Aurora Serverless v2 sim. RDS Multi-AZ é alta disponibilidade, não serverless. Serverless implica: sem provisionar, escala a zero, cobra pelo uso.

Perguntas típicas (Q&A)

Qual a diferença entre Multi-AZ e Read Replica no RDS?

Multi-AZ = standby síncrono para HA (não serve tráfego read até virar primary). Read Replica = réplica assíncrona que responde reads (para escalar leitura).

Quando escolher DocumentDB em vez de DynamoDB?

Quando a aplicação já usa API MongoDB. DocumentDB é MongoDB-compatible com storage gerenciado pela AWS. DynamoDB tem API própria, superior em escala mas exige refatoração.

Qual banco para IoT com milhões de medições por segundo ordenadas no tempo?

Timestream. Otimizado para time-series: compressão pesada, retenção automática por faixa (hot/cold storage), queries temporais rápidas.

Qual feature garante recuperação de RDS a qualquer segundo dos últimos 35 dias?

Point-in-time recovery (PITR), habilitado automaticamente com automated backups (retenção 1-35 dias). Snapshots manuais são pontuais, não contínuos.
Take-aways: RDS/Aurora = relacional. DynamoDB = NoSQL serverless. Redshift = data warehouse. ElastiCache = cache in-memory. Neptune/Timestream/QLDB = especializados. Aurora tem 6 cópias em 3 AZs. Multi-AZ = HA; Read Replicas = escala de leitura. Aurora Serverless v2 = único RDS-like totalmente serverless. Purpose-built: escolha o banco certo para o padrão de acesso, não o que você conhece.
🧩

Quiz rápido

3 perguntas · Acerte tudo e ganhe o badge 🎯 Gabarito