SlideShare ist ein Scribd-Unternehmen logo
1 von 70
Downloaden Sie, um offline zu lesen
José Papo
AWSTech Evangelist
@josepapo
Então, como ter escalabilidade na Nuvem?
Auto-Scaling???
Começando pelo básico primeiro
US-WEST (Oregon)
EU-WEST (Ireland)
ASIA PAC (Tokyo)
US-WEST (N. California)
SOUTH AMERICA (Sao Paulo)
US-EAST (Virginia)
AWS GovCloud (US)
ASIA PAC
(Sydney)
Regiões
ASIA PAC
(Singapore)
US-WEST (Oregon)
EU-WEST (Ireland)
ASIA PAC (Tokyo)
US-WEST (N. California)
SOUTH AMERICA (Sao Paulo)
US-EAST (Virginia)
AWS GovCloud (US)
ASIA PAC
(Sydney)
Zonas de Disponibilidade
ASIA PAC
(Singapore)
Compute Storage
AWS Global Infrastructure
Database
App Services
Deployment & Administration
Networking
Compute Storage
AWS Global Infrastructure
Database
App Services
Deployment & Administration
Networking
Amazon
CloudWatch AWS IAM AWS
CloudFormation
Amazon Elastic
Beanstalk
AWS
Data
Pipeline
AWS
OpsWorks
Amazon
CloudSearch
Amazon SQSAmazon
SNS
Amazon
Elastic
Transcoder
Amazon SWF
Amazon SES
Amazon
DynamoDB
Amazon RDS
Amazon
ElastiCache
Amazon
RedShift
AWS Storage
Gateway
Amazon S3
Amazon
Glacier
Amazon
CloudFrontAmazon
EC2
Amazon
EMR
Amazon
VPC
Amazon
Route 53
AWS
Direct
Connect
Vamos então começar pelo dia
um, um usuário ( você! ):
Dia Um, Um Usuário
• Uma instancia EC2
– Stack completo
• AplicaçãoWeb
• Banco de Dados
• Gestão
• Etc.
• Um Elastic IP
• Route53 para DNS
EC2
Instance
Elastic IP
Amazon
Route 53
User
“Precisamos de uma máquina maior”
• Modo mais simples
• Pode alavancar uso de PIOPs
• Instancias High I/O
• Instancias High Memory
• Instancias High CPU
• Instancias High Storage
• Fácil de mudar tamanhos de
instancias
• Vai eventualmente ter limitações
hi1.4xlarge
m2.4xlarge
m1.small
“Precisamos de uma máquina maior”
• Modo mais simples
• Pode alavancar uso de PIOPs
• Instancias High I/O
• Instancias High Memory
• Instancias High CPU
• Instancias High Storage
• Fácil de mudar tamanhos de
instancias
• Vai eventualmente ter limitações
hi1.4xlarge
m2.4xlarge
m1.small
Dia Um, Um Usuário:
• Pode potencialmente atender
algumas centenas até alguns
milhares de usuários
dependendo da instancia,
complexidade da app e
tráfego
• Não tem failover
• Não tem redundância
• Todos os ovos no mesmo cesto
EC2
Instance
Elastic IP
Amazon
Route 53
User
Dia Um, Um Usuário:
• Pode potencialmente atender
algumas centenas até alguns
milhares de usuários
dependendo da instancia,
complexidade da app e
tráfego
• Não tem failover
• Não tem redundância
• Todos os ovos no mesmo cesto
EC2
Instance
Elastic IP
Amazon
Route 53
User
Dia Dois, Usuário >1:
Vamos primeiro
separar os recursos em
mais de uma instancia.
• Instancia Web
• Instancia de Banco Web
Instance
Database
Instance
Elastic IP
Amazon
Route 53
User
Gestão Própria Serviço Gerenciado
Banco de Dados
no Amazon EC2
Sua escolha de BD
no Amazon EC2
Bring Your Own
License (BYOL)
Amazon
DynamoDB
Serviço gerenciado
de BD NoSQL que
usa storage SSD
Amazon RDS
MS SQL Server,
Oracle ou MySQL
as a service
BYOL ou Licença
Incluída
Amazon
Redshift
Data Warehouse as
a service
distribuído e com
escala de petabytes
Opções de Bases de Dados
Que tecnologia usar?
SQL? NoSQL?
Depende do seu caso
de uso, mas…
Comece com aquilo que for
mais simples para você
Vamos começar com o
Amazon RDS nesse exemplo
Usuários >100:
Web
Instance
Elastic IP
RDS DB
Instance
Amazon
Route 53
User
Vamos primeiro separar
os recursos em mais de
uma instancia.
• Instancia Web
• Instancia de Banco
– Use o RDS para ter uma
vida mais simples!
Usuários > 1000:
Agora vamos endereçar
a falta de failover e
redundancia:
• Elastic Load Balancer
• Mais uma InstanciaWeb
– Em outra Zona de Disponibilidade
• Habilitar RDS Multi-AZ
Web
Instance
RDS DB Instance
Active (Multi-AZ)
Availability Zone Availability Zone
Web
Instance
RDS DB Instance
Standby (Multi-AZ)
Elastic Load
Balancer
Amazon
Route 53
User
Escalando
horizontalmente e
verticalmente podemos
chegar bem longe
( 10s-100s de milhares )
Usuários >10ks-100ks:
RDS DB Instance
Active (Multi-AZ)
Availability Zone Availability Zone
RDS DB Instance
Standby (Multi-AZ)
Elastic Load
Balancer
RDS DB Instance
Read Replica
RDS DB Instance
Read Replica
RDS DB Instance
Read Replica
RDS DB Instance
Read Replica
Web
Instance
Web
Instance
Web
Instance
Web
Instance
Web
Instance
Web
Instance
Web
Instance
Web
Instance
Amazon
Route 53
User
Isso realmente nos levará
longe, mas queremos
também performance e
eficiência.Vamos limpar um
pouco mais
Mova a carga:
Diminua a carga nas
instanciasWeb e BD:
• Mova conteúdo estático da
instancia Web para o S3 e
CloudFront
• Mova estado/sessões e faça
cache do BD com ElastiCache
e/ou DynamoDB
Web
Instance
RDS DB Instance
Active (Multi-AZ)
Availability Zone
Elastic Load
Balancer
Amazon S3
Amazon
Cloudfront
Amazon
Route 53
User
ElastiCache
DynamoDB
Agora que nossas camadas
Web e de BD estão mais
leves vamos voltar ao início
da nossa discussão…
Auto-Scaling!!!
Escalabilidade automática de
instancias de acordo com políticas
definidas
Trigger auto-scaling
policy
as-create-auto-scaling-group MyGroup
--launch-configuration MyConfig
--availability-zones us-east-1a
--min-size 4
--max-size 200
Auto-Scaling
Amazon
CloudWatch
Tráfego em Novembro na Amazon.com
November
Provisioned capacity
November
Tráfego em Novembro na Amazon.com
76%
24%
Provisioned capacity
November
Tráfego em Novembro na Amazon.com
November
Tráfego em Novembro na Amazon.com
Auto Scaling
É possível fazer ainda mais
melhorias deixando suas
camadas ainda mais leves e
orientadas a serviços
SOA = Service Oriented Architecture
Baixo acoplamente te liberta!
• Reduza o acoplamento para escalar ainda mais
– Componentes independentes
– Projete-os como uma caixa preta
– Desacople as integrações
– Prefira serviços já construídos com redundancia e
escalabilidade ao invés de contruir novamente
Controller A Controller B
Controller A Controller B
Q Q
Alto acomplamento
Use Amazon SQS como Buffers
Baixo acoplamento
Baixo acoplamento + SOA = Win!
Exemplos:
• Email
• Filas
• Transcoding de Vídeos
• Busca
• Bancos de Dados
• Monitoramento
• Métricas
• Logs
Amazon
CloudSearch
Amazon SQSAmazon SNS
Amazon Elastic
Transcoder
Amazon SWF
Amazon SES
Não reinvente a roda!
Baixo acoplamento + SOA
Exemplo
Imagine um site/app para
upload e compartilhamento
de fotos entre usuários
Exemplo usando filas de
mensagem SQS
S3 Bucket
For Ingest
User
SNS Topic
RRS S3
Bucket to
Serve
content to
CloudFront
S3 Bucket
For
originals
CloudFront
Download
Distribution
SQS Queue
Size for Thumbnail
SQS Queue
Size Image for
Mobile
SQS Queue
Size Image for Web
Auto scaling
Group
Instances
Auto scaling
Group
Instances
Auto scaling
Group
Instances
Exemplo usando serviço
Simple Workflow (SWF)
S3 Bucket
For Ingest
User
RRS S3
Bucket to
Serve
content to
CloudFront
S3 Bucket
For
originals
CloudFront
Download
Distribution
Auto scaling
Group
Instances
Auto scaling
Group
Instances
Auto scaling
Group
Instances
SWF
Instance running
decider
Usuários >1milhão+:
Chegar em um milhão e além requer uma arquitetura que
utilize os recursos vistos anteriormente:
• Multi-AZ
• Elastic Load Balancer entre as camadas
• Auto-Scaling
• Service oriented architecture
• Servir conteúdo estático com as soluções certas (
S3/CloudFront )
• Cache e réplicas de bases de dados
• Mover estado para fora das camadas com auto-scaling
Usuários >1milhão+:
RDS DB Instance
Active (Multi-AZ)
Availability Zone
Elastic Load
Balancer
RDS DB Instance
Read Replica
RDS DB Instance
Read Replica
Web
Instance
Web
Instance
Web
Instance
Web
Instance
Amazon
Route 53
User
Amazon S3
Amazon
Cloudfront
DynamoDB
Amazon SQS
ElastiCache
Worker
Instance
Worker
Instance
Amazon
CloudWatch
Internal App
Instance
Internal App
Instance
Amazon SES
Próximos passos
Usuários > 10milhões+:
Você provavelmente encontrará dificuldades com sua
base de dados nas escritas no BD Master.
Como resolver?
• Sharding ( separar conjuntos de dados em mais de
uma base de dados )
• Mover funcionalidades para outros tipos de BDs (
NoSQL )
Sharding
• Mais complexo para a
camada de aplicação
• Complexidade
operacional
• Shard por função ou
chave
User ShardID
002345 A
002346 B
002347 C
002348 B
002349 A
A
B
C
Mover funcionalidades para NoSQL
• Soluções NoSQL usualmente possuem
escalabilidade horizontal transparente
• Use serviços gerenciados como o
DynamoDB
DynamoDB
Você também poderá ter problemas relacionados a
velocidade ou performance.
• Tenha soluções de monitoração/métricas/logs
– Se possível, use soluções prontas! ( SaaS )
• Preste atenção no que seus usuários estão dizendo
• Verifique a performance de cada serviço/componente
Usuários > 10milhões+:
HOST
LEVEL
METRICS
AGGREGATE
LEVEL
METRICS
LOG
ANALYSIS
EXTERNAL
SITE
PERFORMANCE
AWS Marketplace & Partners AWS podem ajudar
Saiba mais em: aws.amazon.com/marketplace
Usuários > 10 milhões+:
Gerenciar sua infraestrutura será fundamental com
número de instancias e recursos utilizados em
crescimento.Use ferramentas para automatizar tarefas.
• Ferramentas da AWS
• Ferramentas de gestão de configuração
• Análise automatizada de logs e ações de usuários
Soluções de Gestão de Aplicações da AWS
Elastic Beanstalk OpsWorks CloudFormation EC2
Conveniência Controle
Serviços de Alto Nível Faça você mesmo
Host Based Configuration Management
Dois grandes players:
– Opscode Chef
– PuppetLabs Puppet
• São parecidos em recursos
• Use HBCM junto com uma das soluções da AWS
(OpsWorks integra com Chef e CloudFormation
com Chef ou Puppet)
• Mais difícil gerenciar muitos recursos
computacionais sem HBCM
Breve revisão sobre
escalabilidade
Pense em redundância em
todas as camadas
Multi-AZ na sua infraestrutura
Faça uso de serviços prontos
( ELB, S3, SNS, SQS, SWF,
SES, etc )
Use SQL ou NoSQL de
acordo com os requisitos de
seu negócio
Crie uma arquitetura
orientada a serviços ( SOA )
Use Auto-scaling quando
precisar crescer ou diminuir
automaticamente
Use ferramentas de automação
sempre que possível
Tenha soluções de
métricas/monitoração/logs
Não reinvente a roda!
Pensando nesses elementos
você certamente poderá
atender dezenas e até centenas
de milhões de usuários!
aws.amazon.com/pt/architecture
Saiba mais em…
RECURSOS TÉCNICOS
awshub.com.br
OBRIGADO!
aws.typepad.com/brasil
slideshare.net/AmazonWebServicesLATAM
José Papo
AWS Tech Evangelist
@josepapo

