Amazon Elastic Block Store
Avançado
Bruno 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 fim
da operação (ms)
• Capacidade: volume de dados que podem ser
armazenados (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 DBs
Cold 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 eficiente
entre 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 = λ * R
Q = 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
LatencyTP90(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
LatencyTP90(ms)
Queue depth
IOPS de 16 kB em leituras aleatórias, latência para diversos
tamanhos de fila
Latency (TP90) Avg Read IOPS
IOPS
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
LatencyTP90(ms)
Queue depth
IOPS de 16 kB em leituras aleatórias, latência para diversos
tamanhos de fila
Latency (TP90) Avg Read IOPS
IOPS
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
LatencyTP90(ms)
Queue depth
IOPS de 16 kB em leituras aleatórias, latência para diversos
tamanhos de fila
Latency (TP90) Avg Read IOPS
IOPS
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
LatencyTP90(ms)
Queue depth
IOPS de 16 kB em escritas aleatórias, latência para diversos
tamanhos de fila
Latency (TP90) AvgIOPS
IOPS
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 sido
acessados
• 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
precisar
Faça snapshotsSelecione o tipo de
instância adequado
para sua aplicação
Selecione o tipo de
volume adequado
para sua aplicação
Perguntas?
Obrigado!

3 amazon ebs avancado - 2015 - bfreis - v1

  • 1.
    Amazon Elastic BlockStore Avançado Bruno França dos Reis, Technical Trainer – Amazon Web Services
  • 2.
    Tópicos Visão Geral -Amazon EBS • Volumes • Snapshots Performance Criptografia Perguntas e Respostas
  • 3.
  • 4.
    Para a maioria,AWS é Plug and Play! Source: http://www.trucksplanet.com/catalog/model.php?id=1020
  • 5.
  • 6.
  • 7.
    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
  • 8.
    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
  • 9.
    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 fim da operação (ms) • Capacidade: volume de dados que podem ser armazenados (GB) • Tamanho do bloco: tamanho de cada E/S (kB)
  • 10.
    Tipos de volumesEBS • General Purpose (SSD) • Provisioned IOPS (SSD) • Magnetic Quando performance é importante, use volumes SSD.
  • 11.
    Volumes EBS baseadosem 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
  • 12.
    Volumes EBS GeneralPurpose (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
  • 13.
    General Purpose (SSD)– Base & picos 16 KB I/O size
  • 14.
    (2) Máximo decré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
  • 15.
    Minutos para gastartodos 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.
  • 16.
    Minutos para gastartodos 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.
  • 17.
    Exemplo de volumeGeneral 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
  • 18.
    Melhora no tempode 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)
  • 19.
    Volumes para Bancosde 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
  • 20.
    Orientações para dimensionamentode 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
  • 21.
    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
  • 22.
    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
  • 23.
    Resumo – tiposde 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 DBs Cold 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
  • 24.
    Por que GeneralPurpose (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)
  • 25.
    Sempre use GeneralPurpose (SSD) para volumes de boot
  • 26.
    Migração para volumesGeneral 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)
  • 27.
    Benefícios do usode 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 eficiente entre regiões
  • 28.
    Snapshots e Tags Usetags para adicionar metadados a Snapshots: • Tipo (dinário, semanal) • Versão • Id da instância • Id do volume • Aplicação
  • 29.
  • 30.
    Teoria das filas– Lei de Little Lei de Little é fundamental para otimização de performance • Matematicamente provada por John Little em 1961 Q = λ * R Q = 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
  • 31.
    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
  • 32.
    Elementos fundamentais paraotimização de performance 1. Instância EC2 2. Operação de E/S 4. Volume EBS 3. Link de rede
  • 33.
    Ferramentas disponíveis paraotimizaçã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
  • 34.
    1. Tipo deinstâ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)
  • 35.
    2. Instâncias “EBS-Optimized” Maioriadas 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
  • 36.
    Use instâncias “EBS-optimized” paraconsistência de performance
  • 37.
    3. Aplicação Tamanho dobloco 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
  • 38.
    Limites de IOPSe 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
  • 39.
    Limites de IOPSe 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
  • 40.
    Tamanho do bloco(E/S) determina se a performance da sua aplicação será limitada por IOPS ou taxa de transferência
  • 41.
    4. Tamanho dafila 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
  • 42.
    Monitorando volumes EBS Métricasimportantes do CloudWatch: • IOPS • Taxa de transferência • Latência • Tamanho da fila
  • 43.
    Latência • Tempo decorridoentre 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
  • 44.
    Latência: como seriaum gráfico de amostras?
  • 45.
  • 46.
    Latência: base decomparação
  • 47.
  • 48.
    Latência: instâncias deúltima geração
  • 49.
    EC2: comparação deinstâ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
  • 50.
    Latência de leituraaleatória 0.075 35.1 0 5 10 15 20 25 30 35 40 1 4 8 12 16 20 24 28 32 LatencyTP90(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
  • 51.
    Latência de leituraaleató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 LatencyTP90(ms) Queue depth IOPS de 16 kB em leituras aleatórias, latência para diversos tamanhos de fila Latency (TP90) Avg Read IOPS IOPS Tamanho de fila 1 apresenta a menor latência, mas também menor IOPS
  • 52.
    Latência de leituraaleató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 LatencyTP90(ms) Queue depth IOPS de 16 kB em leituras aleatórias, latência para diversos tamanhos de fila Latency (TP90) Avg Read IOPS IOPS Tamanho de fila entre 4 e 8 apresenta valores otimizados de IOPS e latência
  • 53.
    Latência de leituraaleató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 LatencyTP90(ms) Queue depth IOPS de 16 kB em leituras aleatórias, latência para diversos tamanhos de fila Latency (TP90) Avg Read IOPS IOPS Filas excessivamente grandes tem impacto negativo em IOPS e latência
  • 54.
    Latência de escritaaleató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 LatencyTP90(ms) Queue depth IOPS de 16 kB em escritas aleatórias, latência para diversos tamanhos de fila Latency (TP90) AvgIOPS IOPS Relação similar para escritas entre IOPS, latência e tamanho de fila
  • 55.
    Tamanho de filaotimizado 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
  • 56.
    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
  • 57.
    Performance máxima porinstâ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
  • 58.
    Use stripe sizede 128 KB ou 256 KB
  • 59.
    6. Pre-aquecimento • Eliminapenalidade 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 sido acessados • 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
  • 60.
    Use blocos grandesdurante pre-aquecimento Exemplo: sudo dd if=/dev/xvdf of=/dev/xvdf conv=notrunc bs=1M
  • 61.
    Últimas dicas deperformance • Use sistemas de arquivos modernos (ext4 ou XFS) • Alinhamento pode ser importante! • verifique que ferramentas usam 4k
  • 62.
    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
  • 63.
    EBS-optimized instance Quatro componentes:balanceados (Oh, YEAH!!) EC2 A “boatload” of I/O Right-sized EBS
  • 64.
    Ferramentas disponíveis paraotimizaçã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
  • 65.
  • 66.
    Por que criptografar? Segurança: Protegecontra 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
  • 67.
    AWS Key ManagementService (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
  • 68.
    Uso do KMSna criação de volumes EBS
  • 69.
    Integração de outrosserviç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
  • 70.
    Resumo Use criptografia, se precisar FaçasnapshotsSelecione o tipo de instância adequado para sua aplicação Selecione o tipo de volume adequado para sua aplicação
  • 71.
  • 72.