Top Banner
©2015, Amazon Web Services, Inc. or its affiliates. All rights reserved Escolhendo seu serviço de banco de dados gerenciado na plataforma AWS Hugo Rozestraten Arquiteto de Soluções Amazon Web Services Caio Wendel IT Manager Titans Group
43

Bancos de Dados gerenciados na nuvem AWS

Jul 25, 2015

Download

Software

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Bancos de Dados gerenciados na nuvem AWS

©2015, Amazon Web Services, Inc. or its affiliates. All rights reserved

Escolhendo seu serviço de banco de

dados gerenciado na plataforma AWS

Hugo Rozestraten

Arquiteto de Soluções – Amazon Web Services

Caio Wendel

IT Manager – Titans Group

Page 2: Bancos de Dados gerenciados na nuvem AWS

Agenda

• Por que Banco de Dados Gerenciados?

• Bancos de Dados Não Relacionais

• Bancos de Dados Relacionais Gerenciados

• Serviços de cache in-memory

• Data Warehouse Gerenciado

• Próximos Passos

Page 3: Bancos de Dados gerenciados na nuvem AWS

Por que banco de dados gerenciados?

Page 4: Bancos de Dados gerenciados na nuvem AWS

Se os bancos de dados estão on-premises

Energia,HVAC,rede

Rack e Cabeamento

Manuten. Servidor

Patches SO

DB software patches

Database backups

Escalabilidade

Alta Disponibilidade

DB software installs

Instalação SO

você

Otimização Apps

Page 5: Bancos de Dados gerenciados na nuvem AWS

Se os bancos de dados estão on-premises

Energia,HVAC,rede

Rack e Cabeamento

Manuten. Servidor

Patches SO

DB software patches

Database backups

Escalabilidade

Alta Disponibilidade

DB software installs

Instalação SO

você

Otimização Apps

Page 6: Bancos de Dados gerenciados na nuvem AWS

Se os bancos de dados estão no

Amazon EC2

Energia,HVAC,rede

Rack e Cabeamento

Manuten. Servidor

Patches SO

DB software patches

Database backups

Escalabilidade

Alta Disponibilidade

DB software installs

Instalação SO

você

Otimização Apps

Page 7: Bancos de Dados gerenciados na nuvem AWS

Se os bancos de dados estão no

Amazon EC2

Patches SO

DB software patches

Database backups

Escalabilidade

Alta Disponibilidade

DB software installs

você

Otimização Apps

Energia,HVAC,rede

Rack e Cabeamento

Manuten. Servidor

Instalação SO

Page 8: Bancos de Dados gerenciados na nuvem AWS

Serviço de Banco de Dados Gerenciados

Energia,HVAC,rede

Rack e Cabeamento

Manuten. Servidor

Patches SO

DB software patches

Database backups

Otimização Apps

Alta Disponibilidade

DB software installs

Instalação SO

você

Escalabilidade

Page 9: Bancos de Dados gerenciados na nuvem AWS

Gestão Própria vs. Gerenciado pela AWS

Gestão Própria de Banco de Dados Banco de Dados Gerenciados AWS

Você tem toda responsabilidade de upgrades

e backup

AWS provê upgrades, backup, e failover como

serviço

Você tem toda a responsabilidade de

segurança

AWS provê alto padrão de segurança,

certificações; Dá as ferramentas para que

você garanta a segurança

Total controle e administração dos servidores,

S.O. e banco de dados

Banco de dados são gerenciados como

appliance, permite automação dos ambientes

Replicação é complexa, custosa e requer

bastante engenharia

AWS provê o failover como serviço

Page 10: Bancos de Dados gerenciados na nuvem AWS

Serviço Gerenciado para cada tipo de DB

Amazon DynamoDB

Documentoe chave-

valor

Amazon RDS

SQL database

Amazon ElastiCache

In-memory cache

Amazon Redshift

Data warehouse

Page 11: Bancos de Dados gerenciados na nuvem AWS

O que é Amazon DynamoDB?

Page 12: Bancos de Dados gerenciados na nuvem AWS