Weitere ähnliche Inhalte

Was ist angesagt?

천만 사용자를 위한 AWS 클라우드 아키텍쳐 진화하기- AWS Summit Seoul 2017
천만 사용자를 위한 AWS 클라우드 아키텍쳐 진화하기- AWS Summit Seoul 2017천만 사용자를 위한 AWS 클라우드 아키텍쳐 진화하기- AWS Summit Seoul 2017
천만 사용자를 위한 AWS 클라우드 아키텍쳐 진화하기- AWS Summit Seoul 2017
Amazon Web Services Korea
 
빠르고 안전하게 간편한 AWS로 데이터 마이그레이션 하기::최유정 (AWS 솔루션즈아키텍트)
빠르고 안전하게 간편한 AWS로 데이터 마이그레이션 하기::최유정 (AWS 솔루션즈아키텍트)빠르고 안전하게 간편한 AWS로 데이터 마이그레이션 하기::최유정 (AWS 솔루션즈아키텍트)
빠르고 안전하게 간편한 AWS로 데이터 마이그레이션 하기::최유정 (AWS 솔루션즈아키텍트)
Amazon Web Services Korea
 

Was ist angesagt? (20)

[WhaTap DevOps Day] 세션 1 : Observability Practice on AWS
[WhaTap DevOps Day] 세션 1 : Observability Practice on AWS[WhaTap DevOps Day] 세션 1 : Observability Practice on AWS
[WhaTap DevOps Day] 세션 1 : Observability Practice on AWS
 
