RDS, DynamoDB, Redshift & ElastiCache • Cloud Practitioner
💡 Analogia: RDS é como contratar um DBA que cuida de backups, patches e alta disponibilidade pra você. Você só usa o banco.
| Conceito | Explicação |
|---|---|
| Instância RDS | VM rodando um engine de banco |
| Engine | MySQL, PostgreSQL, MariaDB, Oracle, SQL Server, Aurora |
| Multi-AZ | Cópia standby em outra AZ — failover automático (alta disponibilidade) |
| Read Replica | Cópia somente leitura para dividir carga (performance) |
| Automated Backup | Backup diário, retention 1-35 dias, armazenado no S3 |
| Snapshot | Backup manual — não expira |
| Característica | Multi-AZ | Read Replica |
|---|---|---|
| Propósito | Alta disponibilidade / DR | Performance (leitura) |
| Replicação | Síncrona | Assíncrona |
| Failover | Automático | Manual |
| Máx. réplicas | 1 (standby) | Até 5 |
Engine exclusivo AWS, compatível com MySQL/PostgreSQL, até 5x mais rápido. 6 cópias dos dados em 3 AZs, failover em <30s, até 15 read replicas, auto-escala até 128 TB.
💡 Analogia: RDS é uma planilha Excel com colunas fixas. DynamoDB é um quadro branco onde cada post-it pode ter campos diferentes.
| Conceito | Explicação |
|---|---|
| Tabela | Coleção de itens — sem esquema fixo! |
| Item | Uma linha da tabela |
| Primary Key | Partition Key (obrigatória) + Sort Key (opcional) |
| DAX | Cache in-memory — reduz latência de ms para microssegundos |
📌 CAI NA PROVA!
💡 Analogia: RDS processa milhares de pedidos por segundo (OLTP). Redshift faz poucas queries pesadas em bilhões de linhas (OLAP).
| Característica | OLTP (RDS) | OLAP (Redshift) |
|---|---|---|
| Função | Transações do dia a dia | Análises e relatórios |
| Padrão | Muitas queries pequenas | Poucas queries complexas |
| Exemplo | "Registrar venda" | "Ticket médio por estado em 2026" |
Redshift Spectrum: faz query direto nos dados do S3 sem precisar carregar no Redshift.
💡 Analogia: Se o banco é um arquivo (HD), ElastiCache é o documento aberto na sua mesa (RAM) pra acesso instantâneo.
| Característica | Redis | Memcached |
|---|---|---|
| Estruturas | Strings, Lists, Sets, Hashes | Apenas Strings |
| Persistência | ✅ Sim (snapshot) | ❌ Não |
| Multi-AZ | ✅ Sim (com failover) | ❌ Não |
| Uso típico | Sessões, rankings, geolocalização | Cache simples de queries SQL |
import boto3
rds = boto3.client('rds', region_name='us-east-1')
response = rds.describe_db_instances()
for db in response['DBInstances']:
print(f"ID: {db['DBInstanceIdentifier']} | Engine: {db['Engine']} | Multi-AZ: {db['MultiAZ']}")
dynamodb = boto3.client('dynamodb', region_name='us-east-1')
tables = dynamodb.list_tables()
print("Tabelas:", tables['TableNames'])
# Inserir item no DynamoDB
dynamodb.put_item(
TableName='Clientes',
Item={
'id': {'S': 'cli-001'},
'nome': {'S': 'Hugo Costa'},
'plano': {'S': 'premium'}
}
)
1. Uma empresa tem MySQL em produção e precisa de failover automático se o data center cair. Qual configuração?
A) Read Replica B) Multi-AZ ✅ C) DAX D) ElastiCache
2. Qual serviço é NoSQL serverless com latência de milissegundos?
A) RDS B) Redshift C) DynamoDB ✅ D) ElastiCache
3. Empresa precisa analisar 10 anos de vendas (bilhões de registros) com SQL. Qual serviço?
A) DynamoDB B) RDS C) Redshift ✅ D) ElastiCache