Amazon DynamoDB: armazenamento gerenciado

de documento e chave-valor

• Simples e rápido para disponibilizar

• Simples e rápido para escalar

• Milhões de IOPS

• Dado replicado automaticamente

• Rápido, performance previsível– Baseado em storage SSD

• Índices Secundários para buscas rápidas

• Sem custo inicial; paga o quanto você consome

Amazon DynamoDB

Page 13: Bancos de Dados gerenciados na nuvem AWS

Dropcam confia no Amazon DynamoDB

• Dropcam provê hardware e software de vídeo monitoramento, de forma que os clientes possam ver vídeos em alta definicação com dispositivos iOS e Androidou pela internet

“Utilizando o DynamoDB, nós

reduzimos o tempo de entrega para

eventos de vídeo para menos de 50

milesegundos.”

—Greg Nelson, VP of

Software Engineering

Page 14: Bancos de Dados gerenciados na nuvem AWS

Chave para cada item

Hash key

Range key

(DynamoDB maintains a

sorted index)

Page 15: Bancos de Dados gerenciados na nuvem AWS

Local secondary indexes = range keys alternativo

Hash key

Range key

LSI key

Page 16: Bancos de Dados gerenciados na nuvem AWS

Global secondary indexes = “pivot charts”

para suas tabelas

Escolha quais atributos

irá projetar

Page 17: Bancos de Dados gerenciados na nuvem AWS

Arquitetura simples com Amazon DynamoDB

Elastic Load

Balancing Amazon EC2

app instances

Clients

DynamoDB

Business logic

Page 18: Bancos de Dados gerenciados na nuvem AWS

O que é o Amazon RDS?

Page 19: Bancos de Dados gerenciados na nuvem AWS

Amazon RDS: serviço gerenciado SQL

• Simples e rápido de entregar

• Simples e rápido para escalar

• AWS gerencia patching, backups, replicação

• Compatível com suas aplicações

– Escolha entre Amazon Aurora, MySQL, PostgreSQL,

Oracle, SQL Server

• Rápido com performance previsíviel

• Sem custo inicial; paga somente pelo consumo

Amazon RDS

Page 20: Bancos de Dados gerenciados na nuvem AWS

Flipboard confia no Amazon RDS

• Flipboard é uma revista online com milhões de usuários e bilhões de “flips”por mês

• Utilizam Amazon RDS e capacidade Multi-AZ para armazendar dados de missão crítica de usuários

”Somos capaces de ir do conceito para

a entrega do produto em seis meses

com apenas alguns engenheiros."

—Greg Scallan, Chief Architect

Page 21: Bancos de Dados gerenciados na nuvem AWS

Como Amazon RDS entrega alta performance

• Escolha General Purpose (SSD) storage para a maior parte das aplicações– 3 IOPS por GB provisionado, com capacidade de burst até 3,000 IOPS

• Escolha Provisioned IOPS (SSD) storage para demandas de alta performance– Provisionamento de 3 TB de storage e 30 K IOPS por instância

– Escale IOPS para cima e para baixo online

• Escolha um tipo de instância com a quantidade correta de CPU e memória, escale e altere conforme a demanda

Page 22: Bancos de Dados gerenciados na nuvem AWS

Como funciona o Backup do Amazon RDS

• Backup Automático – Restaure ou clone seu banco de dados em um ponto no tempo

– Habilitado por padrão

– Escolha uma retenção automática de até 35 dias

• Snapshot Manuais– Iniciados por você

– Persistente até que você as delete

– Armazenado no Storage Amazon S3

– Clone uma base de ados a partir de um snapshot

Page 23: Bancos de Dados gerenciados na nuvem AWS

Escolha Multi-AZ para alta disponibilidade

• Uma Zona de Disponibilidade é uma infraestrutura física distinta e independente

• Com operação Multi-AZ, seu banco de dados é replicado de forma síncrona para outra zona na memas região AWS

• Failover automático em resposta a falhas com a Zona de Disponibilidade atual

• Manutenção planejada é aplicada primeiro ao backup