Amazon EC2 Container Service 자세히 보기 - 김상필 (AWS 솔루션즈 아키텍트)
Amazon EC2 Container Service 자세히 보기 - 김상필 (AWS 솔루션즈 아키텍트)Amazon EC2 Container Service 자세히 보기 - 김상필 (AWS 솔루션즈 아키텍트)
Amazon EC2 Container Service 자세히 보기 - 김상필 (AWS 솔루션즈 아키텍트)
 
기술 지원 사례로 알아보는 마이그레이션 이슈 및 해결 방안 모음-김용기, AWS Storage Specialist SA / 한소영, AWS...
기술 지원 사례로 알아보는 마이그레이션 이슈 및 해결 방안 모음-김용기, AWS Storage Specialist SA / 한소영, AWS...기술 지원 사례로 알아보는 마이그레이션 이슈 및 해결 방안 모음-김용기, AWS Storage Specialist SA / 한소영, AWS...
기술 지원 사례로 알아보는 마이그레이션 이슈 및 해결 방안 모음-김용기, AWS Storage Specialist SA / 한소영, AWS...
 
ABCs of AWS: S3
ABCs of AWS: S3ABCs of AWS: S3
ABCs of AWS: S3
 
대규모 인프라 환경 전환을 위한 AWS CloudEndure 실시간 클라우드 전환 기술 - 이창익:: AWS | AWS 클라우드 마이그레이...
대규모 인프라 환경 전환을 위한 AWS CloudEndure 실시간 클라우드 전환 기술 - 이창익:: AWS | AWS 클라우드 마이그레이...대규모 인프라 환경 전환을 위한 AWS CloudEndure 실시간 클라우드 전환 기술 - 이창익:: AWS | AWS 클라우드 마이그레이...
대규모 인프라 환경 전환을 위한 AWS CloudEndure 실시간 클라우드 전환 기술 - 이창익:: AWS | AWS 클라우드 마이그레이...
 
