3 amazon ebs avancado - 2015 - bfreis - v1

Post on 25-Jul-2015

190 views 0 download

Transcript of 3 amazon ebs avancado - 2015 - bfreis - v1

Amazon Elastic Block Store

AvançadoBruno França dos Reis, Technical Trainer – Amazon Web Services

Tópicos

Visão Geral - Amazon EBS• Volumes

• Snapshots

Performance

Criptografia

Perguntas e Respostas

Amazon EBS

Para a maioria, AWS é Plug and Play!

Source: http://www.trucksplanet.com/catalog/model.php?id=1020

Um HD “normal”

EBS =

O que é Amazon EBS?

• Armazenamento de blocos

• Desponível via rede

• Usados em instâncias do Amazon EC2 na

mesma Zona de Disponibilidade (AZ)

• Snapshots point-in-time dos volumes, gravados

no Amazon S3

O Que é Amazon EBS? (parte 2)

• É um serviço!

• É independente do EC2

• Objetivos de disponibilidade regionais e por AZ– Todos os volumes EBS são projetados para 99.999% de

disponibilidade

• Mais de 1,5 milhões de volumes são criados

todos os dias

Algumas definições…

• IOPS: operações de E/S por segundo (#)

• Taxa de transferência: taxa de E/S no dispositivo (MB/s)

• Latência: tempo entre início da requisição e fimda operação (ms)

• Capacidade: volume de dados que podem serarmazenados (GB)

• Tamanho do bloco: tamanho de cada E/S (kB)

Tipos de volumes EBS

• General Purpose (SSD)

• Provisioned IOPS (SSD)

• Magnetic

Quando performance é importante, use volumes SSD.

Volumes EBS baseados em SSD

• Considerações aplicáveis a General Purpose

(SSD) e Provisioned IOPS (SSD)

• IOPS medidos em blocos de até 256 kB

• Latências esperadas menores que 10 ms

• Projetados para 99,999% de disponibilidade

Volumes EBS General Purpose (SSD)

• Novo tipo de volume EB padrão

• Podem atingir picos de 3000 IOPS– Volumes maiores seguram o pico por mais

tempo

• Performance: 3 IOPS por GB– Máximo de 10.000 IOPS

• 99% de consistência de performance

• Até 160 MB/s de taxa de transferência

General Purpose (SSD) – Base & picos

16 KB I/O size

(2) Máximo de créditos de E/S

acumulados = 5,4 milhões

(1) Sempre acumulando 3

IOPS por GB

Explorando os picos do General Purpose (SSD)

Performance de base: 3 IOPS por GB

(3) É possível gastar até

3.000 créditos de E/S IO

por segundo

Minutos para gastar todos os créditos de E/S depende da capacidade

Quanto maior o volume, mais tempo leva para gastar os créditos de E/S. Em outras

palavras, o pico dura mais tempo. Volumes de 1+ TB nunca esgotam créditos de E/S.

Minutos para gastar todos os créditos de E/S depende da capacidade

Quanto maior o volume, mais tempo leva para gastar os créditos de E/S. Em outras

palavras, o pico dura mais tempo. Volumes de 1+ TB nunca esgotam créditos de E/S.

Exemplo de volume General Purpose (SSD)

Microsoft Windows, volume raíz de 30 GB:

• Começa com 5,4M de créditos de E/S

• Alcança pico de 3000 IOPS por até 30

minutos

• Continuamente acumulando 90 créditos

de E/S por segundo

Melhora no tempo de inicialização

m3.medium

Volume type Boot time Access time OS

GP2 3:31 4:33 Windows Server

2012

Magnetic 4:30 7:16 Windows Server

2012

GP2 0:36 0:45 CentOS6

Magnetic 0:57 1:16 CentOS6

40% de redução no tempo de boot usando General Purpose (SSD)

Volumes para Bancos de Dados

Volume de 1 TB PIOPS com 4k IOPS = $526.40 por mês, por volume

Volume de 1 TB volume GP2 com 3k IOPS = $102.40

2 x 500 GB, 3k IOPS, com picos de até 6k = $102.40

80% de redução de custo, 50% mais performance

de pico usando General Purpose SSD

Orientações para dimensionamento de General

Purpose (SSD)

Discos de boot, desenvolvimento, teste, aplicações web:

Provisione a capacidade necessária (GB) para a aplicação

Bancos de dados:

1. Calcule a quantidade de IOPS necessária em regime permanente

2. Faça o seguinte cálculo: (IOPS em regime permanente) ÷ 3 = GB para provisionar

Nota: Picos de E/S vão suportar:

• Carga de operações “scan”

• Picos sazonais

Volumes EBS PIOPS (SSD)

• Melhores para aplicações com E/S intensa, bancos de

dados que necessitem consistência de performance

• Taxa de transferência de até 320 MB/s

• Provisione até 20.000 IOPS por volume

(suporta proporção IOPS:GB de 30)

• Projetado para 99,9% de consistência em performance

Volumes EBS Magnetic

• Melhores para uso “a frio”

• Dados raramente acessados que precisam estar

imediatamente disponíveis

• IOPS: ~100 IOPS em regime permanente

• Eventuais picos de algumas centenas

• Taxa de transferência: variável, cerca de dezenas de MB/s

• Latência: variável, tipicamente ~20-40 ms de leitura, ~2-10

ms de escrita

Resumo – tipos de volumes EBS

General Purpose (SSD) Provisioned IOPS (SSD) Magnetic

Recommend use cases

Boot volumes

Small to med DBs

Dev and test

I/O-intensive workloads

Large DBsCold storage

Storage media SSD-backed SSD-backed Magnetic-backed

Volume size 1 GB - 16 TB 4 GB - 16 TB 1 GB - 1 TB

Max IOPS per volume 10,000 IOPS 20,000 IOPS ~100 IOPS

Burst < 1 TB to 3000 IOPS baseline baseline

Read and write peak throughput 160 MB/s 320 MB/s ~50-90 MBps

Max IOPS per node (16k) 48,000 48,000 48,000

Peak throughput node 800 MB/s 800 MB/s 800 MB/s

Latency (random read) 1-2 ms 1-2 ms 20-40 ms

API Name gp2 io1 standard

Price* $.10/GB-month$.125/GB-month

$.065/provisioned IOPS

$.05/GB-month

$.05/ 1M I/O

Por que General Purpose (SSD) é o padrão?

• Elevada performance de base

• Picos para níveis ainda mais elevados de IOPS

• Precificação de dimensão única, baseada em

capacidade

– Projeção de custos simplificada

– Elimina complexidade de dimensionamento

• Densidade de preço atrativa ($/GB, $/IOPS)

Sempre use General Purpose (SSD) para volumes de boot

Migração para volumes General Purpose (SSD)

Troque o tipo de volume na inicialização

Use Snapshots do EBS

Você pode conseguir redimensionar o sistema de

arquivos

Use o guia para dimensionamento do General

Purpose (SSD)

Benefícios do uso de Snapshots EBS

Mais duráveis que um volume EBS• Armazenados no Amazon S3

Diferenciais• Primeiro snapshot é um clone

• Pague apenas pelo que usar

Independente de Zona de Disponibilidade• Clone em qualquer AZ

Podem ser copiados de maneira eficienteentre regiões

Snapshots e Tags

Use tags para adicionar

metadados a Snapshots:

• Tipo (dinário, semanal)

• Versão

• Id da instância

• Id do volume

• Aplicação

Performance

Teoria das filas – Lei de Little

Lei de Little é fundamental para otimização de

performance• Matematicamente provada por John Little em 1961

Q = λ * RQ = Tamanho da fila = # de requisições em espera

λ = Taxa de chegada = requisições chegando (#/s)

R = Tempo de resposta = tempo médio para completar requisições

Performance do EBS está relacionada a essa lei

Otimização de performance é medida por:

IOPS: Taxa de E/S (IOPS)

Latência: Tempo entre envio de

requisição e confirmação (ms)

Taxa de transferência: taxa de MB/s; taxa de transferência = IOPS × tamanho E/S

Elementos fundamentais para otimização de

performance

1. Instância EC2

2. Operação de E/S

4. Volume EBS

3. Link de rede

Ferramentas disponíveis para otimização de

performance:

1. Tipo de instância EC2: Largura de banda de rede (Mbps)

2. Instâncias “EBS-optimized”: Opção da instância (on/off)

3. Aplicação: Tamanho de bloco, proporção E/S, serialização

4. Tamanho da fila: Número de operações E/S em espera

5. RAID: Múltiplos volumes para aumento de performance

6. Pre-aquecimento: Elimina penalidade de primeiro acesso

1. Tipo de instância EC2

Compute-optimized – C3,C4

Memory-optimized – R3

General-Purpose – M3

EBS

EC2

Selecione o tipo de instância EC2 com as características

de performance necessárias para usa aplicação (CPU,

memória, rede)

2. Instâncias “EBS-Optimized”

Maioria das famílias de instância suportam “EBS-optimized”

Instâncias “EBS-optimized” suportam até 4 Gbps

• Realize 32.000 IOPS de 16kB, ou 500 MB/s

Instâncias EC2 *.8xlarge suportam rede de 10 Gbps

Máximo IOPS por instância é ~48.000 IOPS de 16kB de E/S

Use instâncias “EBS-optimized”

para consistência de performance

3. Aplicação

Tamanho do bloco de E/S:

• 4 KB até 64 MB

Padrão de acesso:

• Sequencial ou aleatório

Tipo de operação:

• Leituras ou escritas

Concorrência de E/S:

• Número de operações

concorrentes

Volumes baseados em SSD medem 1 operação de até 256 KB

Volumes baseados em SSD entregam mesma performance para leituras e

escritas

Limites de IOPS e taxa de transferência

20,000 IOPS

PIOPS volume

20,000 IOPS

320 MB/s

throughput

Pode-se alcançar até 20.000 IOPS

com operações de E/S menores

Pode-se alcançar até 320 MB/s

com operações de E/S maiores

Limites de IOPS e taxa de transferência

8,000 IOPS

PIOPS volume

8,000 IOPS

320 MB/s

throughput

8.000 x 64 kB = 512 MB/s

1,250 x 256 kB = 320 MB/s

8.000 x 8 kB = 64 MB/s

8.000 x 16 kB = 128 MB/s

16.000 x 8 kB = 128 MB/s

8.000 x 32 kB = 256 MB/s

Tamanho do bloco (E/S) determina se a

performance da sua aplicação será limitada por

IOPS ou taxa de transferência

4. Tamanho da fila

Uma operação de E/S

EBS

Se não usou operação a que tinha direito, perdeu

EC2

Quantidade de operações de E/S pendentes

Monitorando volumes EBS

Métricas importantes do

CloudWatch:

• IOPS

• Taxa de transferência

• Latência

• Tamanho da fila

Latência

• Tempo decorrido entre envio da operação de E/S e seu

término

• Requisitos de performance podem ser baseados em:

– IOPS

– latência

– ou ambos

• Existe uma relação entre IOPS, latência e tamanho da fila

Latência: como seria um gráfico de amostras?

Latência: usando boxplot

Latência: base de comparação

Latência: volume General Purpose (SSD)

Latência: instâncias de última geração

EC2: comparação de instâncias

m2.4xlarge

CPU: Intel Xeon

vCPU: 8

Memória: 68.4 GiB

Preço: $0.98/hora

r3.2xlarge

CPU: Intel Xeon E5-2670 v2

vCPU: 8

Memória: 61 GiB

Enhanced Networking

Preço: $0.70/hora

* All pricing from us-east-1

Latência de leitura aleatória

0.075

35.1

0

5

10

15

20

25

30

35

40

1 4 8 12 16 20 24 28 32

La

ten

cy T

P9

0 (

ms

)

Queue depth

Latência de leitura aleatória para diversos tamanhos de fila

Latency (TP90)

Read latency linearly increases with increase in queue depth

Latência de leitura aleatória

0.075

35.1

2.09

1,865

4,152

3,851

-

500

1,000

1,500

2,000

2,500

3,000

3,500

4,000

4,500

0

5

10

15

20

25

30

35

1 4 8 12 16 20 24 28 32

La

ten

cy

TP

90

(m

s)

Queue depth

IOPS de 16 kB em leituras aleatórias, latência para diversostamanhos de fila

Latency (TP90) Avg Read IOPS

IOP

S

Tamanho de fila 1 apresenta a menor latência, mas também menor IOPS

Latência de leitura aleatória

0.075

35.1

2.09

1,865

4,152

3,851

-

500

1,000

1,500

2,000

2,500

3,000

3,500

4,000

4,500

0

5

10

15

20

25

30

35

1 4 8 12 16 20 24 28 32

La

ten

cy

TP

90

(m

s)

Queue depth

IOPS de 16 kB em leituras aleatórias, latência para diversostamanhos de fila

Latency (TP90) Avg Read IOPS

IOP

S

Tamanho de fila entre 4 e 8 apresenta valores otimizados de IOPS e latência

Latência de leitura aleatória

0.075

35.1

2.09

1,865

4,152

3,851

-

500

1,000

1,500

2,000

2,500

3,000

3,500

4,000

4,500

0

5

10

15

20

25

30

35

1 4 8 12 16 20 24 28 32

La

ten

cy

TP

90

(m

s)

Queue depth

IOPS de 16 kB em leituras aleatórias, latência para diversostamanhos de fila

Latency (TP90) Avg Read IOPS

IOP

S

Filas excessivamente grandes tem impacto negativo em IOPS e latência

Latência de escrita aleatória

0.08

7.71

845

4,152

0

500

1,000

1,500

2,000

2,500

3,000

3,500

4,000

4,500

0

1

2

3

4

5

6

7

8

9

10

1 4 8 12 16 20 24 28 32

La

ten

cy

TP

90

(m

s)

Queue depth

IOPS de 16 kB em escritas aleatórias, latência para diversostamanhos de fila

Latency (TP90) AvgIOPS

IOP

S

Relação similar para escritas entre IOPS, latência e tamanho de fila

Tamanho de fila otimizado para alcançar baixa latência e alto IOPS

é tipicamente entre 4-8; ~1 operação em espera por 500 IOPS

Instâncias “EBS-optimized” apresentam consistência nas latências

Use volumes SSD com instâncias EC2 de última geração

5. RAID

Aumenta performance, capacidade ou ambos

Para mais de 320 MB/s ou 20k IOPS, é necessário

fazer “striping”

Não misture tipos de volumes

Geralmente RAID 0 ou LVM stripe

Evite RAID para redundância

EBS

EC2

Performance máxima por instância

Snapshots de volumes em RAID?

• Interromper E/S do sistema de arquivos, e criar snapshot; ou

• Desmontar sistema de arquivos, e criar snapshot; ou

• Usar ferramentas específicas de cada SO.

12×400 GB PIOPS, pre-aquecido, RAID 0 LVM, stripe size 128 KB, anexado a instância CR1.8xlarge

Use stripe size de 128 KB ou 256 KB

6. Pre-aquecimento

• Elimina penalidade de primeiro acesso

• Tipicamente 5%, pior caso extremo é perda de 50% de performance (IOPS e latência) quando volumes são usados sem pre-aquecimento:

– Performance será conforme provisionada quando todos os blocos tiverem sidoacessados

• Recomendações para benchmarks:

– Para novos volumes:

• Linux: Use DD para escrever no volume todo

• Windows: use “full format” NTFS

– Pre-aquecimento de 1 TB PIOPS/General Purpose (SSD) leva ~1 hora

• Lembre de verificar a documentação: http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-prewarm.html

Use blocos grandes durante pre-aquecimento

Exemplo: sudo dd if=/dev/xvdf

of=/dev/xvdf conv=notrunc bs=1M

Últimas dicas de performance

• Use sistemas de arquivos modernos (ext4 ou

XFS)

• Alinhamento pode ser importante!

• verifique que ferramentas usam 4k

Workload/

software

Typical block

size

Random/

Seq?

Max EBS @ 500

MB/s instances

Max EBS @

1 GB/s instances

Max EBS @ 10 GB/s

instances

Oracle DB Configurable:2 KB

–16 KB

Default 8 KB

random ~7,800 IOPS ~15,600 IOPS ~96,000 IOPS

Microsoft SQL

Server

8 KB w/ 64 KB

extents

random ~7,800 IOPS ~15,600 IOPS ~80,000 IOPS

MySQL 16 KB random ~4,000 IOPS ~7,800 IOPS ~48,000 IOPS

PostgreSQL 8 KB random ~7,800 IOPS ~15,600 IOPS ~96,000 IOPS

MongoDB 4 KB serialized ~15,600 IOPS ~31,000 IOPS ~96,000 IOPS

Apache

Cassandra

4 KB random ~15,600 IOPS ~31,000 IOPS ~96,000 IOPS

GlusterFS 128 KB sequential ~500 IOPS ~1,000 IOPS ~6,000 IOPS

Tabela de exemplo: aplicações na AWS

EBS-optimized instance

Quatro componentes: balanceados (Oh, YEAH!!)

EC2

A “boatload” of I/O

Right-sized EBS

Ferramentas disponíveis para otimização de

performance:

1. Tipo de instância EC2: Largura de banda de rede (Mbps)

2. Instâncias “EBS-optimized”: Opção da instância (on/off)

3. Aplicação: Tamanho de bloco, proporção E/S, serialização

4. Tamanho da fila: Número de operações E/S em espera

5. RAID: Múltiplos volumes para aumento de performance

6. Pre-aquecimento: Elimina penalidade de primeiro acesso

Criptografia

Por que criptografar?

Segurança:

Protege contra alguém que consiga acesso físico não autorizado ao volume

Pode ajudar com compliance:

• Chief Information Security Officer determina uso de criptografia para proteção de

dados sigilosos

• Auditores terceiros querem evidência de que dados sigilosos de clientes se

encontram criptografados

Facilidade de uso e redução de custos:

Criptografia do EBS oferece:

• Criptografia ativada com “checkbox”, sem custos adicionais

• Gerenciamento de chaves seguro e automatizado

AWS Key Management Service (KMS)

Serviço que simplifica criptografia e gerenciamento de chaves

Permite criação, uso e gerenciamento de chaves de criptografia a partir de

aplicações e outros serviços da AWS (Amazon S3, EBS, Amazon

Redshift)

Funções para gerenciamento de chaves incluem:

• Criar, habilitar, desabilitar, rotacionar, definição de políticas de acesso nas

chaves mestras (customer master key, CMK)

• Geração de chaves de dados (data keys) que podem ser exportadas do

serviços depois de criptografadas pela CMK

• Autidoria do uso das CMK através do AWS CloudTrail

Uso do KMS na criação de volumes EBS

Integração de outros serviços com KMS

2-tiered key hierarchy using envelope

encryption

Unique data key encrypts customer data

AWS KMS master keys encrypt data keys

Benefits of envelope encryption:

• Limits risk of a compromised data key

• Better performance for encrypting large data

• Easier to manage a small number of master

keys than millions of data keys

Master key(s)

Data key 1

S3 object EBS

volume

Amazon

Redshift

cluster

Data key 2 Data key 3 Data key 4

Custom

application

KMS

Resumo

Use criptografia, se

precisarFaça snapshotsSelecione o tipo de

instância adequado

para sua aplicação

Selecione o tipo de

volume adequado

para sua aplicação

Perguntas?

Obrigado!