Page 24: Bancos de Dados gerenciados na nuvem AWS

Escolha Réplicas Para Leitura para alta disponibilidade

e distribuição – Dentro da Região ou Entre Regiões

• Recuperação mais rápida em caso de desastre

• Traga os dados próximo aos seus clientes

• Promova para master para realizar uma migração

Page 25: Bancos de Dados gerenciados na nuvem AWS

O Que é Amazon ElastiCache?

Page 26: Bancos de Dados gerenciados na nuvem AWS

Amazon ElastiCache: in-memory cache escalável

• In-memory caching com Alta

performance, escalável

• Aumente a velocidade da sua

aplicação evitando o acesso de

banco de dados aos discos

• Compatível com suas aplicações– Escolha entre os populares memcached e

Redis

ElastiCache

Page 27: Bancos de Dados gerenciados na nuvem AWS

Amazon ElastiCache: arquitetura simples de aplicação

Elastic Load

Balancing Amazon EC2

app instances

Clients

Amazon RDSAmazon

ElastiCache

Page 28: Bancos de Dados gerenciados na nuvem AWS

“A opção pelo Amazon RDS permitiu a Titans Group

organizar suas bases de dados e adequá-las a

diferentes produtos e ambientes”

• SVA – Provedor de Serviços de Valor

agregado para operadoras móveis e

fixas

• White label para produtos de personal

cloud, mobile security e produtos de

educação

• Mais de 10 milhões de usuários ativos

em 17 países da América Latina

“Ambiente de banco

de dados escalável,

de fácil manutenção,

com ótimos recursos

gerenciados”

- Caio Wendel

Page 29: Bancos de Dados gerenciados na nuvem AWS

Como tirar todos os ovos da mesma cesta?

• Segregar bases de dados contidasem um único servidor de altacapacidade

• Melhorar o desempenho e tercapacidade para acompanhar o crescimento previsto

• Replicação, controle de acesso, backup e redundância geográfica

• Manter o foco da equipe de “Infra” nossistemas da Titans e não naadministração básica de MySQL

MySQL Master/Slave

Servidores Físicos

Page 30: Bancos de Dados gerenciados na nuvem AWS

Várias cestas, cada uma no tamanho certo

PROD

Amazon

RDS

UAT

Amazon

RDS

RDS DB

instance

RDS DB

instance DEV

Amazon

RDS

RDS DB

instance

RDS DB

instanceRDS DB instance RDS DB

instance standby

(Multi-AZ)

RDS DB instance

read replica

SYS 1

RDS DB instance RDS DB

instance standby

(Multi-AZ)

RDS DB instance

read replica

SYS n

Page 31: Bancos de Dados gerenciados na nuvem AWS

Após dois anos, os ovos chocaram….

• Dezenas de sistemas, váriosambientes

• Mesma abordagem paraMemCached com ElastiCache

• RDS/MySQL está próximo de não comportar algumas de nossas bases

• Archiving/Sharding

• Outras soluções AWS sãoalternativas: Aurora, Redshift

Instâncias Simples 36

Instâncias Multi AZ 2 x 28

Réplicas 13

Instâncias Totais 105

Maior Instância db.m2.4xlarge

Maior Storage 3 TB, 13.000 IOPS

Região sa-east1

Total Storage/IOPS 38TB/96.000

ElastiCache 29 clusters

Momento Atual

Page 32: Bancos de Dados gerenciados na nuvem AWS

Amazon Aurora: Alta Disponibilidade por padrão

• Seu dado replicado 6 vezes por 3 AZs

• Storage cresce até 64 TB facilmente

• Até 15 Réplicas de Aurora Replicas com recuperação instantânea

• Até 5 vezes mais performance que o MySQL

• 1/10 do preço de um banco de dados comercial

AZ 1 AZ 2 AZ 3

Virtualized, cross-AZ storage layer

Page 33: Bancos de Dados gerenciados na nuvem AWS

O Que é Amazon Redshift?

Page 34: Bancos de Dados gerenciados na nuvem AWS

Amazon Redshift: data warehouse gerenciado