서버리스 데이터 플로우 개발기 - 김재현 (Superb AI) :: AWS Community Day 2020
서버리스 데이터 플로우 개발기 - 김재현 (Superb AI) :: AWS Community Day 2020서버리스 데이터 플로우 개발기 - 김재현 (Superb AI) :: AWS Community Day 2020
서버리스 데이터 플로우 개발기 - 김재현 (Superb AI) :: AWS Community Day 2020
 
Securing enterprise big data workloads on AWS
Securing enterprise big data workloads on AWSSecuring enterprise big data workloads on AWS
Securing enterprise big data workloads on AWS
 
AWS SAM으로 서버리스 아키텍쳐 운영하기 - 이재면(마이뮤직테이스트) :: AWS Community Day 2020
AWS SAM으로 서버리스 아키텍쳐 운영하기 - 이재면(마이뮤직테이스트) :: AWS Community Day 2020 AWS SAM으로 서버리스 아키텍쳐 운영하기 - 이재면(마이뮤직테이스트) :: AWS Community Day 2020
AWS SAM으로 서버리스 아키텍쳐 운영하기 - 이재면(마이뮤직테이스트) :: AWS Community Day 2020
 
온라인 주문 서비스를 서버리스 아키텍쳐로 구축하기 - 김태우(Classmethod) :: AWS Community Day Online 2020
온라인 주문 서비스를 서버리스 아키텍쳐로 구축하기 - 김태우(Classmethod) :: AWS Community Day Online 2020온라인 주문 서비스를 서버리스 아키텍쳐로 구축하기 - 김태우(Classmethod) :: AWS Community Day Online 2020
온라인 주문 서비스를 서버리스 아키텍쳐로 구축하기 - 김태우(Classmethod) :: AWS Community Day Online 2020
 
AWS Well-Architected Workshop
AWS Well-Architected WorkshopAWS Well-Architected Workshop
AWS Well-Architected Workshop
 
Amazon Connect Technical Introduction & Use Cases
Amazon Connect Technical Introduction & Use CasesAmazon Connect Technical Introduction & Use Cases
Amazon Connect Technical Introduction & Use Cases
 
Auto Scaling on AWS
Auto Scaling on AWSAuto Scaling on AWS
Auto Scaling on AWS
 
Uses and Best Practices for Amazon Redshift
Uses and Best Practices for Amazon Redshift Uses and Best Practices for Amazon Redshift
Uses and Best Practices for Amazon Redshift
 
AWS Lambda와 API Gateway를 통한 Serverless Architecture 특집 (윤석찬)
AWS Lambda와 API Gateway를 통한 Serverless Architecture 특집 (윤석찬)AWS Lambda와 API Gateway를 통한 Serverless Architecture 특집 (윤석찬)
AWS Lambda와 API Gateway를 통한 Serverless Architecture 특집 (윤석찬)
 
Module 1: AWS Cloud Concepts, VPC, and Security Groups - Virtual AWSome Day J...
Module 1: AWS Cloud Concepts, VPC, and Security Groups - Virtual AWSome Day J...Module 1: AWS Cloud Concepts, VPC, and Security Groups - Virtual AWSome Day J...
Module 1: AWS Cloud Concepts, VPC, and Security Groups - Virtual AWSome Day J...
 
Getting Started with AWS Lambda and the Serverless Cloud
Getting Started with AWS Lambda and the Serverless CloudGetting Started with AWS Lambda and the Serverless Cloud
Getting Started with AWS Lambda and the Serverless Cloud
 
AWS Route53
AWS Route53AWS Route53
AWS Route53
 
천만 사용자를 위한 AWS 클라우드 아키텍쳐 진화하기- AWS Summit Seoul 2017
천만 사용자를 위한 AWS 클라우드 아키텍쳐 진화하기- AWS Summit Seoul 2017천만 사용자를 위한 AWS 클라우드 아키텍쳐 진화하기- AWS Summit Seoul 2017
천만 사용자를 위한 AWS 클라우드 아키텍쳐 진화하기- AWS Summit Seoul 2017
 
빠르고 안전하게 간편한 AWS로 데이터 마이그레이션 하기::최유정 (AWS 솔루션즈아키텍트)
빠르고 안전하게 간편한 AWS로 데이터 마이그레이션 하기::최유정 (AWS 솔루션즈아키텍트)빠르고 안전하게 간편한 AWS로 데이터 마이그레이션 하기::최유정 (AWS 솔루션즈아키텍트)
빠르고 안전하게 간편한 AWS로 데이터 마이그레이션 하기::최유정 (AWS 솔루션즈아키텍트)
 
CloudWatch 성능 모니터링과 신속한 대응을 위한 노하우 - 박선용 솔루션즈 아키텍트:: AWS Cloud Track 3 Gaming
CloudWatch 성능 모니터링과 신속한 대응을 위한 노하우 - 박선용 솔루션즈 아키텍트:: AWS Cloud Track 3 GamingCloudWatch 성능 모니터링과 신속한 대응을 위한 노하우 - 박선용 솔루션즈 아키텍트:: AWS Cloud Track 3 Gaming
CloudWatch 성능 모니터링과 신속한 대응을 위한 노하우 - 박선용 솔루션즈 아키텍트:: AWS Cloud Track 3 Gaming
 

