Nestra palestra, realizada no dia 30/08/2016, no Senac-RJ, apresentei as principais soluções de bancos de dados disponíveis na AWS e as diferenças entre elas, bem como alguns casos de uso sugeridos para cada um.
3. Agenda
• Bancos de dados na AWS
• Por que usar serviços gerenciados?
• AWS Relational Database Service (RDS)
• AWS Aurora
• AWS DynamoDB
• AWS Redshift
• Outras bases de dados na AWS
• Casos de uso para cada base de dados
4. Como criar seu banco de dados na AWS?
• Ligar uma instância de EC2 adequada
• Instalar o software de banco de dados nessa EC2
• Virtualização x Computação em Nuvem
Amazon
EC2
5. Por que utilizar os serviços gerenciados da AWS?
• Benefícios:
• Fácil de administrar (instalar, operar e atualizar o software)
• Elasticidade com simplicidade
• Maior disponibilidade e durabilidade
• Facilidade em adquirir licenças / licenças em modelo pay per use
• Custos de gerenciamento embutidos no custo do serviço
• Benefícios válidos para todos os serviços de bancos de dados
apresentados
6. AWS RDS
Um banco de dados relacional gerenciado na nuvem que você
pode executar em minutos com apenas alguns cliques.
7. Amazon Relational Database Service (RDS)
• Simplicidade e rapidez para iniciar e operar
• Gerenciamento de tarefas administrativas comuns dos SGBDs
• Compatível com as suas aplicações
• Desempenho rápido e previsível
• Simples e rápido para escalar
• Segurança
• Custo-benefício
• Backups & Snapshots
• Arquitetura em múltiplas AZs
Aurora
8. Backups vs Snapshots
• Backups automáticos
• Permite a recuperação de um momento exato (segundo) do banco de dados
• Realiza um snapshot diário e captura os logs das transações realizadas após
• Retenção de 1 dia a 35 dias
• Snapshots
• Criados pelo usuário (pode ser usado um script)
• Semelhante ao snapshot da instância EC2
• Recuperação do momento do snapshot
• Recuperação
• Em ambos os casos, uma nova instância é criada
9. Segurança no RDS
• Virtual Private Cloud
• Security Groups (firewalls)
• Gerenciamento de acessos e identidades
• Conexão segura por SSL
• Encriptação de dados em disco
• AES-256
• Chaves gerenciadas com o AWS Key Management System (KMS)
• Logs, backups e snapshots são encriptados
• Auditoria com o CloudTrail
10. AWS Aurora
Um banco de dados relacional gerenciado, compatível com
MySQL, com desempenho 5 vezes maior e recursos empresariais.
11. Amazon Aurora
• Velocidade e disponibilidade de SGBDs comerciais
• Simplicidade e custo benefício de SGBDs de código aberto
• Compatibilidade com MySQL
• Modelo de precificação pay as you go
• Entregue como um serviço gerenciado
Aurora
13. Amazon Aurora é altamente escalável
• Altamente disponível por padrão
• 6 réplicas em 3 AZs
• SSD e escalável
• Armazenamento multi-tenant
• Até 64TB de tamanho na base
• Pagamento apenas pelo que usa
• Armazenamento de logs estruturados
• Diversos pequenos segmentos, cada um com
seu próprio log de transação
SQL
Transactions
AZ 1 AZ 2 AZ 3
Caching
Amazon S3
14. Amazon Aurora
• Tolerante a falhas
• Perca duas cópias ou uma zona de disponibilidade sem impacto na
disponibilidade de leitura ou escrita
• Autorecuperação
• Detecção, replicação e reparação automáticas
• Recuperação de desastres instantaneamente
15. Aurora Master
30% Read
70% Write
Aurora Replica
100% New Reads
Shared Multi-AZ Storage
MySQL Master
30% Read
70% Write
MySQL Replica
30% New Reads
70% Write
Data Volume Data Volume
MySQL x Amazon Aurora – Réplicas de Leitura
19. AWS DynamoDB
Um banco de dados NoSQL gerenciado que oferece um desempenho
extremamente rápido, além de escalabilidade e confiabilidade
transparentes
21. Amazon DynamoDB
• Serviço gerenciado para base de dados NoSQL
• Compatível com modelos de dados de documento ou chave-valor
• Altamente escalável
• Desempenho consistente:
• Latência de até 9 milissegundos em qualquer escala
• Altamente disponível
• Replicação em 3x
• API simples e poderosa
23. Id = 2
Nome = Andy
Dept = Engg
Id = 3
Nome = Kim
Dept = Ops
Id = 1
Nome = Jim
Id = 2
Nome = Andy
Dept = Engg
Id = 3
Nome = Kim
Dept = Ops
Id = 1
Nome = Jim
Id = 2
Nome = Andy
Dept = Engg
Id = 3
Nome = Kim
Dept = Ops
Id = 1
Nome = Jim
Réplica 1
Réplica 2
Réplica 3
Partição 1 Partição 2 Partição N
Partições são replicadas 3 vezes
24. Escalabilidade
• Limites de vazão de leitura e escrita são independentes
• Vazão é provisionada por tabela
• Unidades de capacidade de escrita são medidas em 1 KB/s
• Unidades de capacidade de leitura são medidas em 4 KB/s
• Adicionar qualquer número de itens a uma tabela
• Tamanho máximo do item é de 400 KB
25. AWS Redshift
Um data warehouse rápido, totalmente gerenciado e em escala de
petabytes por menos de um décimo do custo de soluções tradicionais.
26. Amazon
Redshift
Muito rápido
Muito simples
Muito barato
Amazon Redshift
• Armazém de dados relacional
• Massivamente paralelo; escala de petabytes
• Totalmente gerenciado
• Plataformas em SSD ou HDs magnéticos
• US$ 1.000 / TB / ano ; a partir de US$ 0,25 / hora
27. Arquitetura de sistema do Amazon Redshift
• Nó líder
• Interface para consultas SQL
• Armazena os metadados
• Coordena a execução das consultas
• Nós de computação
• Armazenamento local e colunar
• Executa as consultas em paralelo
• Carga, backup e restrauração via
Amazon S3
• Carga a partir do DynamoDB, EMR ou SSH
• Duas plataformas de hardware
• Otimizadas para
processamento ou armazenamento
• DS2: HDD; escala de 2TB a 2PB
• DC1: SSD; escala de 160GB a 326TB
10 GigE
(HPC)
Ingestion
Backup
Restore
SQL Clients/BI Tools
128GB RAM
16TB disk
16 cores
S3 / EMR / DynamoDB / SSH
JDBC/ODBC
128GB RAM
16TB disk
16 coresCompute
Node
128GB RAM
16TB disk
16 coresCompute
Node
128GB RAM
16TB disk
16 coresCompute
Node
Leader
Node
28. Olhar mais profundo na arquitetura do nó de computação
• Cada nó contém múltiplas fatias (slices)
• DS2 – 2 fatias na XL, 16 na 8XL
• DC1 – 2 fatias na L, 32 na 8XL
• Cada fatia é alocada a uma CPU e
a uma tabela de dados
• Cada fatia processa em paralelo
um pedaço da carga
Leader Node
29. Amazon Redshift reduz dramaticamente o I/O
• Armazenamento colunar
• Compressão de dados
• Mapeamento de zonas
30. Amazon Redshift reduz dramaticamente o I/O
• Armazenamento colunar
• Compressão de dados
• Mapeamento de zonas
ID Age State Amount
123 20 CA 500
345 25 WA 250
678 40 FL 125
957 37 WA 375
• Calcular SUM(Amount) com
armazenamento em linha:
– Necessidade de ler tudo
– I/O desnecessário
ID Age State Amount
31. Amazon Redshift reduz dramaticamente o I/O
• Armazenamento colunar
• Compressão de dados
• Mapeamento de zonas
• Calcular SUM(Amount) com
armazenamento colunar:
– Somente carrega os blocos
necessários
ID Age State Amount
ID Age State Amount
123 20 CA 500
345 25 WA 250
678 40 FL 125
957 37 WA 375
32. Amazon Redshift reduz dramaticamente o I/O
• Armazenamento colunar
• Compressão de dados
• Mapeamento de zonas
• Compressão colunar
– Efetividade pelo tipo de dado
– Reduz os requisitos de
armazenamento
– Reduz o I/O
ID Age State Amount
analyze compression orders;
Table | Column | Encoding
--------+-------------+----------
orders | id | mostly32
orders | age | mostly32
orders | state | lzo
orders | amount | mostly32
33. Amazon Redshift reduz dramaticamente o I/O
• Armazenamento colunar
• Compressão de dados
• Mapeamento de zonas
• Metadados dos blocos em memória
• Contém valores MIN e MAX por bloco
• Não carrega blocos que não contém
dados para uma data consulta
• Minimiza I/O desnecessário
ID Age State Amount
35. Outras bases de dados
• Amazon ElasticCache
• Implantar, operar e escalar cache na memória com base no Memcached ou Redis
• Amazon EMR – Hadoop
• Armazenamento para MapReduce com tecnologia Hadoop
• SPICE do AWS QuickSight
• Armazenamento em memória para cálculos rápidos em aplicações de BI
• Amazon Kinesis
• Armazenamento temporário de fluxos de dados
• Amazon CloudSearch
• Armazenamento de dados e índices para API de buscas
• Amazon ElasticSearch
• Pesquisa e análise de logs de aplicações
37. Qual banco usar e quando?
• A AWS possui diversos serviços de bases de dados diferentes
• Arquiteto de soluções ajuda a definir o melhor serviço para o caso de
uso do cliente
• Caso de uso:
• Aplicação requer uma base de dados relacional PostgreSQL, com extensão
geográfica PostGIS
Amazon RDS com PostgreSQL
38. Qual banco usar e quando?
• A AWS possui diversos serviços de bases de dados diferentes
• Arquiteto de soluções ajuda a definir o melhor serviço para o caso de
uso do cliente
• Caso de uso:
• Aplicações web e aplicativos móveis criados para operar em escalas muito
grandes precisam de um banco de dados com alta vazão, escalabilidade
de armazenamento massiva e alta disponibilidade.
Amazon RDS Aurora
39. Qual banco usar e quando?
• A AWS possui diversos serviços de bases de dados diferentes
• Arquiteto de soluções ajuda a definir o melhor serviço para o caso de
uso do cliente
• Caso de uso:
• Aplicação requer uma base de dados que ofereça o desempenho e a
disponibilidade para a criação de plataformas de oferta em tempo real
(real-time biding) e mecanismos de recomendação.
Amazon DynamoDB
40. Qual banco usar e quando?
• A AWS possui diversos serviços de bases de dados diferentes
• Arquiteto de soluções ajuda a definir o melhor serviço para o
caso de uso do cliente
• Caso de uso:
• Aplicação transmite centenas de milhões de logs de aplicativos todos
os dias. A empresa usa análises para gerar relatórios sobre uso diário,
avaliar novas ofertas e executar análises de tendências de longo prazo.
A base possui 4,5 bilhões de registros e, a cada dia, a carga de
trabalho continua a crescer.
Amazon Redshift
41. AWS Meetup Rio
Qual banco usar e quando?
Pedro Silveira Pisa
pedro.pisa@kendoo.com.br
+55 21 98887-0555
+55 21 3549-7625
www.kendoo.com.br
www.facebook.com/kendoosolutions/
www.linkedin.com/company/kendoosolutions