3 amazon ebs avancado - 2015 - bfreis - v1
-
Upload
amazon-web-services-latin-america -
Category
Software
-
view
190 -
download
0
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!