Ähnlich wie Escalabilidade para sua solução na Nuvem da AWS de um para centenas de milhões de usuários

Ähnlich wie Escalabilidade para sua solução na Nuvem da AWS de um para centenas de milhões de usuários (20)

Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final
Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +finalEscalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final
Escalando+na+aws+para+os+primeiros+10+milhões+de+usuários+ +final
 
Seu banco de dados na nuvem: Opções de bancos de dados na AWS e padrões de...
Seu banco de dados na nuvem: Opções de bancos de dados na AWS e padrões de...Seu banco de dados na nuvem: Opções de bancos de dados na AWS e padrões de...
Seu banco de dados na nuvem: Opções de bancos de dados na AWS e padrões de...
 
Mobile Back end as a Service na AWS
Mobile Back end as a Service na AWSMobile Back end as a Service na AWS
Mobile Back end as a Service na AWS
 
Rodando SAP na AWS
Rodando SAP na AWSRodando SAP na AWS
Rodando SAP na AWS
 
Escalando para os primeiros 10 milhões de usuários
Escalando para os primeiros 10 milhões de usuáriosEscalando para os primeiros 10 milhões de usuários
Escalando para os primeiros 10 milhões de usuários
 
Escalando para os primeiros 10 milhoes de usuarios
Escalando para os primeiros 10 milhoes de usuariosEscalando para os primeiros 10 milhoes de usuarios
Escalando para os primeiros 10 milhoes de usuarios
 
Introduction to Cloud Computing
Introduction to Cloud ComputingIntroduction to Cloud Computing
Introduction to Cloud Computing
 
Introduçãoo aws, escalando uma aplicação Web
Introduçãoo aws, escalando uma aplicação WebIntroduçãoo aws, escalando uma aplicação Web
Introduçãoo aws, escalando uma aplicação Web
 
Desenvolvendo aplicações móveis na Nuvem
Desenvolvendo aplicações móveis na NuvemDesenvolvendo aplicações móveis na Nuvem
Desenvolvendo aplicações móveis na Nuvem
 
Padrões de Arquitetura na Nuvem da AWS
Padrões de Arquitetura na Nuvem da AWSPadrões de Arquitetura na Nuvem da AWS
Padrões de Arquitetura na Nuvem da AWS
 
Liberte-se dos bancos de dados comerciais para economizar, crescer e inovar
Liberte-se dos bancos de dados comerciais para economizar, crescer e inovarLiberte-se dos bancos de dados comerciais para economizar, crescer e inovar
Liberte-se dos bancos de dados comerciais para economizar, crescer e inovar
 
Keynote AWS Roadshow Campinas 2013
Keynote AWS Roadshow Campinas 2013Keynote AWS Roadshow Campinas 2013
Keynote AWS Roadshow Campinas 2013
 
Keynote AWS RoadShow Belo Horizonte 2013
Keynote AWS RoadShow Belo Horizonte 2013Keynote AWS RoadShow Belo Horizonte 2013
Keynote AWS RoadShow Belo Horizonte 2013
 
Conhecendo as opcoes de Storage na Nuvem da AWS
Conhecendo as opcoes de Storage na Nuvem da AWSConhecendo as opcoes de Storage na Nuvem da AWS
Conhecendo as opcoes de Storage na Nuvem da AWS
 
Iniciando com AWS Lambda e serverless em cloud
Iniciando com AWS Lambda e serverless em cloudIniciando com AWS Lambda e serverless em cloud
Iniciando com AWS Lambda e serverless em cloud
 
Cloud Computing & Amazon AWS - Fundamentos - Parte 1
Cloud Computing & Amazon AWS - Fundamentos - Parte 1Cloud Computing & Amazon AWS - Fundamentos - Parte 1
Cloud Computing & Amazon AWS - Fundamentos - Parte 1
 
Primeiros Passos na AWS
Primeiros Passos na AWSPrimeiros Passos na AWS
Primeiros Passos na AWS
 
Primeiros Passos na AWS
Primeiros Passos na AWSPrimeiros Passos na AWS
Primeiros Passos na AWS
 
Bancos de Dados gerenciados na nuvem AWS
Bancos de Dados gerenciados na nuvem AWSBancos de Dados gerenciados na nuvem AWS
Bancos de Dados gerenciados na nuvem AWS
 
Building blocks #1 - Primeiros passos na Amazon Web Services
Building blocks #1 - Primeiros passos na Amazon Web ServicesBuilding blocks #1 - Primeiros passos na Amazon Web Services
Building blocks #1 - Primeiros passos na Amazon Web Services
 

Mehr von Amazon Web Services LATAM

Mehr von Amazon Web Services LATAM (20)

AWS para terceiro setor - Sessão 1 - Introdução à nuvem
AWS para terceiro setor - Sessão 1 - Introdução à nuvemAWS para terceiro setor - Sessão 1 - Introdução à nuvem
AWS para terceiro setor - Sessão 1 - Introdução à nuvem
 
AWS para terceiro setor - Sessão 2 - Armazenamento e Backup
AWS para terceiro setor - Sessão 2 - Armazenamento e BackupAWS para terceiro setor - Sessão 2 - Armazenamento e Backup
AWS para terceiro setor - Sessão 2 - Armazenamento e Backup
 
