☁️

Aula AWS 03 — Bancos de Dados na AWS

RDS, DynamoDB, Redshift & ElastiCache • Cloud Practitioner

📋 O que vamos aprender

1️⃣ RDS — Relational Database Service

💡 Analogia: RDS é como contratar um DBA que cuida de backups, patches e alta disponibilidade pra você. Você só usa o banco.

ConceitoExplicação
Instância RDSVM rodando um engine de banco
EngineMySQL, PostgreSQL, MariaDB, Oracle, SQL Server, Aurora
Multi-AZCópia standby em outra AZ — failover automático (alta disponibilidade)
Read ReplicaCópia somente leitura para dividir carga (performance)
Automated BackupBackup diário, retention 1-35 dias, armazenado no S3
SnapshotBackup manual — não expira

📌 Multi-AZ vs Read Replica (CAI NA PROVA!)

CaracterísticaMulti-AZRead Replica
PropósitoAlta disponibilidade / DRPerformance (leitura)
ReplicaçãoSíncronaAssíncrona
FailoverAutomáticoManual
Máx. réplicas1 (standby)Até 5

Amazon Aurora ⭐

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.

2️⃣ DynamoDB — NoSQL Serverless

💡 Analogia: RDS é uma planilha Excel com colunas fixas. DynamoDB é um quadro branco onde cada post-it pode ter campos diferentes.

ConceitoExplicação
TabelaColeção de itens — sem esquema fixo!
ItemUma linha da tabela
Primary KeyPartition Key (obrigatória) + Sort Key (opcional)
DAXCache in-memory — reduz latência de ms para microssegundos

📌 CAI NA PROVA!

3️⃣ Redshift — Data Warehouse

💡 Analogia: RDS processa milhares de pedidos por segundo (OLTP). Redshift faz poucas queries pesadas em bilhões de linhas (OLAP).

CaracterísticaOLTP (RDS)OLAP (Redshift)
FunçãoTransações do dia a diaAnálises e relatórios
PadrãoMuitas queries pequenasPoucas 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.

4️⃣ ElastiCache — Cache em Memória

💡 Analogia: Se o banco é um arquivo (HD), ElastiCache é o documento aberto na sua mesa (RAM) pra acesso instantâneo.

CaracterísticaRedisMemcached
EstruturasStrings, Lists, Sets, HashesApenas Strings
Persistência✅ Sim (snapshot)❌ Não
Multi-AZ✅ Sim (com failover)❌ Não
Uso típicoSessões, rankings, geolocalizaçãoCache simples de queries SQL

💻 boto3 — RDS e DynamoDB

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'}
    }
)

🎯 Exercícios Estilo Cloud Practitioner

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

← Aula 02: Serviços Core Hub AWS →