migrando seu banco de dados para a aws - deep dive em amazon rds e aws database migration service

61
© 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 AWS Deep Dive em Amazon RDS e AWS Database Migration Service

Upload: amazon-web-services-latam

Post on 23-Jan-2018

246 views

Category:

Technology


3 download

TRANSCRIPT

© 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;

Bancos de Dados Relacionais

Amazon EC2

Amazon

RDS

DBs suportados Linux ou Windows

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

Disponibilidade Oracle

Amazon

RDS

Disponibilidade SQL Server

Amazon

RDS

Segurança

DB

Application

Users

IAM

VPC

Segurança

Compliance

Singapore MTCS

27001/9001

27017/27018

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

SSL

Disponível para os seis

Motores de Banco de Dados

Critografia de tráfego de Banco de Dados

Criptografia de Dados

EBS

AWS KMS

volume

Oracle

Instance

RDS

TDE

CloudHSM

TDE_HSM

Segurança

Segurança

Métricas e

monitoramento

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)

Escalando RDS

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 up—or downAWS Management Console

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

Escalando baseado em métricas

• Amazon CloudWatch e AWS Lambda!

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

Amazon S3

AZ 1 AZ 2 AZ 3

Aurora primary

instance

Cluster volume spans 3 AZs

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

Carga é feita por tabela

Replication instance

Source Target

Change data capture (CDC)

Replication instance

Source Target

Update

t1 t2

t1

t2

Transactions Aplicações

das

transações

após a carga

Opção Multi-AZ para alta disponibilidade

Customer

premises

or AWS

AWS

Internet

VPN

AWS DMS

AWS DMS

Instância de

Replicação

Origem Destino

O que mais pode fazer?

Origem

Origem

Instância de

Replicação

Origem Destino

O que mais pode fazer?

Destino

Destino

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

Processo de Migração

Demonstração

”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.

Arquitetura

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)

Obrigado!

Hugo Rozestraten

Lembre-se de avaliar a

apresentação!