AWS para terceiro setor - Sessão 3 - Protegendo seus dados.
AWS para terceiro setor - Sessão 3 - Protegendo seus dados.AWS para terceiro setor - Sessão 3 - Protegendo seus dados.
AWS para terceiro setor - Sessão 3 - Protegendo seus dados.
 
AWS para terceiro setor - Sessão 1 - Introdução à nuvem
AWS para terceiro setor - Sessão 1 - Introdução à nuvemAWS para terceiro setor - Sessão 1 - Introdução à nuvem
AWS para terceiro setor - Sessão 1 - Introdução à nuvem
 
AWS para terceiro setor - Sessão 2 - Armazenamento e Backup
AWS para terceiro setor - Sessão 2 - Armazenamento e BackupAWS para terceiro setor - Sessão 2 - Armazenamento e Backup
AWS para terceiro setor - Sessão 2 - Armazenamento e Backup
 
AWS para terceiro setor - Sessão 3 - Protegendo seus dados.
AWS para terceiro setor - Sessão 3 - Protegendo seus dados.AWS para terceiro setor - Sessão 3 - Protegendo seus dados.
AWS para terceiro setor - Sessão 3 - Protegendo seus dados.
 
Automatice el proceso de entrega con CI/CD en AWS
Automatice el proceso de entrega con CI/CD en AWSAutomatice el proceso de entrega con CI/CD en AWS
Automatice el proceso de entrega con CI/CD en AWS
 
Automatize seu processo de entrega de software com CI/CD na AWS
Automatize seu processo de entrega de software com CI/CD na AWSAutomatize seu processo de entrega de software com CI/CD na AWS
Automatize seu processo de entrega de software com CI/CD na AWS
 
Cómo empezar con Amazon EKS
Cómo empezar con Amazon EKSCómo empezar con Amazon EKS
Cómo empezar con Amazon EKS
 
Como começar com Amazon EKS
Como começar com Amazon EKSComo começar com Amazon EKS
Como começar com Amazon EKS
 
Ransomware: como recuperar os seus dados na nuvem AWS
Ransomware: como recuperar os seus dados na nuvem AWSRansomware: como recuperar os seus dados na nuvem AWS
Ransomware: como recuperar os seus dados na nuvem AWS
 
Ransomware: cómo recuperar sus datos en la nube de AWS
Ransomware: cómo recuperar sus datos en la nube de AWSRansomware: cómo recuperar sus datos en la nube de AWS
Ransomware: cómo recuperar sus datos en la nube de AWS
 
Ransomware: Estratégias de Mitigação
Ransomware: Estratégias de MitigaçãoRansomware: Estratégias de Mitigação
Ransomware: Estratégias de Mitigação
 
Ransomware: Estratégias de Mitigación
Ransomware: Estratégias de MitigaciónRansomware: Estratégias de Mitigación
Ransomware: Estratégias de Mitigación
 
Aprenda a migrar y transferir datos al usar la nube de AWS
Aprenda a migrar y transferir datos al usar la nube de AWSAprenda a migrar y transferir datos al usar la nube de AWS
Aprenda a migrar y transferir datos al usar la nube de AWS
 
Aprenda como migrar e transferir dados ao utilizar a nuvem da AWS
Aprenda como migrar e transferir dados ao utilizar a nuvem da AWSAprenda como migrar e transferir dados ao utilizar a nuvem da AWS
Aprenda como migrar e transferir dados ao utilizar a nuvem da AWS
 
Cómo mover a un almacenamiento de archivos administrados
Cómo mover a un almacenamiento de archivos administradosCómo mover a un almacenamiento de archivos administrados
Cómo mover a un almacenamiento de archivos administrados
 
Simplifique su BI con AWS
Simplifique su BI con AWSSimplifique su BI con AWS
Simplifique su BI con AWS
 
Simplifique o seu BI com a AWS
Simplifique o seu BI com a AWSSimplifique o seu BI com a AWS
Simplifique o seu BI com a AWS
 
Os benefícios de migrar seus workloads de Big Data para a AWS
Os benefícios de migrar seus workloads de Big Data para a AWSOs benefícios de migrar seus workloads de Big Data para a AWS
Os benefícios de migrar seus workloads de Big Data para a AWS
 

Kürzlich hochgeladen

Assessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdfAssessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdf
Natalia Granato
 

Kürzlich hochgeladen (6)

Assessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdfAssessement Boas Praticas em Kubernetes.pdf
Assessement Boas Praticas em Kubernetes.pdf
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 

