explorando o poder do banco de dados com amazon aurora
TRANSCRIPT
© 2016, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Damian Traverso, Arquiteto de Soluções, AWS
Junho 2016 | São Paulo, Brasil
Explorando o poder do Banco de
Dados com Amazon Aurora
Conheça Amazon Aurora…Banco de Dados reimaginado para a nuvem
Velocidade e disponibilidade dos bancos de dados comerciais
high-end
Simplicidade e baixo-custo dos bancos de dados Open
Source
100% compatível com MySQL
Pague somente pelo uso
Fornecido como um serviço gerenciado
Não houveram muitas mudanças nos últimos 30 anos
Mesmo no escalonamento horizontal, você estaria replicando o mesmo stack
SQL
Transactions
Caching
Logging
SQL
Transactions
Caching
Logging
Application
SQL
Transactions
Caching
Logging
SQL
Transactions
Caching
Logging
Application
SQL
Transactions
Caching
Logging
SQL
Transactions
Caching
Logging
Storage
Application
Reimaginando o banco de dados relacional
¿O que aconteceria se você estivesse inventando o
banco de dados hoje?
Não o desenharia da mesma maneira que foi feito em
1970
Construiria alguma coisa que
consiga escalar de maneira horizontal …
consiga se recuperar automaticamente …
consiga alavancar os serviços da AWS …
Arquitetura orientada a serviços aplicada aos bancos de
dados
As camadas de logging e armazenamento foram
movidas para um serviço multi-tenant, capaz de
escalar e otimizado especificamente para
bancos de dados
Integrado com outros serviços da AWS como
Amazon EC2, Amazon VPC, Amazon
DynamoDB, Amazon SWF, e Amazon Route 53
para operações de gerenciamento
Integrado com Amazon S3 para backup contínuo
com 99,999999999% de durabilidade
Control planeData plane
Amazon
DynamoDB
Amazon SWF
Amazon Route 53
Logging + Storage
SQL
Transactions
Caching
Amazon S3
1
2
3
Rápida adoção de Amazon Aurora
Serviço com o mais rápido
crescimento na história da AWS
(?)
Primeiros clientes em adotar Aurora (?)
Expedia: Agência de viagens on-line
Business Intelligence e Analytics em tempo real
para um volume de dados crescente
Arquitetura atual baseada em SQL Server é muito
cara. O desempenho se degrada conforme o
volume de dados cresce
Cassandra com Solr precisa grandes quantidades
de memoria e centenas de nós, adicionando
custo
Benefícios do Aurora:
Aurora atende aos requisitos de escala e
desempenho com custo muito menor.
25,000 inserts/seg com picos de até 70,000. 30
ms de tempo de resposta médio para escritas e
17 ms para leituras, com 1 mês de dados
Uma das principais companhias de
viagens on-line do mundo, com um
portfólio que inclui mais de 150 sites
de viagens em 70 países.
Maior desempenho, menor custo
Safe.com reduziu o custo em um 40%, passando de
MySQL com sharding para uma única instância de
Aurora.
Double Down Interactive (jogos online) reduziu o custo
em um 67%, com uma menor latência (a maioria das
consultas correm mais rápido) e com menor utilização
da CPU.
Benefícios do Aurora:
Devido ao alto desempenho e suporte de
armazenamento de grande escala, múltiplas instâncias
de MySQL (sharding) podem ser consolidadas em
menos instâncias do Aurora..
Alto desempenho permite utilizar instâncias menores
O provisionamento automático de armazenamento
remove o desperdício
Sem custo adicional para o armazenamento das
Réplicas de leitura
"Quando executamos a carga do Alfresco em Aurora, fomos deslumbrados ao
descobrir que Aurora foi 10x mais rápido do que o nosso ambiente MySQL",
disse John Newton, fundador e CTO da Alfresco. ”A velocidade significa muito no
nosso negócio, e Aurora tem sido mais veloz, mais barato e muito mais fácil de
usar do que o MySQL."
Amazon Aurora é rápido/veloz (?)
• Quatro clientes com 1.000 threads cada um
DESEMPENHO DE ESCRITA DESEMPENHO DE LEITURA
• Único cliente com 1.000 threads
• MySQL SysBench
• R3.8XL com 32 cores e 244 GB RAM
Resultados de SQL benchmark
Desempenho consistente mesmo com um aumento da quantidade
de tabelas
• Operações só de escrita
• 1,000 conexões
• Query cache (padrão do Amazon Aurora, mas não no MySQL)
• Instâncias i2.8XL para MySQL SSD e RAM
• Instâncias r3.8XL para Aurora e Amazon RDS MySQL
11xAT É
M A I S R Á P I D O
Escritas escalam conforme a quantidade de conexões
• Carga OLTP
• Quantidade de conexões variável
• 250 tablas
• Query cache (padrão do Amazon Aurora, mas não no MySQL)
8xAT É
M A I S R Á P I D O
Desempenho consistente com uma base de dados crescente
• SysBench com carga de escritas unicamente
• Aurora r3.8XL
• Amazon RDS MySQL r3.8XL com 30K IOPs (single AZ)
67xAT É
M A I S R Á P I D O
Fazendo menos I/Os
Reduzindo os pacotes de rede
Cache de resultados
Desonerando o motor do banco de dados
FAZENDO MENOS TRABALHO
Processando de maneira assíncrona
Reduzindo a latência
Usando estruturas de dados sem locking
Agrupando operações em batch
SENDO MAIS EFICIENTE
¿Como esses resultados foram atingidos?
Aurora precisa de menos I/Os
Binlog Data Double-write bufferLog records FRM files, metadata
T I P O S D E E S C R I T AS
EBS mirrorEBS mirror
AZ 1 AZ 2
Amazon S3
MYSQL COM STANDBY
SEQUENTIAL
WRITE
SEQUENTIAL
WRITE
EBSAmazon Elastic
Block Store (EBS)
Primary
Instance
Standby
Instance
AZ 1 AZ 3
Primary
Instance
Amazon S3
AZ 2
Replica
Instance
AMAZON AURORA
ASYNC
4/6 QUORUM
DISTRIBUTED
WRITES
Amazon Aurora é altamente disponível
Amazon Aurora é altamente disponível
Armazenamento altamente disponível
• Seis cópias em três AZs
• Quorum com tolerância a falhas para leituras/escritas
• Até 15 replicas com baixo lag de replicação
Persistência de caches
• O cache se mantém no evento de um restart
• Permite retomar toda a carga rapidamente
Recuperação instantânea de falhas
• Por detrás, o armazenamento reproduz redo logs sob demanda como parte da leitura do disco
• De maneira paralela, distribuída e assíncrona
AZ 1 AZ 2 AZ 3
Amazon
S3
SQL
Transactions
Caching
T0
Failover mais rápido e previsível
AppExecutandoDetecção de falhas Propagação de DNS
Recuperação Recuperação
Falha no banco
RDS MYSQL
App
Executando
Detecção de falhas Propagação de DNS
Recuperação
Falha no
banco
AURORA COM MARIADB DRIVER
1 5 – 3 0 s e g
5 – 2 0 s e g
Amazon Aurora é simples de usar
”A nova interface de monitoramento do Amazon Aurora tornou
fácil de diagnosticar e resolver problemas. Seu desempenho,
confiabilidade e monitoramento realmente mostra que o
Amazon Aurora é um banco de dados de nível enterprise.” -
Mohamad Reza, oficial de sistemas de informação da Organização das
Nações Unidas
Simplifique o gerenciamento de armazenamento
• Escalonamento automático do armazenamento até 64 TB — sem impacto no
desempenho
• Backups contínuos e incrementais no Amazon S3
• Crie snapshots instantâneos - sem impacto no desempenho
• Restriping automático, espelhamento, gerenciamento dos hot spots e criptografia
Até 64 TB de armazenamento — auto-incrementado em unidadades de 10 GB
até 64 TB
Simplifique o monitoramento com o AWS Management
Console Métricas do Amazon
CloudWatch para RDS
Utilização de CPU
Armazenamento
Memória
50+ métricas de SO
Granularidade de 1–60 segundos
Número de conexões
Selects por segundo
Latência (leituras e escritas)
Taxa de Cache hit
Lag de replicação
Alarmes de CloudWatch
Similar com outras ferramentas
padrões de mercado
Simplifique a segurança dos dados
Criptografia para proteger os dados
armazenados
• AES-256; acelerada por hardware
• Todos os blocos em disco e no Amazon S3 são
criptografados
• Gerenciamento de chaves usando AWS KMS
SSL para proteger dados em trânsito
Isolamento de rede usando Amazon VPC
Sem acesso direito aos nós
Cumpre as certificações padrões de
segurança e proteção de dados
Storage
SQL
Transactions
Caching
Amazon S3
Application
Fornecido como um serviço gerenciado
Se você hospedar seu banco de dados on-premises
Energia, HVAC, Rede
Rack
Man. do servidor
Patches do SO
Patches do BD
Backups
Escalonamento
Alta Disponibilidade
Instalação do BD
Instalação do SO
Você
Otimizações da App.
Se você hospedar seu banco de dados no Amazon
EC2
Energia, HVAC, Rede
Rack
Man. do servidor
Patches do SO
Patches do BD
Backups
Escalonamento
Alta Disponibilidade
Instalação do BD
Instalação do SO
Você
Otimizações da App.
Se você escolher o Amazon RDS
Otimizações da App.
Você
Energia, HVAC, Rede
Rack
Man. do servidor
Instalação do SO
Patches do SO
Patches do BD
Backups
Escalonamento
Alta Disponibilidade
Instalação do BD
Com o Amazon Aurora você economiza
dinheiro
Preço simplificado
Sem licenciamento
Sem lock-in
Pague somente pelo uso
Descontos
44% com Instâncias Reservadas a 1
ano
63% com Instâncias Reservadas a 3
anos
vCPU Mem Preço por
hora
db.r3.large 2 15.25 $0.29
db.r3.xlarge 4 30.5 $0.58
db.r3.2xlarge 8 61 $1.16
db.r3.4xlarge 16 122 $2.32
db.r3.8xlarge 32 244 $4.64
• Armazenamento consumido, até 64 TB, por $0.10/GB-mês
• IOs consumidos são cobrados a $0.20 por milhão de I/Os
• Preços para região US East (N. Virginia)
Nível Enterprise de qualidade, preço de Open Source
TCO: Aurora vs. MySQLCusto por hora com MySQL
Primary
r3.8XL
Standby
r3.8XL
Replica
r3.8XLReplica
R3.8XL
Storage6TB/10K PIOP
Storage6TB/10K PIOP
Storage6TB/5K PIOP
Storage6TB/5K PIOP
$3.78/hr
$3.78/hr
$3.78/hr $3.78/hr
$2.42/hr
$2.42/hr $2.42/hr
Custo das instâncias: $15.12/hr
Custo do armazenamento: $8.30/hr
Custo total: $23.42/hr
$2.42/hr
TCO: Aurora vs. MySQLCusto por hora com Amazon Aurora
Custo das instâncias: $13.92/hr
Custo do armazenamento: $4.43/hr
Custo total: $18.35/hr
Primary
r3.8XL
Replica
r3.8XL
Replica
R3.8XL
Storage/6 TB
$4.64/hr $4.64/hr $4.64/hr
$4.43/hr
*No nível macro, Aurora economiza ~50% em
custos de armazenamento comparado com
RDS MySQL
Economia
de
21.6%
Sem instância standby inativa
Volume único de armazenamento
compartilhado
Sem PIOPS — pague pelo uso
de IOs
Redução na quantidade de IOs
TCO: Aurora vs. MySQLMais oportunidades para economizar
Custo das instâncias: $6.96/hr
Custo do armazenamento: $4.43/hr
Custo total: $11.39/hrPremissas de IOPS de armazenamento:
1. Média de IOPS é 50% dos IOPS máximos
2. 50% de economia de escrever logs vs full pages
Economia
de
51.3%
Primary
r3.8XL
Replica
r3.8XLReplica
r3.8XL
Storage/6 TB
$2.32/hr $2.32/hr $2.32 hr
$4.43/hr
r3.4XL r3.4XL r3.4XL
Use instâncias menores
Pague pelo uso do
armazenamento
Migração para Amazon Aurora é fácil
Comece sua primeira migração em 10 minutos ou menos
Mantenha suas aplicações em execução durante a
migração
Replique entre, de, ou para Amazon EC2 ou RDS
Mova dados para a mesma engine ou para uma diferente
AWS
Database Migration
Service
Customer
premises
Aplicações
AWS
Internet
VPN
Lance uma instância de replicação
Associe os bancos de origem e destino
Escolha tabelas, esquemas ou bases
Deixe que AWS Database Migration
Service crie as tabelas, carregue os
dados e os mantenha em sincronia
Altere as aplicações para utilizar o
banco de destino de acordo com a sua
necessidade
Mantenha suas aplicações em execução durante a
migraçãoAWS
Database Migration
Service
Migre de Oracle e SQL Server
Mova suas tabelas, views, stored procedures, e DML para MySQL, MariaDB, e Amazon Aurora
Saiba exatamente onde alterações manuais são
necessárias
Baixe em aws.amazon.com/dms
AWS
Schema Conversion
Tool
Know exactly where manual edits are needed
© 2016, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Felipe Vagner Mattar Brandão, Gerente de TI, Kroton
Junho 2016 | São Paulo, Brasil
Kroton e
Amazon Aurora
“O Amazon Aurora trouxe uma maior
estabilidade para a principal plataforma de
estudos dos nossos alunos…
A Kroton Educacional é a maior
empresa de Educação do mundo,
com mais de 1.4 MM alunos, mais
de 900 pólos franqueados e 150
campis próprios
O Moodle é a principal plataforma
pedagógica digital da companhia e
atende mais de 1.2 MM alunos com
mais de 3 MM de acessos por mês
“A escalabilidade do
LMS ficou mais
próxima dos 100%,
utilizando Réplicas
para Consultas,
liberando o Master de 60% das atividades
de alto consumo”
- Felipe Brandão,
Gerente de TI
O Desafio
Escalar RDS horizontalmente sem causar indisponibilidade
Distribuir processamento de consultas da aplicação com o menor custo e tempo de desenvolvimento
Reduzir custo para a utilização pesada em período de sazonalidade
Separar as bases de produção, operação e staging com dados on-line
Solução
Solução
Anexo - Kroton na Nuvem
¡Muito Obrigado!