Download - Migrando seu banco de dados para a AWS - Deep Dive em Amazon RDS e AWS Database Migration Service
© 2016, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Hugo Rozestraten – Database and Big Data Solutions Architect – AWS
Juliano Souza – IT Manager - DrConsulta
Junho 22, 2017
Migrando seu Banco de Dados para a AWSDeep Dive em Amazon RDS e AWS Database Migration Service
Migrando seu Banco de Dados para a AWS
• Bancos de Dados na Amazon;
• Deep Dive em Amazon RDS;
• Deep Dive em Amazon DMS e SCT;
Seu Data Center
Serviços
Energia,HVAC,rede
Rack e Cabeamento
Manuten. Servidor
Patches SO
DB software patches
Database backups
Escalabilidade
Alta Disponibilidade
DB software installs
Instalação SO
Otimização Apps
Amazon RDS – Relational Database Services
Serviços
Energia,HVAC,rede
Rack e Cabeamento
Manuten. Servidor
Instalação SO
Otimização Apps
Patches SO
DB software patches
Database backups
Escalabilidade
Alta Disponibilidade
DB software installs
Amazon
RDS
Database Size
Volume
Amazon EC2Amazon
RDS
64 Terabytes de Aurora
6 TeraBytes Postgres,
MySQL, MariaDB e
Oracle
4 Terabytes SQLServer
+100 (20 soft
limit)
TeraBytes
Performance
Capacidade
Computacional
1 vCPU a 128vCPUs
1 vCPU a 40vCPUs
Memória
GB of RAM
1 GB a 1.952 GB
1 GB a 244 GB
Redes
(Throughput)
Low a 20 Gbps
Low a 10 Gbps
Storage
I/O Throughput
48.000 IOPS
30.000 IOPS
R3, R4 instance support
Instance Families: T2, M3, M4
Amazon EC2
Amazon
RDS
Disponibilidade
Node 1
Node 2
Storage 1
Storage 2
Storage 3
Node 3
Node 4
Mesmo Rack
Mesmo appliance
Mesmo Data Center
Mesma entrada de
energia
Mesma localização
geográfica
MySQL and Oracle
• SOC 1, 2, and 3
• ISO 27001/9001
• ISO 27017/27018
• PCI DSS
• FedRAMP
• HIPAA BAA
• UK government programs
• Singapore MTCS
Compliance
SQL Server and PostgreSQL
• SOC 1, 2, and 3
• ISO 27001/9001
• ISO 27017/27018
• PCI DSS
• UK government programs
• Singapore MTCS
Criptografia de Dados
EBS
AWS KMS
volume
Oracle
Instance
RDS
TDE
CloudHSM
TDE_HSM
Segurança
Segurança
Monitoramento padrãoAmazon CloudWatch
metrics for Amazon RDS
CPU utilization
Storage
Memory
Swap usage
DB connections
I/O (read and write)
Latency (read and write)
Throughput (read and write)
Replica lag
Many more
Amazon CloudWatch Alarms
Similar to on-premises custom
monitoring tools
Monitoramento granular
Mais de 50 novas métricas CPU, memória, file system, e disk I/O com um
intervalo de até 1 segundo
Notificações
• Use Amazon Simple Notification
Service (Amazon SNS) para
notificação de usuários
• 17 categorias diferentes de
eventos (availability, backup,
configuration change, and so on)
Read Replicas
Traga seu dado para perto de
seus clientes
Diminua a pressão no seu nó
master, com suporte a read
réplicas
Promova Read Replica a master
para uma recuperação rápida de
desastre
Read Replicas
Dentro da Região
• MySQL
• MariaDB
• PostgreSQL
• Aurora
Cross-region
• MySQL
• MariaDB
• PostgreSQL
• Aurora
Read Replicas para Amazon Aurora
AZ 1
AZ 3AZ 2
Primary
NodePrimary
NodePrimary
node
AZ 1
AZ 1
Primary
NodePrimary
NodeRead Replica
node
AZ 1
Primary
NodePrimary
NodeRead Replica
node
Read Replicas—Oracle e SQL Server
Opções
• Oracle GoldenGate
• Produtos de terceiros
• Snapshots
• Amazon DMS
Escalando —single AZ
Com single AZ , o master tem um outage
dbinstancename.1234567890.us-west-2.rds.amazonaws.com:3006
Escalando —Multi-AZ
Com Multi-AZ, o standby é modificado primeiro
dbinstancename.1234567890.us-west-2.rds.amazonaws.com:3006
Escalando —automação
AWS CLI
Scheduled CLI—cron
aws rds modify-db-instance --db-instance-identifier sg-cli-test --db-instance-class
db.m4.large --apply-immediately
#Scale down at 8:00 PM on Friday
0 20 * * 5 /home/ec2-user/scripts/scale_down_rds.sh
#Scale up at 4:00 AM on Monday
0 4 * * 1 /home/ec2-user/scripts/scale_up_rds.sh
Escalando —automação
Scheduled—AWS Lambda
No server but still runs on a schedule!
import boto3
client=boto3.client('rds')
def lambda_handler(event, context):
response=client.modify_db_instance(DBInstanceIdentifier='sg-cli-test',
DBInstanceClass='db.m4.xlarge',
ApplyImmediately=True)
print response
Escalando —automação
import boto3
import json
client=boto3.client('rds')
def lambda_handler(event, context):
message = event['Records'][0]['Sns']['Message']
parsed_message=json.loads(message)
db_instance=parsed_message['Trigger']['Dimensions'][0]['value']
print 'DB Instance: ' + db_instance
response=client.modify_db_instance(DBInstanceIdentifier=db_instance,
DBInstanceClass='db.m4.large',
ApplyImmediately=True)
print response
Banco de Dados Relacional, MySQL-compatible
Performance e disponibilidade dos
Bancos de dados Comerciais
Simplicidade e eficiência de custo de um
Banco de dados open-source
O que é Amazon Aurora?
Escalando o tamanho dos dados
SYSBENCH WRITE-ONLY
DB Size Amazon Aurora
RDS MySQL
30 K IOPS (single AZ)
1 GB 107,000 8,400
10 GB 107,000 2,400
100 GB 101,000 1,500
1 TB 26,000 1,200
67xU P TO
FA S T E R
DB Size Amazon Aurora
RDS MySQL
30K IOPS (single AZ)
80 GB 12,582 585
800 GB 9,406 69
CLOUDHARMONY TPC-C
136xU P TO
FA S T E R
Trabalhando com read replicas
SysBench write-only workload
250 tables
Updates per
second Amazon Aurora
RDS MySQL
30 K IOPS (single AZ)
1,000 2.62 ms 0 s
2,000 3.42 ms 1 s
5,000 3.94 ms 60 s
10,000 5.38 ms 300 s
500xU P TO
L O W E R L A G
Faça menos I/Os
Minimize pacotes de redes
Faça cache de resultados anteriores
Offload da engine de banco
FAÇA MENOS TRABALHO
Processos Assíncronos
Reduza o caminho da latência
Use estruturas lock-free
Operações Batch juntas
SEJA MAIS EFICIENTE
Como alcançamos estes resultados?
DATABASES Fazem Muito I/O
NETWORK-ATTACHED STORAGE Utilizam muitos PACKETS/SECOND
HIGH-THROUGHPUT PROCESSING DOES NOT ALLOW CONTEXT SWITCHES
Aurora cluster with replicas
Amazon S3
AZ 1 AZ 2 AZ 3
Aurora primary
instance
Cluster volume spans 3 AZs
Aurora Replica Aurora Replica
I/O traffic in RDS MySQL
BINLOG DATA DOUBLE-WRITELOG FRM FILES
T Y P E O F W R I T E
MYSQL WITH STANDBY
EBS mirrorEBS mirror
AZ 1 AZ 2
Amazon S3
EBSAmazon Elastic
Block Store (EBS)
Primary
Instance
Standby
Instance
1
2
3
4
5
Faz write Amazon EBS—EBS escreve no mirror, e retorna status
Faz o write no standby usando replicação de storage
Faz o write no EBS da instância standby
Fluxo I/O
Passos 1, 3, 5 são sequenciais e síncronos
Amplifia a latência
Muitos tipos de write para cada interação
Escreve blocos de dados duas vezes para evitar perda de escrita
OBSERVAÇÕES
780 K transações
7,388 K I/Os por milhão de transação (excludes mirroring,
standby)
Média 7.4 I/Os por transação
PERFORMANCE
30 minute SysBench write-only workload, 100 GB dataset, RDS Single AZ, 30 K PIOPS
I/O traffic in Aurora (database)
AZ 1 AZ 3
Primary
Instance
Amazon S3
AZ 2
Replica
Instance
AMAZON AURORA
ASYNC
4/6 QUORUM
DISTRIBUTED
WRITES
BINLOG DATA DOUBLE-WRITELOG FRM FILES
T Y P E O F W R I T E S
30 minute SysBench writeonly workload, 100GB dataset
FLUXO I/O
Somente redo log; outros passos assíncronos
Não escreve blocos (checkpoint, cache replacement)
6x mais log writes, mas 9x menos tráfego de rede
Tolerância a picos de latência em rede e storage
OBSERVAÇÕES
27,378 K transações 35x MORE
950K I/Os por 1M transações (6x amplification) 7.7x LESS
PERFORMANCE
Envio dos redo log — ordenados por LSN
Organiza para os segmentos apropriados — demandados
Envio massivo dos logs para os storage nodes e faz
operações de escritas
Migração de Bancos de Dados Relacionais
para a AWS – Amazon RDS
Amazon
RDS
Customer
premisesAWS
Internet
VPN
Backup
Lógico/Físico
Sincronismo
ReplicaçãoAmazon
RDS
Amazon
S3
Amazon
EC2
Comece a migração em poucos minutos
Mantanha a aplicação rodando enquanto migra
Replicação entre, para e de Amazon EC2 ou Amazon RDS
Movimenta dados para o mesmo motor de DB ou outro
AWS
Database Migration
Service
(AWS DMS)
Amazon Aurora
Customer
premises
Application users
AWS
Internet
VPN
Inicie uma instância de replicação
Conecte-se aos bancos Origem e Destino
Selecione as tabelas, schemas oudatabases
AWS DMS pode criar as tabeleas, carregar e mantersincronizadas
Mude a aplicação para o banco de dados Destino
Aplicação rodando enquanto migra
AWS
DMSOrigem Destino
Change data capture (CDC)
Replication instance
Source Target
Update
t1 t2
t1
t2
Transactions Aplicações
das
transações
após a carga
Recursos disponíveis para os clientes —AWS
SCTGuia de uso: documentosaws.amazon.com/documentation/SchemaConversionTool/
Ou faça Download.
Download area: arquivos de
instalação.
Support forums: Ask questions
and review how-to guides.https://forums.aws.amazon.com/forum.jspa?forumID=208.
AWS Schema Conversion Tool
Features
Conversão de esquema Oracle e Microsoft SQL Server para MySQL, Amazon Aurora, MariaDB e PostgreSQL
Ou converta seu esquema entre o PostgreSQL e qualquer mecanismo MySQL
Relatório de avaliação de migração de banco de dados para escolher o melhor mecanismo de destino
Navegador de código que destaca lugares onde são necessárias edições manuais
Conexões seguras aos seus bancos de dados com SSL
Otimização do código nativo da nuvem
O AWS Schema Conversion Tool ajuda a automatizar
a conversão de schema de banco de dados e
códigos, para migrações entre motores de bancos de
dados ou data warehouses
Origens e Destinos com AWS DMS
Origens:
On-premises and Amazon EC2 instance databases:
• Oracle Database 10g – 12c
• Microsoft SQL Server 2005 – 2014
• MySQL 5.5 – 5.7
• MariaDB (MySQL-compatible data source)
• PostgreSQL 9.4 – 9.5
• SAP ASE 15.7+
RDS instance databases:
• Oracle Database 11g – 12c
• Microsoft SQL Server 2008R2 - 2014. CDC
operations are not supported yet.
• MySQL versions 5.5 – 5.7
• MariaDB (MySQL-compatible data source)
• PostgreSQL 9.4 – 9.5. CDC operations are not
supported yet.
• Amazon Aurora (MySQL-compatible data
source)
Destinos:
On-premises and EC2 instance databases:
• Oracle Database 10g – 12c
• Microsoft SQL Server 2005 – 2014
• MySQL 5.5 – 5.7
• MariaDB (MySQL-compatible data source)
• PostgreSQL 9.3 – 9.5
• SAP ASE 15.7+
RDS instance databases:
• Oracle Database 11g – 12c
• Microsoft SQL Server 2008 R2 - 2014
• MySQL 5.5 – 5.7
• MariaDB (MySQL-compatible data source)
• PostgreSQL 9.3 – 9.5
• Amazon Aurora (MySQL-compatible data
source)
Amazon Redshift
SCT ajuda a converter tabelas, views, e código
Sequences
User-defined types
Synonyms
Packages
Stored procedures
Functions
Triggers
Schemas
Tables
Indexes
Views
Sort and distribution keys
Homogêneas e Heterogêneas
Replication
instance
SQL Server MySQL
Replication
instance
Oracle Oracle
Replication
instance
Oracle Aurora
”Com a AWS, conseguimos realizar um set
de mudanças em um único momento”
“Com a nuvem da AWS
conseguimos ter
dinamismo, eficiência e
rapidez.
Nem tudo o que é rápido
leva eficiência junto.
Fazer algo grande e
eficiente em pouco
tempo é muito bom”- Juliano Souza
• A Dr.Consulta está
revolucionando
a saúde no Brasil.
• Trabalhamos para que todos nós
tenhamos acesso a saúde de
excelência, no menor custo
possível. Estamos fazendo isso
através de nossos centros
médicos eficientes, análise
sofisticada de dados e uso
inteligente de tecnologia.
Os Desafios
1. Mudança do fornecedor de cloud.
2. Mudança de tecnologia.
3. Nova mentalidade.
4. Foco no que realmente importa.
5. Parceria.
6. Melhor estrutura de BI.
A migração e o DMS.
• RDS
• Economia
• Administração
• Segurança
• Disponibilidade
• Replicação
• BI Real-Time
• Foco na
performance
da aplicação e
queries.
DMS
Sem gestão de
infraestrutura
Escale up/down
Custo-benefício
Provisionamento
instantâneoCompatibilidade
Amazon Relational Database Service (Amazon RDS)