Escalabilidade para sua solução na Nuvem da AWS de um para centenas de milhões de usuários

  • 2. Então, como ter escalabilidade na Nuvem?
  • 5. US-WEST (Oregon) EU-WEST (Ireland) ASIA PAC (Tokyo) US-WEST (N. California) SOUTH AMERICA (Sao Paulo) US-EAST (Virginia) AWS GovCloud (US) ASIA PAC (Sydney) Regiões ASIA PAC (Singapore)
  • 6. US-WEST (Oregon) EU-WEST (Ireland) ASIA PAC (Tokyo) US-WEST (N. California) SOUTH AMERICA (Sao Paulo) US-EAST (Virginia) AWS GovCloud (US) ASIA PAC (Sydney) Zonas de Disponibilidade ASIA PAC (Singapore)
  • 7. Compute Storage AWS Global Infrastructure Database App Services Deployment & Administration Networking
  • 8. Compute Storage AWS Global Infrastructure Database App Services Deployment & Administration Networking Amazon CloudWatch AWS IAM AWS CloudFormation Amazon Elastic Beanstalk AWS Data Pipeline AWS OpsWorks Amazon CloudSearch Amazon SQSAmazon SNS Amazon Elastic Transcoder Amazon SWF Amazon SES Amazon DynamoDB Amazon RDS Amazon ElastiCache Amazon RedShift AWS Storage Gateway Amazon S3 Amazon Glacier Amazon CloudFrontAmazon EC2 Amazon EMR Amazon VPC Amazon Route 53 AWS Direct Connect
  • 9. Vamos então começar pelo dia um, um usuário ( você! ):
  • 10. Dia Um, Um Usuário • Uma instancia EC2 – Stack completo • AplicaçãoWeb • Banco de Dados • Gestão • Etc. • Um Elastic IP • Route53 para DNS EC2 Instance Elastic IP Amazon Route 53 User
  • 11. “Precisamos de uma máquina maior” • Modo mais simples • Pode alavancar uso de PIOPs • Instancias High I/O • Instancias High Memory • Instancias High CPU • Instancias High Storage • Fácil de mudar tamanhos de instancias • Vai eventualmente ter limitações hi1.4xlarge m2.4xlarge m1.small
  • 12. “Precisamos de uma máquina maior” • Modo mais simples • Pode alavancar uso de PIOPs • Instancias High I/O • Instancias High Memory • Instancias High CPU • Instancias High Storage • Fácil de mudar tamanhos de instancias • Vai eventualmente ter limitações hi1.4xlarge m2.4xlarge m1.small
  • 13. Dia Um, Um Usuário: • Pode potencialmente atender algumas centenas até alguns milhares de usuários dependendo da instancia, complexidade da app e tráfego • Não tem failover • Não tem redundância • Todos os ovos no mesmo cesto EC2 Instance Elastic IP Amazon Route 53 User
  • 14. Dia Um, Um Usuário: • Pode potencialmente atender algumas centenas até alguns milhares de usuários dependendo da instancia, complexidade da app e tráfego • Não tem failover • Não tem redundância • Todos os ovos no mesmo cesto EC2 Instance Elastic IP Amazon Route 53 User
  • 15. Dia Dois, Usuário >1: Vamos primeiro separar os recursos em mais de uma instancia. • Instancia Web • Instancia de Banco Web Instance Database Instance Elastic IP Amazon Route 53 User
  • 16. Gestão Própria Serviço Gerenciado Banco de Dados no Amazon EC2 Sua escolha de BD no Amazon EC2 Bring Your Own License (BYOL) Amazon DynamoDB Serviço gerenciado de BD NoSQL que usa storage SSD Amazon RDS MS SQL Server, Oracle ou MySQL as a service BYOL ou Licença Incluída Amazon Redshift Data Warehouse as a service distribuído e com escala de petabytes Opções de Bases de Dados
  • 18. Depende do seu caso de uso, mas…
  • 19. Comece com aquilo que for mais simples para você
  • 20. Vamos começar com o Amazon RDS nesse exemplo
  • 21. Usuários >100: Web Instance Elastic IP RDS DB Instance Amazon Route 53 User Vamos primeiro separar os recursos em mais de uma instancia. • Instancia Web • Instancia de Banco – Use o RDS para ter uma vida mais simples!
  • 22. Usuários > 1000: Agora vamos endereçar a falta de failover e redundancia: • Elastic Load Balancer • Mais uma InstanciaWeb – Em outra Zona de Disponibilidade • Habilitar RDS Multi-AZ Web Instance RDS DB Instance Active (Multi-AZ) Availability Zone Availability Zone Web Instance RDS DB Instance Standby (Multi-AZ) Elastic Load Balancer Amazon Route 53 User
  • 23. Escalando horizontalmente e verticalmente podemos chegar bem longe ( 10s-100s de milhares )
  • 24. Usuários >10ks-100ks: RDS DB Instance Active (Multi-AZ) Availability Zone Availability Zone RDS DB Instance Standby (Multi-AZ) Elastic Load Balancer RDS DB Instance Read Replica RDS DB Instance Read Replica RDS DB Instance Read Replica RDS DB Instance Read Replica Web Instance Web Instance Web Instance Web Instance Web Instance Web Instance Web Instance Web Instance Amazon Route 53 User
  • 25. Isso realmente nos levará longe, mas queremos também performance e eficiência.Vamos limpar um pouco mais
  • 26. Mova a carga: Diminua a carga nas instanciasWeb e BD: • Mova conteúdo estático da instancia Web para o S3 e CloudFront • Mova estado/sessões e faça cache do BD com ElastiCache e/ou DynamoDB Web Instance RDS DB Instance Active (Multi-AZ) Availability Zone Elastic Load Balancer Amazon S3 Amazon Cloudfront Amazon Route 53 User ElastiCache DynamoDB
  • 27. Agora que nossas camadas Web e de BD estão mais leves vamos voltar ao início da nossa discussão…
  • 29. Escalabilidade automática de instancias de acordo com políticas definidas Trigger auto-scaling policy as-create-auto-scaling-group MyGroup --launch-configuration MyConfig --availability-zones us-east-1a --min-size 4 --max-size 200 Auto-Scaling Amazon CloudWatch
  • 30. Tráfego em Novembro na Amazon.com November
  • 33. November Tráfego em Novembro na Amazon.com Auto Scaling
  • 34. É possível fazer ainda mais melhorias deixando suas camadas ainda mais leves e orientadas a serviços
  • 35.
  • 36. SOA = Service Oriented Architecture
  • 37. Baixo acoplamente te liberta! • Reduza o acoplamento para escalar ainda mais – Componentes independentes – Projete-os como uma caixa preta – Desacople as integrações – Prefira serviços já construídos com redundancia e escalabilidade ao invés de contruir novamente Controller A Controller B Controller A Controller B Q Q Alto acomplamento Use Amazon SQS como Buffers Baixo acoplamento
  • 38. Baixo acoplamento + SOA = Win! Exemplos: • Email • Filas • Transcoding de Vídeos • Busca • Bancos de Dados • Monitoramento • Métricas • Logs Amazon CloudSearch Amazon SQSAmazon SNS Amazon Elastic Transcoder Amazon SWF Amazon SES Não reinvente a roda!
  • 39. Baixo acoplamento + SOA Exemplo
  • 40. Imagine um site/app para upload e compartilhamento de fotos entre usuários
  • 41. Exemplo usando filas de mensagem SQS
  • 42. S3 Bucket For Ingest User SNS Topic RRS S3 Bucket to Serve content to CloudFront S3 Bucket For originals CloudFront Download Distribution SQS Queue Size for Thumbnail SQS Queue Size Image for Mobile SQS Queue Size Image for Web Auto scaling Group Instances Auto scaling Group Instances Auto scaling Group Instances
  • 44. S3 Bucket For Ingest User RRS S3 Bucket to Serve content to CloudFront S3 Bucket For originals CloudFront Download Distribution Auto scaling Group Instances Auto scaling Group Instances Auto scaling Group Instances SWF Instance running decider
  • 45. Usuários >1milhão+: Chegar em um milhão e além requer uma arquitetura que utilize os recursos vistos anteriormente: • Multi-AZ • Elastic Load Balancer entre as camadas • Auto-Scaling • Service oriented architecture • Servir conteúdo estático com as soluções certas ( S3/CloudFront ) • Cache e réplicas de bases de dados • Mover estado para fora das camadas com auto-scaling
  • 46. Usuários >1milhão+: RDS DB Instance Active (Multi-AZ) Availability Zone Elastic Load Balancer RDS DB Instance Read Replica RDS DB Instance Read Replica Web Instance Web Instance Web Instance Web Instance Amazon Route 53 User Amazon S3 Amazon Cloudfront DynamoDB Amazon SQS ElastiCache Worker Instance Worker Instance Amazon CloudWatch Internal App Instance Internal App Instance Amazon SES
  • 48. Usuários > 10milhões+: Você provavelmente encontrará dificuldades com sua base de dados nas escritas no BD Master. Como resolver? • Sharding ( separar conjuntos de dados em mais de uma base de dados ) • Mover funcionalidades para outros tipos de BDs ( NoSQL )
  • 49. Sharding • Mais complexo para a camada de aplicação • Complexidade operacional • Shard por função ou chave User ShardID 002345 A 002346 B 002347 C 002348 B 002349 A A B C
  • 50. Mover funcionalidades para NoSQL • Soluções NoSQL usualmente possuem escalabilidade horizontal transparente • Use serviços gerenciados como o DynamoDB DynamoDB
  • 51. Você também poderá ter problemas relacionados a velocidade ou performance. • Tenha soluções de monitoração/métricas/logs – Se possível, use soluções prontas! ( SaaS ) • Preste atenção no que seus usuários estão dizendo • Verifique a performance de cada serviço/componente Usuários > 10milhões+:
  • 53. AWS Marketplace & Partners AWS podem ajudar Saiba mais em: aws.amazon.com/marketplace
  • 54. Usuários > 10 milhões+: Gerenciar sua infraestrutura será fundamental com número de instancias e recursos utilizados em crescimento.Use ferramentas para automatizar tarefas. • Ferramentas da AWS • Ferramentas de gestão de configuração • Análise automatizada de logs e ações de usuários
  • 55. Soluções de Gestão de Aplicações da AWS Elastic Beanstalk OpsWorks CloudFormation EC2 Conveniência Controle Serviços de Alto Nível Faça você mesmo
  • 56. Host Based Configuration Management Dois grandes players: – Opscode Chef – PuppetLabs Puppet • São parecidos em recursos • Use HBCM junto com uma das soluções da AWS (OpsWorks integra com Chef e CloudFormation com Chef ou Puppet) • Mais difícil gerenciar muitos recursos computacionais sem HBCM
  • 58. Pense em redundância em todas as camadas
  • 59. Multi-AZ na sua infraestrutura
  • 60. Faça uso de serviços prontos ( ELB, S3, SNS, SQS, SWF, SES, etc )
  • 61. Use SQL ou NoSQL de acordo com os requisitos de seu negócio
  • 62. Crie uma arquitetura orientada a serviços ( SOA )
  • 63. Use Auto-scaling quando precisar crescer ou diminuir automaticamente
  • 64. Use ferramentas de automação sempre que possível
  • 67. Pensando nesses elementos você certamente poderá atender dezenas e até centenas de milhões de usuários!