• Petabyte-scale columnar

database

• Tempo de resposta– ~10x do que os típicos ambientes DW

• Preço de $1,000 por TB por

year

Amazon Redshift

Page 35: Bancos de Dados gerenciados na nuvem AWS

Foursquare utiliza Amazon Redshift

• 40 milhões de usuários de Foursquare parase encontrar com amigos, compartilhardicas de viagens, e encontrar bonsnegócios

• Foursquare utiliza AWS para realizaranálises dos milhões de check-ins diários, economizando em licenciamento e realocando seu time de dev/ops staff paratrabalhos estratégicos

“Amazon Redshift oferece a

performance que precisamos

liberando-nos do custo de

licenciamento das soluções prévias.”

—Jon Hoffman

Software Engineer

Page 36: Bancos de Dados gerenciados na nuvem AWS

Arquitetura Amazon Redshift

Leader

node

Compute nodes

Ferramentas de BI

PostgreSQL

JDBC/ODBC

Amazon S3

Amazon DynamoDB

AWS Data

Pipeline

Amazon EMR

Page 37: Bancos de Dados gerenciados na nuvem AWS

Amazon Redshift redução dramática de IO

• Column storage

• Data compression

• Zone maps

• Direct-attached storage • Armazendamento em linha teria

mais I/O

• Para saber o total tem que

varrer todas as linhas

ID Age State Amount

123 20 CA 500

345 25 WA 250

678 40 FL 125

957 37 WA 375

Page 38: Bancos de Dados gerenciados na nuvem AWS

• Com banco colunar busca

diretamente a coluna que

contém todas as informações

ID Age State Amount

123 20 CA 500

345 25 WA 250

678 40 FL 125

957 37 WA 375

Amazon Redshift redução dramática de IO

• Column storage

• Data compression

• Zone maps

• Direct-attached storage

Page 39: Bancos de Dados gerenciados na nuvem AWS

analyze compression listing;

Table | Column | Encoding

---------+----------------+----------

listing | listid | delta

listing | sellerid | delta32k

listing | eventid | delta32k

listing | dateid | bytedict

listing | numtickets | bytedict

listing | priceperticket | delta32k

listing | totalprice | mostly32

listing | listtime | raw

Amazon Redshift redução dramática de IO

• Column storage

• Data compression

• Zone maps

• Direct-attached storage • COPY comprime

automaticamente

• Análise e sobreposição

• Mais performance menor custo

Page 40: Bancos de Dados gerenciados na nuvem AWS

Amazon Redshift redução dramática de IO

• Column storage

• Data compression

• Zone maps

• Direct-attached storage

10 | 13 | 14 | 26 |…

… | 100 | 245 | 324

375 | 393 | 417…

… 512 | 549 | 623

637 | 712 | 809 …

… | 834 | 921 | 959

10

324

375

623

637

959

• Mínimo e máximo de cada bloco

“track"

• Pula os blocos não relevantes

Page 41: Bancos de Dados gerenciados na nuvem AWS

Amazon Redshift redução dramática de IO

• Column storage

• Data compression

• Zone maps

• Direct-attached storage

DW.HS1.8XL:

• > 2 GB/s leitura

• Otimizado para proc de dados

• High disk density

DW.HS1.XL:

Page 42: Bancos de Dados gerenciados na nuvem AWS

Amazon Redshift: escalabilidade

Dense Storage Node (dw1.xlarge)

2 TB, 16 GB RAM, 2 cores

Dense Compute Node (dw2.large)

0.16 TB, 16 GB RAM, 2 cores

Single Node (2 TB)

Cluster 2-32 Nodes (up to 64 TB)

8XL Dense Storage Node (dw1.8xlarge)

16 TB, 128 GB RAM, 16 cores, 10 GigE

8XL Dense Compute Node (dw2.8xlarge)

2.56 TB, 128 GB RAM, 16 cores, 10 GigE

Cluster 2-100 Nodes (up to 1.6 PB)

Note: Nodes not to scale

Page 43: Bancos de Dados gerenciados na nuvem AWS

Obrigado!