Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final
-
Upload
amazon-web-services-latin-america -
Category
Business
-
view
882 -
download
0
description
Transcript of Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final
![Page 1: Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final](https://reader034.fdocuments.us/reader034/viewer/2022051818/5496aadeb47959424d8b506c/html5/thumbnails/1.jpg)
© 2014 Amazon.com, Inc. and its affiliates. All rights reserved. May not be copied, modified, or distributed in whole or in part without the express consent of Amazon.com, Inc. © 2014 Amazon.com, Inc. and its affiliates. All rights reserved. May not be copied, modified, or distributed in whole or in part without the express consent of Amazon.com, Inc.
Escalando na AWS até os
Primeiros 10 Milhões de Usuários Fábio Aragão da Silva
Arquiteto de Soluções
Amazon Web Services LATAM
27 de Maio de 2014
![Page 2: Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final](https://reader034.fdocuments.us/reader034/viewer/2022051818/5496aadeb47959424d8b506c/html5/thumbnails/2.jpg)
Escalando na AWS até os Primeiros 10 Milhões de
Usuários
• EU: – Fábio Aragão da Silva – [email protected]
• VOCÊS: Estão aqui para aprender mais sobre
como escalar sua infraestrutura na AWS
• HOJE: Veremos as melhores praticas e
considerações para quanto estiverem
projetando em larga escala na AWS
![Page 3: Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final](https://reader034.fdocuments.us/reader034/viewer/2022051818/5496aadeb47959424d8b506c/html5/thumbnails/3.jpg)
Escalado até 10 milhões de usuários: uma estória
em quatro capítulos
• Introdução e Primeiros Passos
• Fundação
• Ferramentas e Monitoração
• 10 Milhões de Usuários e Além
![Page 4: Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final](https://reader034.fdocuments.us/reader034/viewer/2022051818/5496aadeb47959424d8b506c/html5/thumbnails/4.jpg)
E então, como escalar?
![Page 5: Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final](https://reader034.fdocuments.us/reader034/viewer/2022051818/5496aadeb47959424d8b506c/html5/thumbnails/5.jpg)
![Page 6: Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final](https://reader034.fdocuments.us/reader034/viewer/2022051818/5496aadeb47959424d8b506c/html5/thumbnails/6.jpg)
![Page 7: Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final](https://reader034.fdocuments.us/reader034/viewer/2022051818/5496aadeb47959424d8b506c/html5/thumbnails/7.jpg)
Bastante
material pra ler
![Page 8: Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final](https://reader034.fdocuments.us/reader034/viewer/2022051818/5496aadeb47959424d8b506c/html5/thumbnails/8.jpg)
Não é por
onde
deveriamos
começar
Bastante
material pra ler
![Page 9: Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final](https://reader034.fdocuments.us/reader034/viewer/2022051818/5496aadeb47959424d8b506c/html5/thumbnails/9.jpg)
Auto Scaling é uma
ferramenta e um destino.
Mas não é a única solução
mágica que resolve todos os
problemas.
![Page 10: Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final](https://reader034.fdocuments.us/reader034/viewer/2022051818/5496aadeb47959424d8b506c/html5/thumbnails/10.jpg)
E então:
o que fazer
primeiramente?
![Page 11: Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final](https://reader034.fdocuments.us/reader034/viewer/2022051818/5496aadeb47959424d8b506c/html5/thumbnails/11.jpg)
Começando pelo
básico…
![Page 12: Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final](https://reader034.fdocuments.us/reader034/viewer/2022051818/5496aadeb47959424d8b506c/html5/thumbnails/12.jpg)
Regiões US-WEST (Oregon)
EU-WEST (Ireland)
ASIA PAC (Tókio)
US-WEST (N. California)
AMÉRICA DO SUL (São Paulo)
US-EAST (Virginia)
AWS GovCloud (US)
ASIA PAC
(Sydney)
ASIA PAC
(Singapore)
CHINA (Beijing)
![Page 13: Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final](https://reader034.fdocuments.us/reader034/viewer/2022051818/5496aadeb47959424d8b506c/html5/thumbnails/13.jpg)
Zonas de Disponibilidade US-WEST (Oregon)
EU-WEST (Ireland)
ASIA PAC (Tókio)
US-WEST (N. California)
AMÉRICA DO SUL (São Paulo)
US-EAST (Virginia)
AWS GovCloud (US)
ASIA PAC
(Sydney)
ASIA PAC
(Singapore)
CHINA (Beijing)
![Page 14: Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final](https://reader034.fdocuments.us/reader034/viewer/2022051818/5496aadeb47959424d8b506c/html5/thumbnails/14.jpg)
Pontos de Presença
![Page 15: Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final](https://reader034.fdocuments.us/reader034/viewer/2022051818/5496aadeb47959424d8b506c/html5/thumbnails/15.jpg)
• Negócio de mais de $7B
• Mais de 8,000 funcionários
• Uma porrada grande
quantidade de servidores
Todos os dias, a AWS
acrescenta capacidade
computacional equivalente a
esse negócio de $7B em 2004
2004 2014
![Page 16: Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final](https://reader034.fdocuments.us/reader034/viewer/2022051818/5496aadeb47959424d8b506c/html5/thumbnails/16.jpg)
Computação Armazenagem
& Entrega de
Conteúdo
Infraestrutura Global da AWS
Banco de
Dados
Serviços para Aplicações
Deployment & Administração
Redes
![Page 17: Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final](https://reader034.fdocuments.us/reader034/viewer/2022051818/5496aadeb47959424d8b506c/html5/thumbnails/17.jpg)
Amazon
CloudSearch Amazon
SQS
Amazon
SNS
Amazon
Elastic
Transcoder
Amazon SWF Amazon
SES
Amazon
DynamoDB
Amazon
RDS
Amazon
ElastiCache
Amazon
RedShift
AWS Storage
Gateway
Amazon S3
Amazon
Glacier
Amazon
CloudFront Amazon
EC2
Amazon
EMR Amazon
VPC
Amazon
Route 53 AWS
Direct
Connect
Amazon
Kinesis
Amazon
CloudWatch AWS IAM AWS
CloudFormation
Amazon Elastic
Beanstalk AWS
Data
Pipeline
AWS
OpsWorks AWS
CloudTrail
Computação Armazenagem
& Entrega de
Conteúdo
Infraestrutura Global da AWS
Banco de
Dados
Serviços para Aplicações
Deployment & Administração
Redes
![Page 18: Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final](https://reader034.fdocuments.us/reader034/viewer/2022051818/5496aadeb47959424d8b506c/html5/thumbnails/18.jpg)
Vamos começar então
pelo dia um, com um
usuário ( você )
![Page 19: Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final](https://reader034.fdocuments.us/reader034/viewer/2022051818/5496aadeb47959424d8b506c/html5/thumbnails/19.jpg)
Dia Um, Um Usuário:
• Uma única instância EC2 – Com toda a pilha de software no
servidor • Servidor de Aplicações WEB
• Banco de Dados
• Gerenciamento
• etc.
• Um único endereço IP elástico
• Amazon Route 53 como DNS
Instância
EC2
Endereço IP
Elástico
Amazon
Route 53 Usuário
![Page 20: Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final](https://reader034.fdocuments.us/reader034/viewer/2022051818/5496aadeb47959424d8b506c/html5/thumbnails/20.jpg)
“Putz Vamos precisar de uma caixa maior”
• Abordagem mais simples
• Agora podendo usar PIOPs
• Instâncias para I/O Alto
• Instâncias para Memória Alta
• Instâncias para CPU Alta
• Instâncias para Armazenagem Alta
• É fácil trocar o tipo de instância
• Mas vai atingir um limite m3.xlarge
m1.small
i2.4xlarge
![Page 21: Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final](https://reader034.fdocuments.us/reader034/viewer/2022051818/5496aadeb47959424d8b506c/html5/thumbnails/21.jpg)
m3.xlarge
m1.small
i2.4xlarge
“Putz Vamos precisar de uma caixa maior”
• Abordagem mais simples
• Agora podendo usar PIOPs
• Instâncias para I/O Alto
• Instâncias para Memória Alta
• Instâncias para CPU Alta
• Instâncias para Armazenagem Alta
• É fácil trocar o tipo de instância
• Mas vai atingir um limite
![Page 22: Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final](https://reader034.fdocuments.us/reader034/viewer/2022051818/5496aadeb47959424d8b506c/html5/thumbnails/22.jpg)
Dia Um, Um Usuário:
• Poderiamos chegar
potencialmente a dezenas ou
até alguns milhares de
usuários dependendo do
tráfego e da complexidade da
aplicação
• Mas sem tolerância a falhas
• E sem redundância
Instância
EC2
Endereço IP
Elástico
Amazon
Route 53 Usuário
![Page 23: Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final](https://reader034.fdocuments.us/reader034/viewer/2022051818/5496aadeb47959424d8b506c/html5/thumbnails/23.jpg)
Dia Um, Um Usuário:
• Poderiamos chegar
potencialmente a dezenas ou
até alguns milhares de
usuários dependendo do
tráfego e da complexidade da
aplicação
• Mas sem tolerância a falhas
• E sem redundância
Instância
EC2
Endereço IP
Elástico
Amazon
Route 53 Usuário
![Page 24: Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final](https://reader034.fdocuments.us/reader034/viewer/2022051818/5496aadeb47959424d8b506c/html5/thumbnails/24.jpg)
Dia Dois, Usuários > 1: Primeiramente, vamos separar nosso host “monolítico” em mais de um servidor:
• Servidor Web
• Servidor de Banco de Dados – E que tal fazer uso de um
serviço de Banco de Dados gerenciado?
Instância
WEB
Instância
de Banco
Endereço
IP elástico
Amazon
Route 53 Usuário
![Page 25: Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final](https://reader034.fdocuments.us/reader034/viewer/2022051818/5496aadeb47959424d8b506c/html5/thumbnails/25.jpg)
Gerência Própria Completamente Gerenciado
Banco de Dados
na Amazon EC2
Sua escolha de banco
de dados rodando na
Amazon EC2
Traga sua própria
licença (BYOL)
Amazon
DynamoDB
Serviço de Banco
NoSQL gerenciado
usando discos de SSD
Escalabilidade simples
e nenhuma
administração
Amazon RDS
Microsoft SQL, Oracle,
MySQL or PostgreSQL
como serviço
gerenciado
Licenciamento flexível
BYOL or com licença
incluída
Amazon
Redshift
Serviço de data
warehouse altamente
paralelo, da ordem de
petabytes
Rápido, poderoso e
fácil de escalar
Opções de Bancos de Dados
![Page 26: Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final](https://reader034.fdocuments.us/reader034/viewer/2022051818/5496aadeb47959424d8b506c/html5/thumbnails/26.jpg)
Escalado até 10 milhões de usuários: uma estória em quatro capítulos
• Introdução e Primeiros Passos
• Fundação
• Ferramentas e Monitoração
• 10 Milhões de Usuários e Além
![Page 27: Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final](https://reader034.fdocuments.us/reader034/viewer/2022051818/5496aadeb47959424d8b506c/html5/thumbnails/27.jpg)
Mas como escolher a
tecnologia de Banco
de Dados ideal?
SQL? NoSQL?
![Page 28: Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final](https://reader034.fdocuments.us/reader034/viewer/2022051818/5496aadeb47959424d8b506c/html5/thumbnails/28.jpg)
Alguns de vocês
talvez não gostem
muito do que eu vou
falar agora. Mas…
![Page 29: Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final](https://reader034.fdocuments.us/reader034/viewer/2022051818/5496aadeb47959424d8b506c/html5/thumbnails/29.jpg)
Comece com Banco
de Dados SQL
![Page 30: Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final](https://reader034.fdocuments.us/reader034/viewer/2022051818/5496aadeb47959424d8b506c/html5/thumbnails/30.jpg)
A não ser que você já
tenha uma equipe
bem familiar com
NoSQL…
![Page 31: Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final](https://reader034.fdocuments.us/reader034/viewer/2022051818/5496aadeb47959424d8b506c/html5/thumbnails/31.jpg)
Comece com Banco
de Dados SQL
![Page 32: Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final](https://reader034.fdocuments.us/reader034/viewer/2022051818/5496aadeb47959424d8b506c/html5/thumbnails/32.jpg)
Mas por que começar com SQL?
• É uma tecnologia bem conhecida e estável
• Muito código já existente, comunidades, livros,
ferramentas, etc.
• Você provavelmente não vai conseguir ”sentar” um
banco SQL antes dos seus primeiros 10 milhões de
usuários. É sério, você não vai conseguir*
• Padrões claros e bem conhecidos para escalar
* A não ser que você se esforce muito esteja manipulando enormes quantidades de
dados; ainda assim um banco SQL terá lugar na sua pilha de software
![Page 33: Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final](https://reader034.fdocuments.us/reader034/viewer/2022051818/5496aadeb47959424d8b506c/html5/thumbnails/33.jpg)
A-há! Te peguei!
Você disse
“enormes
quantidades de
dados”. E eu vou
ter enooooormes
quantidades de
dados!
![Page 34: Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final](https://reader034.fdocuments.us/reader034/viewer/2022051818/5496aadeb47959424d8b506c/html5/thumbnails/34.jpg)
Só se a sua utilização estiver
gerando muitos TB ( >5 ) de dados
no primeiro ano OU você possuir um
fluxo extremamente intensivo em
termos de processamento de
dados… é que você provavelmente
vai precisar de verdade de NoSQL
![Page 35: Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final](https://reader034.fdocuments.us/reader034/viewer/2022051818/5496aadeb47959424d8b506c/html5/thumbnails/35.jpg)
Em todo caso, quando então usar
NoSQL? • Aplicações de latência super baixa
• Conjunto de dados orientado a metadados
• Dados altamente não-relacionais
• Necessidade de tabelas sem estrutura pré-definida*
• Quantidades massivas de dados (na casa dos TB)
• Ingestão rápida de dados ( milhares de registros/seg )
• Já possui equipe qualificada em NoSQL
*Necessidade != “é mais fácil pra desenvolver”
![Page 36: Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final](https://reader034.fdocuments.us/reader034/viewer/2022051818/5496aadeb47959424d8b506c/html5/thumbnails/36.jpg)
Quando NoSQL = Sim…
considere utilizar o DynamoDB
![Page 37: Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final](https://reader034.fdocuments.us/reader034/viewer/2022051818/5496aadeb47959424d8b506c/html5/thumbnails/37.jpg)
Amazon Dynamo DB
• Banco NoSQL gerênciado e
com throughput provisionado
• Performance rápida e
previsível
• Arquitetura completamente
distribuída e tolerante a falhas
Característica Detalhes
Throughput
provisionado
Suba ou desça a capacidade de
escrita e leitura facilmente
Performance
previsível
Latência média de um único
dígito através de arquitetura
baseada em discos SSD
Consistência
Forte
Tenha certeza de estar lendo os
valores mais atuais
Tolerância a
falhas
Dados replicados entre
diferentes Zonas de
Disponibilidade
Monitoramento Integrado ao Amazon
CloudWatch
Segurança Integrado ao AWS Identity and
Access Management (AWS
IAM)
Amazon EMR Integrado ao Amazon EMR para
análises complexas em grandes
conjuntos de dados
![Page 38: Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final](https://reader034.fdocuments.us/reader034/viewer/2022051818/5496aadeb47959424d8b506c/html5/thumbnails/38.jpg)
Mas de volta à
conversa inicial…
Vejamos como
podemos escalar um
banco de dados SQL
![Page 39: Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final](https://reader034.fdocuments.us/reader034/viewer/2022051818/5496aadeb47959424d8b506c/html5/thumbnails/39.jpg)
Usuários > 100:
Primeiramente, vamos separar nosso host “monolítico” em mais de um servidor:
• Servidor Web
• Servidor de Banco de Dados – Utilize o RDS para facilitar a
gestão e manutenção do seu banco de dados SQL
Instância
WEB
Endereço
IP elástico
Amazon
Route 53 Usuário
RDS DB
instance
![Page 40: Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final](https://reader034.fdocuments.us/reader034/viewer/2022051818/5496aadeb47959424d8b506c/html5/thumbnails/40.jpg)
Usuários > 1000:
Agora, vamos
endereçar a falta de
tolerância a falha e
redundância: • Com Elastic Load Balancing
• Com outra instância WEB
– Em outra zona de disponibiliza
• Habilitando Multi-AZ no RDS
Instância
WEB
Instância Amazon RDS
Ativa (Multi-AZ)
Zona de Disponibilidade Zona de Disponibilidade
Instância
WEB
Instância Amazon RDS
Standby (Multi-AZ)
Elastic Load
Balancing
Amazon
Route 53 Usuário
![Page 41: Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final](https://reader034.fdocuments.us/reader034/viewer/2022051818/5496aadeb47959424d8b506c/html5/thumbnails/41.jpg)
• Crie aplicações altamente escaláveis
Característica Detalhes
Disponível Distribui carga entre instâncias em múltiplas
zonas de disponibilidade
Verificação de Saúde Verifica automaticamente a saúde das instâncias
e tira-as de serviço caso não estejam
respondendo
Afinidade de Sessão Roteia pedidos da mesma origem para a mesma
instância
Secure sockets layer Suporta SSL offload de servidores web e de
aplicação com suporte de cifragem flexível
Monitoração Publica métricas para o Amazon CloudWatch
Elastic Load
Balancing
Elastic Load Balancing
![Page 42: Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final](https://reader034.fdocuments.us/reader034/viewer/2022051818/5496aadeb47959424d8b506c/html5/thumbnails/42.jpg)
Escalabilidade vertical e
horizontal vai te permitir
ir longe ( de dezenas a centenas de
milhares de usuários )
![Page 43: Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final](https://reader034.fdocuments.us/reader034/viewer/2022051818/5496aadeb47959424d8b506c/html5/thumbnails/43.jpg)
Usuários > 10 mil - 100 mil:
RDS DB Instância
Ativa (Multi-AZ)
Zona de Disponibilidade Zona de Disponibilidade
RDS DB Instância
Standby (Multi-AZ)
Elastic Load
Balancing
RDS DB Réplica
de Leitura
RDS DB Réplica
de Leitura
RDS DB Réplica
de Leitura
RDS DB Réplica
de Leitura
Instância
WEB
Instância
WEB
Instância
WEB
Instância
WEB
Instância
WEB
Instância
WEB
Instância
WEB
Instância
WEB
Amazon
Route 53 Usuário
![Page 44: Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final](https://reader034.fdocuments.us/reader034/viewer/2022051818/5496aadeb47959424d8b506c/html5/thumbnails/44.jpg)
Essas medidas vão nos
levar longe, mas a gente se
importa com performance e
eficiência, então vamos
melhorar a arquitetura com
componentes e serviços
![Page 45: Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final](https://reader034.fdocuments.us/reader034/viewer/2022051818/5496aadeb47959424d8b506c/html5/thumbnails/45.jpg)
Movendo parte da carga:
Pense em componentes e
serviços:
• Mova conteúdo estático da
instância WEB para o S3 e o
Cloudfront
• Mova estado/sessão e cache
do banco de dados para o
ElastiCache e/ou o DynamoDB
• Mais serviços daqui a pouco…
Instância
WEB
RDS DB Instância
Ativa (Multi-AZ)
Zona de Disponibilidade
Elastic Load
Balancing
Amazon S3
Amazon
CloudFront
Amazon
Route 53 Usuário
ElastiCache
Amazon
DynamoDB
![Page 46: Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final](https://reader034.fdocuments.us/reader034/viewer/2022051818/5496aadeb47959424d8b506c/html5/thumbnails/46.jpg)
Trabalhando com o S3
• Serviço de armazenamento de objetos
para a web
• Projetado para onze noves de
durabilidade
• Bom para:
– Conteúdo estático (css, js, imagens,
vídeos)
– Backups
– Logs
• “Escalabilidade Infinita”
• Suporta controle fino de permissões
• Integrado ao CloudFront
• Integrado ao EMR
• Atua como endpoint de logging para o
S3/CloudFront/Billing
• Suporta criptografia de dados em
descanso e em trânsito
• Redundância reduzida é 1/3 mais barata
• Amazon Glaciar para armazenamento
barato de longo prazo
![Page 47: Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final](https://reader034.fdocuments.us/reader034/viewer/2022051818/5496aadeb47959424d8b506c/html5/thumbnails/47.jpg)
CloudFront
Amazon CloudFront é um serviço web para
entrega escalável de conteúdo:
• Faz cache de conteúdo nos pontos de presença
para entrega mais rápida
• Ajuda a diminuir a carga na infra de origem
• Suporta conteúdo dinâmico e estático
• Suporta streaming de vídeo
• Suporta zone apex
• Suporta certificados SSL customizados
• TTL baixo (até 0 segundos)
• Baixo custo de transferência da origem (S3 e EC2)
• Otimizado para EC2, S3, ELB e Route 53
Tem
po
de
Re
spo
sta
Car
ga n
o S
ervi
do
r
Tem
po
de
Res
po
sta
Tem
po
de
Res
po
sta
Sem CDN Com CDN para
arquivos
estáticos
Com CDN para
arquivos
estáticos e
conteúdo
dinâmico
0
10
20
30
40
50
60
70
80
8:00AM
9:00AM
10:00AM
11:00AM
12:00PM
1:00PM
2:00PM
3:00PM
4:00PM
5:00PM
6:00PM
7:00PM
8:00PM
9:00PM
Vo
lum
e d
e D
ad
os
En
treg
ues
(G
bp
s)
![Page 48: Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final](https://reader034.fdocuments.us/reader034/viewer/2022051818/5496aadeb47959424d8b506c/html5/thumbnails/48.jpg)
Escalado até 10 milhões de usuários: uma estória
em quatro capítulos
• Introdução e Primeiros Passos
• Fundação
• Ferramentas e Monitoração
• 10 milhões de Usuários e Além
![Page 49: Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final](https://reader034.fdocuments.us/reader034/viewer/2022051818/5496aadeb47959424d8b506c/html5/thumbnails/49.jpg)
Agora que nossa camada
web está bem mais leve,
vamos voltar ao começo da
conversa…
![Page 50: Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final](https://reader034.fdocuments.us/reader034/viewer/2022051818/5496aadeb47959424d8b506c/html5/thumbnails/50.jpg)
Auto Scaling!
![Page 51: Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final](https://reader034.fdocuments.us/reader034/viewer/2022051818/5496aadeb47959424d8b506c/html5/thumbnails/51.jpg)
Mudança automática do tamanho do
cluster baseado na demanda
Disparo da política de auto-scaling
Característica Detalhes
Controle Permite definir as quantidades máximas e mínimas de servidores e quando e como as mudanças acontecem
Integrado ao Amazon CloudWatch
Permite utilizar as métricas colhidas pelo CloudWatch para decidir a melhor escalabilidade
Tipos de Instâncias Funciona com instâncias Spot e Sob Demanda; compatível com VPC
aws autoscaling create-auto-scaling-group --auto-scaling-group-name MyGroup --launch-configuration-name MyConfig --min-size 4 --max-size 200 --availability-zones us-west-2c
Auto Scaling Amazon
CloudWatch
![Page 52: Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final](https://reader034.fdocuments.us/reader034/viewer/2022051818/5496aadeb47959424d8b506c/html5/thumbnails/52.jpg)
Domingo Segunda Terça Quarta Quinta Sexta Sábado
Trafego típico na Amazon.com
![Page 53: Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final](https://reader034.fdocuments.us/reader034/viewer/2022051818/5496aadeb47959424d8b506c/html5/thumbnails/53.jpg)
Capacidade Provisionada
Trafego típico na Amazon.com
Domingo Segunda Terça Quarta Quinta Sexta Sábado
![Page 54: Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final](https://reader034.fdocuments.us/reader034/viewer/2022051818/5496aadeb47959424d8b506c/html5/thumbnails/54.jpg)
Trafego em Novembro na Amazon.com
Novembro
![Page 55: Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final](https://reader034.fdocuments.us/reader034/viewer/2022051818/5496aadeb47959424d8b506c/html5/thumbnails/55.jpg)
Trafego em Novembro na Amazon.com
Capacidade Provisionada
Novembro
![Page 56: Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final](https://reader034.fdocuments.us/reader034/viewer/2022051818/5496aadeb47959424d8b506c/html5/thumbnails/56.jpg)
Trafego em Novembro na Amazon.com 76%
24%
Capacidade Provisionada
Novembro
![Page 57: Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final](https://reader034.fdocuments.us/reader034/viewer/2022051818/5496aadeb47959424d8b506c/html5/thumbnails/57.jpg)
Trafego em Novembro na Amazon.com
Novembro
![Page 58: Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final](https://reader034.fdocuments.us/reader034/viewer/2022051818/5496aadeb47959424d8b506c/html5/thumbnails/58.jpg)
Auto Scaling
te permite fazer isso!
![Page 59: Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final](https://reader034.fdocuments.us/reader034/viewer/2022051818/5496aadeb47959424d8b506c/html5/thumbnails/59.jpg)
Auto Scaling pode escalar
desde uma instância até
milhares de instâncias e
depois voltar
![Page 60: Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final](https://reader034.fdocuments.us/reader034/viewer/2022051818/5496aadeb47959424d8b506c/html5/thumbnails/60.jpg)
Usuários > 500 mil:
Zona de Disponibilidade
Amazon
Route 53 Usuário
Amazon S3
Amazon
CloudFront
Zona de Disponibilidade
Elastic Load
Balancing
Amazon
DynamoDB RDS DB Réplica
de Leitura
Instância
WEB
Instância
WEB
Instância
WEB
ElastiCache RDS DB Réplica
de Leitura
Instância
WEB Instância
WEB
Instância
WEB
ElastiCache RDS DB Instância
Standby (Multi-AZ) RDS DB Instancia
Ativa (Multi-AZ)
![Page 61: Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final](https://reader034.fdocuments.us/reader034/viewer/2022051818/5496aadeb47959424d8b506c/html5/thumbnails/61.jpg)
![Page 62: Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final](https://reader034.fdocuments.us/reader034/viewer/2022051818/5496aadeb47959424d8b506c/html5/thumbnails/62.jpg)
Use Ferramentas: Gerenciar sua infraestrutura vai tomar uma parte
considerável e cada vez maior do seu tempo. Utilize então
ferramentas para automatizar as tarefas repetitivas.
• Ferramentas para gerenciar recursos da AWS
• Ferramentas de gestão de software and configuração
das instâncias (chef, puppet, salt, ansible, etc.)
• Análise automatizada de logs e ações dos usuários
![Page 63: Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final](https://reader034.fdocuments.us/reader034/viewer/2022051818/5496aadeb47959424d8b506c/html5/thumbnails/63.jpg)
Soluções de Gestão de Aplicação da AWS
AWS
Elastic Beanstalk
AWS
OpsWorks
AWS
CloudFormation Amazon EC2
Conveniência Controle
Serviços de mais alto nível Faça você mesmo
![Page 64: Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final](https://reader034.fdocuments.us/reader034/viewer/2022051818/5496aadeb47959424d8b506c/html5/thumbnails/64.jpg)
Nesse ponto, você provavelmente vai encontrar problemas de
performance na aplicação:
• Tenha monitoramento/métricas/logging
– Se não puder construir, utilize soluções prontas de terceiros!
(Software-as-a-Service)
• Tire o máximo de informações que puder de cada
componente ou serviço
Usuários > 500 mil:
![Page 65: Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final](https://reader034.fdocuments.us/reader034/viewer/2022051818/5496aadeb47959424d8b506c/html5/thumbnails/65.jpg)
MÉTRICAS
DO HOST
MÉTRICAS
AGREGADAS
ANÁLISE
DE LOG
PERFORMANCE
DO SITE
![Page 66: Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final](https://reader034.fdocuments.us/reader034/viewer/2022051818/5496aadeb47959424d8b506c/html5/thumbnails/66.jpg)
AWS Marketplace & Parceiros podem ajudar
• Clientes podem pesquisar,
encontrar e comprar software
• Precificação simplificada,
alinhada com o modelo do EC2
• Início em minutos
• Cobrança integrada na sua
conta da AWS
• Mais de 1300 produtos em mais
de 20 categorias
Saiba mais em: aws.amazon.com/marketplace
![Page 67: Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final](https://reader034.fdocuments.us/reader034/viewer/2022051818/5496aadeb47959424d8b506c/html5/thumbnails/67.jpg)
Escalado até 10 milhões de usuários: Uma estória
em quatro capítulos
• Introdução e Primeiros Passos
• Fundação
• Ferramentas e Monitoração
• 10 Milhões de Usuários e Além
![Page 68: Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final](https://reader034.fdocuments.us/reader034/viewer/2022051818/5496aadeb47959424d8b506c/html5/thumbnails/68.jpg)
Agora não há mais como
melhorar apenas
quebrando ainda mais a
camada web e de
aplicação
![Page 69: Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final](https://reader034.fdocuments.us/reader034/viewer/2022051818/5496aadeb47959424d8b506c/html5/thumbnails/69.jpg)
![Page 70: Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final](https://reader034.fdocuments.us/reader034/viewer/2022051818/5496aadeb47959424d8b506c/html5/thumbnails/70.jpg)
SOA = Service Oriented Architecture, ou
Arquitetura Orientada a Serviços
![Page 71: Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final](https://reader034.fdocuments.us/reader034/viewer/2022051818/5496aadeb47959424d8b506c/html5/thumbnails/71.jpg)
SOA’ndo Mova os serviços para suas
próprias camadas/modulos. Trate
cada um desses serviços como
peças 100% separadas da sua
infraestrutura e escale-os
independentemente.
A Amazon.com e a AWS fazem
isso extensivamente! Essa
abordagem oferece flexibilidade e
maior entendimento de cada
componente.
![Page 72: Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final](https://reader034.fdocuments.us/reader034/viewer/2022051818/5496aadeb47959424d8b506c/html5/thumbnails/72.jpg)
O Baixo Acoplamento Vos Libertará!
• Quanto menos acoplamento, mais escalabilidade:
– Componentes Independentes
– Projete tudo como se fosse uma caixa preta
– Desacople as interações
– Dê preferência a serviços que já possuam redundência e
escalabilidade ao invés de construir seus próprios
Controlador A Controlador B
Controlador A Controlador B
FILA
Alto Acoplamento
Use o Amazon SQS para buffers
Baixo Acoplamento FILA
![Page 73: Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final](https://reader034.fdocuments.us/reader034/viewer/2022051818/5496aadeb47959424d8b506c/html5/thumbnails/73.jpg)
Baixo Acomplamento + SOA = Vitória
Exemplos:
• Email / Filas / Notificação
• Transcodificação
• Busca
• Banco de Dados
• Monitoração
• Workflow
• Logging
Amazon
CloudSearch Amazon SQS Amazon SNS
Amazon Elastic
Transcoder Amazon SWF
Amazon SES
Quando estiver começando, se encontrar algum serviço
que já faça o que você quer, prefira utilizá-lo no lugar de
construí-lo você mesmo.
NÃO REINVENTE A RODA
![Page 74: Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final](https://reader034.fdocuments.us/reader034/viewer/2022051818/5496aadeb47959424d8b506c/html5/thumbnails/74.jpg)
Sobre reinventar a roda…
Se você estiver escrevendo
seu próprio serviço de: fila,
DNS, banco de dados,
armazenamento, monitoração
![Page 75: Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final](https://reader034.fdocuments.us/reader034/viewer/2022051818/5496aadeb47959424d8b506c/html5/thumbnails/75.jpg)
PARE AGORA !!!
![Page 76: Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final](https://reader034.fdocuments.us/reader034/viewer/2022051818/5496aadeb47959424d8b506c/html5/thumbnails/76.jpg)
Vamos fazer uma pausa
rápida para conhecermos o
caso da AgênciaClick
Isobar
![Page 77: Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final](https://reader034.fdocuments.us/reader034/viewer/2022051818/5496aadeb47959424d8b506c/html5/thumbnails/77.jpg)
• Parte da Dentsu Aegis Network (+130 países, +300 agências, +36.000 profissionais)
• Média de 380 implantações por mês (mais de 4.550 por ano)
• Projetos diversificados e com várias constraints tecnológicas diferentes
• Estamos sempre correndo contra o tempo
Cada vez mais estamos conseguindo mostrar para nossos clientes os benefícios e ganhos em utilizar uma infraestrutura cloud based como a AWS
![Page 78: Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final](https://reader034.fdocuments.us/reader034/viewer/2022051818/5496aadeb47959424d8b506c/html5/thumbnails/78.jpg)
• O nosso maior desafio é lidar
com um volume de acesso
variável com grandes picos.
• A Amazon Web Services nos
dá a flexibilidade e
escalabilidade necessárias
em momentos críticos das
campanhas.
• Garantir o funcionamento de sites de campanhas onde o volume de acessos é extremamente variável.
• Manter o custo fixo baixo da infra destas campanhas, aumentando o número de servidores quando necessário.
• Projetos muitas vezes casados com campanhas off-line com alto investimento em mídia gerando picos monstruosos de acesso (as vezes de surpresa!)
• Transpor barreiras impostas pelo departamento de tecnologia de nossos clientes, acostumados com o modelo antigo de infraestrutura.
![Page 79: Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final](https://reader034.fdocuments.us/reader034/viewer/2022051818/5496aadeb47959424d8b506c/html5/thumbnails/79.jpg)
Sobre a o da AWS e Benefícios
alcançados
• Implantação sem entraves, independente da tecnologia.
• Redução e previsibilidade dos custos fixos de projetos
• Escalabilidade e alta disponibilidade
• Suporte e consultoria pela ADTSys
![Page 80: Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final](https://reader034.fdocuments.us/reader034/viewer/2022051818/5496aadeb47959424d8b506c/html5/thumbnails/80.jpg)
De volta a SOA
![Page 81: Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final](https://reader034.fdocuments.us/reader034/viewer/2022051818/5496aadeb47959424d8b506c/html5/thumbnails/81.jpg)
Usuários > 1 milhão: Alcançar um milhão de usuários e além vai exigir um pouco
mais das coisas discutidas anteriormente:
• Multi-AZ
• Elastic Load Balancing entre as camadas
• Auto Scaling
• Arquitetura SOA
• Entrega inteligente de conteúdo (Amazon S3/CloudFront)
• Cache dos dados do Banco de Dados
• Remoção de estado das camadas que usam auto scaling
![Page 82: Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final](https://reader034.fdocuments.us/reader034/viewer/2022051818/5496aadeb47959424d8b506c/html5/thumbnails/82.jpg)
Usuários > 1 milhão:
RDS DB Instance
Active (Multi-AZ)
Zona de Disponibilidade
Elastic Load
Balancing
RDS DB Réplica
de Leitura
RDS DB Réplica
de Leitura
Instância
WEB
Instância
WEB
Instância
WEB
Instância
WEB
Amazon
Route 53 User
Amazon S3
Amazon
CloudFront
Amazon
DynamoDB
Amazon SQS
ElastiCache
Instância
Worker
Instância
Worker
Amazon
CloudWatch
Instância de
Aplicação
Instância de
Aplicação Amazon SES
![Page 83: Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final](https://reader034.fdocuments.us/reader034/viewer/2022051818/5496aadeb47959424d8b506c/html5/thumbnails/83.jpg)
Os próximos grandes
passos
![Page 84: Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final](https://reader034.fdocuments.us/reader034/viewer/2022051818/5496aadeb47959424d8b506c/html5/thumbnails/84.jpg)
Usuários > 5 milhões – 10 milhões: Nesse ponto, você provavelmente vai começar a encontrar problemas no banco de dados em relação a contenção de escrita na base master.
Como resolver?
• Federação ~ divisão dos dados em múltiplas bases de dados a partir de suas funções
• Sharding ~ divisão dos dados em múltiplas bases de dados a partir dos dados em si
• Movimentação de algumas funcionalidades para outros tipos de Bancos de Dados (NoSQL)
![Page 85: Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final](https://reader034.fdocuments.us/reader034/viewer/2022051818/5496aadeb47959424d8b506c/html5/thumbnails/85.jpg)
Movendo funcionalidades para NoSQL
• Similar à federação
• Novamente, revise os pontos anteriores para determinar se você realmente precisa de NoSQL
• Use serviços gerenciados como Amazon DynamoDB
• Alguns casos de uso: – pontuação/quadro de liderança em jogos
– Ingestão rápida de logs
– Tabelas temporárias ( carrinho de compra ou sessão )
– Tabelas muito acessadas
– Tabelas de pesquisa e metadados
Amazon
DynamoDB
![Page 86: Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final](https://reader034.fdocuments.us/reader034/viewer/2022051818/5496aadeb47959424d8b506c/html5/thumbnails/86.jpg)
…E finalmente chegamos
aos 10 milhões de usuários
![Page 87: Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final](https://reader034.fdocuments.us/reader034/viewer/2022051818/5496aadeb47959424d8b506c/html5/thumbnails/87.jpg)
Uma Revisão Rápida
![Page 88: Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final](https://reader034.fdocuments.us/reader034/viewer/2022051818/5496aadeb47959424d8b506c/html5/thumbnails/88.jpg)
Revisão
• Crie sempre sua infra-estrutura considerando Multi-AZ
• Use sempre serviços auto-escaláveis: – Elastic Load Balancing, Amazon S3, Amazon SNS, Amazon
SQS, Amazon SWF, Amazon SES, etc.
• Tenha redundância em todos os níveis
• Normalmente comece com SQL
• Utilize ferramentas de automação
![Page 89: Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final](https://reader034.fdocuments.us/reader034/viewer/2022051818/5496aadeb47959424d8b506c/html5/thumbnails/89.jpg)
Revisão (continuação)
• Tenha sempre métricas/monitoramento/logging
• Divida as camadas em serviços (SOA)
• Utilize Auto Scaling somente quando estiver pronto pra ele
• Não reinvente a roda
• Passe a usar NoSQL apenas quando realmente fizer sentido, mas faça o possível para não ter de administrá-lo (de preferência, use o DynamoDB)
![Page 90: Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final](https://reader034.fdocuments.us/reader034/viewer/2022051818/5496aadeb47959424d8b506c/html5/thumbnails/90.jpg)
Juntando tudo isso,
temos agora condições
de suportar até 10
milhões de usuários sem
grandes dores de cabeça
![Page 91: Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final](https://reader034.fdocuments.us/reader034/viewer/2022051818/5496aadeb47959424d8b506c/html5/thumbnails/91.jpg)
Ao infinito...
![Page 92: Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final](https://reader034.fdocuments.us/reader034/viewer/2022051818/5496aadeb47959424d8b506c/html5/thumbnails/92.jpg)
Usuários > 10 milhões:
• Mais ajustes finos na aplicação
• Mais funcionalidades e recursos de SOA
• Indo de Multi-AZ para Multi-Região
• Potencialmente vai precisar começar a construir
soluções customizadas (ferramentas criadas
pela Netflix, por exemplo)
• Análise profundamente toda a pilha de software
![Page 93: Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final](https://reader034.fdocuments.us/reader034/viewer/2022051818/5496aadeb47959424d8b506c/html5/thumbnails/93.jpg)
Próximos Passos?
LEIAM!
• aws.amazon.com/documentation
• aws.amazon.com/architecture
• aws.amazon.com/start-ups
![Page 94: Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final](https://reader034.fdocuments.us/reader034/viewer/2022051818/5496aadeb47959424d8b506c/html5/thumbnails/94.jpg)
Próximos Passos?
COMEÇEM A USAR
aws.amazon.com/free
![Page 95: Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final](https://reader034.fdocuments.us/reader034/viewer/2022051818/5496aadeb47959424d8b506c/html5/thumbnails/95.jpg)
Próximos Passos?
PEÇAM AJUDA!
• forums.aws.amazon.com
• aws.amazon.com/support
• Seu Gerente de Contas na AWS
• Um dos nossos Arquitetos de Soluções
![Page 97: Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final](https://reader034.fdocuments.us/reader034/viewer/2022051818/5496aadeb47959424d8b506c/html5/thumbnails/97.jpg)
© 2014 Amazon.com, Inc. and its affiliates. All rights reserved. May not be copied, modified, or distributed in whole or in part without the express consent of Amazon.com, Inc. © 2014 Amazon.com, Inc. and its affiliates. All rights reserved. May not be copied, modified, or distributed in whole or in part without the express consent of Amazon.com, Inc.
Obrigado!
Escalando na AWS até os Primeiros 10 Milhões de Usuários
Fábio Aragão da Silva
Arquiteto de Soluções
Amazon Web Services LATAM
27 de Maio de 2014