SlideShare uma empresa Scribd logo
1 de 55
Baixar para ler offline
São Paulo
Elastic Load Balancing:
Melhores Práticas
Damian Traverso - Solutions Architect
28 Maio, 2015 | São Paulo
O Elastic Load Balancing distribui
automaticamente o tráfego de entrada dos
aplicativos em várias instâncias do Amazon EC2
Elástico Seguro Integrado Custo-benefício
Instância
EC2
ELB
Instância
EC2
Instância
EC2
Instância
EC2
Um Balanceador de
Carga é utilizado para
distribuir requisições
entrantes entre
múltiplas instâncias
EC2
EC2-Classic
• Distribui a carga entre instâncias
no EC2 clássico
• Suporta únicamente endereços IP
públicos
• Não é possível controlar o
Security Group (firewall)
EC2-VPC
• Distribui a carga entre instâncias
dentro duma VPC
• Suporta endereços IPs privados e
públicos
• Controle total sobre o Security
Group do ELB
• Fortemente integrado com a VPC
e as subnets onde foi criado
Arquitetura
us-west-1b
Amazon
Route 53
VPC ELB VPC Cliente
Instância
EC2
Instância
EC2
ELB
ELB
sa-east-1asa-east-1b
Protocolos
TCP/SSL
• Cada conexão entrante do cliente está
associada a uma conexão do backend
• Não ocorrem modificações nos
cabeçalhos
• O Proxy Protocol acrescenta o
endereço IP de origem, junto com o
endereço IP de destino e porta da
requisição
• O algoritmo Round Robin é utilizado
para o encaminhamento das requisições
HTTP/HTTPS
• A conexão cliente é terminada no
balanceador de carga, mas é servida de
um pool de conexões com o back-end
• Os cabeçalhos HTTP podem ser
modificados
• O cabeçalho X-Forwarded-For contém o
endereço IP do cliente
• O algoritmo Least Outstanding
Requests é utilizado para o
encaminhamento das requisições
• Suporte de Sticky Session disponível
Os Health Checks evitam
encaminhar tráfego para
instâncias com falhas
Health Checks
Instância
EC2
Instância
EC2
Instância
EC2
Os Health Checks
garantem que o
tráfego seja
deslocado da
instância que não
esteja respondendo
ELB
Health Checks
Suporta checks TCP e HTTP
Capacidade de personalizar a
frequência e o tempo máximo de espera
Servidor back-end precisa retornar 2xx
É muito importante considerar a
profundidade e a precisão das
checagens
O Idle Timeout permite fechar as conexões inativas no
balanceador de carga
Idle Timeouts
Período de tempo que uma conexão ociosa/inativa deve ser
mantida aberta.
Essa propiedade se aplica para ambas as conexões: do
cliente e do back-end.
Padrão é de 60 segundos, mas pode ser definido entre 1 e
3,600 segundos.
Os tempos de espera devem diminuir à medida que se
aprofunda nas camadas da aplicação
15s
3s
3s15s
3s
9s
ELB
Instâncias
EC2
Amazon
S3
Amazon
RDS
Amazon
SWF
Idle Timeouts
Use múltiplas
Zonas de
Disponibilidade (AZs)
us-west-1b
VPC ELB VPC Cliente
Instância
EC2
Instância
EC2
ELB
ELB
sa-east-1asa-east-1b
Amazon
Route 53
Múltiplas Zonas de Disponibilidade
us-west-1b
VPC ELB VPC Cliente
Instância
EC2
ELB
ELB
sa-east-1asa-east-1b
Amazon
Route 53
Múltiplas Zonas de Disponibilidade
Sempre associe duas
ou mais subnets em
differentes zonas com o
seu balanceador de
carga
Usar múltiplas Zonas de
Disponibilidade pode introduzir
alguns desafios
RequestCount
Time
Tráfego mal equilibrado
VPC ELB VPC Cliente
Instância
EC2
Instâncias
EC2
ELB
ELB
sa-east-1asa-east-1b
Amazon
Route 53
Capacidade das instâncias mal equilibrada
VPC ELB VPC Cliente
Instância
EC2
Instâncias
EC2
ELB
ELB
sa-east-1asa-east-1b
Amazon
Route 53
Cross-Zone
RequestCount
Time
Cross-Zone Enabled
Tráfego mal equilibrado
Cross-Zone
O ELB absorve o impacto do cache de DNS nos clientes.
Elimina os desequilíbrios na utilização das instâncias back-
end.
As requisições são distribuídas uniformemente entre as
Zonas de Disponibilidade
Verifique os limites de conexão nos servidores
backend antes de ativá-lo
Não é cobrado o tráfego entre AZs efetuado
pelo ELB
Cada balanceador de carga pode possuir múltiples registros
DNS
O algoritmo Round Robin é utilizado para distribuir carga
entre Zonas de Disponibilidade
Os registros DNS podem mudar ao longo do
tempo, nunca utilice endereços IP
Depois de ser removido do DNS, os endereços
IP são drenados e colocado em quarentena
até por 7 dias.
Comprendendo os DNS
Otimização de DNS
// Create a wildcard CNAME or ALIAS in Route 53.
*.example.com ALIAS … elb-12345.us-east-1.elb.amazon.com
*.example.com CNAME elb-12345.us-east-1.elb.amazon.com
// prepend random content for each lookup made by the application.
PROMPT> dig +short 25a8ade5-6557-4a54-a60e-8f51f3b195d1.example.com
192.0.2.1
192.0.2.2
O cache de DNS nos clientes e nos ISPs pode fazer com que
os mesmos acessem sempre um único endereço IP
Registre um ‘wildcard’ CNAME ou ALIAS no Amazon Route 53
Suporte para SSL e HTTPS.
Suporte para os mais recentes ciphers e protocolos,
incluindo Elliptical Curve Ciphers e Perfect Forward
Secrecy.
Capacidade de personalizar totalmente os ciphers e
protocolos a serem utilizados por cada balanceador de
carga.
SSL Negotiation Suites são fornecidas para remover a
complexidade de seleção de ciphers e protocolos.
Offloading de SSL
Fornecem uma seleção de ciphers e protocolos que aderem às mais
recentes e melhores práticas da indústria.
Permite equilibrar as melhores práticas de segurança com a
capacidade do cliente para negociar uma conexão. Foram geradas
usando o tráfego da própria Amazon.com.
Lançado em uma cadência regular ou quando
novas vulnerabilidades são publicados.
Padrão para todos os novos balanceadores
de carga.
SSL Negotiation Policies
Em 24 horas, 62% dos
balanceadores de carga foram
migrados para a última SSL
Negotiation Policy, desativando o
protocolo SSLv3.
Mitigação da vulnerabilidade POODLE
@awscloud thank-you #AWS for making it so
easy to prevent #sslv3 #poodleattack Only
took about 3 clicks of my mouse.“
”@granticini
Para cada balanceador de carga são fornecidas 13
métricas de CloudWatch
Fornece uma visão detalhada sobre a saúde do
balanceador de carga e da pilha de aplicações.
Alarmes de CloudWatch podem ser configurados para
notificar, ou tomar medidas, no caso de qualquer
métrica sair do padrão
Todas as métricas são fornecidas com granularidade
de 1 minuto.
Métricas do Amazon CloudWatch
Contagem da quantidade de instâncias
operantes em cada zona de disponibilidade.
A causa mais comum são os Health Checks
excedendo o tempo limite de espera.
Pode testar fazendo repetidas requisições
contra a instância back-end a partir de outra
instância EC2.
Sempre procure a dimensão por Zona de
Disponibilidade.
HealthyHostCount
Mede o tempo decorrido em segundos após uma requisição deixar o
balanceador de carga, até que a resposta seja recebida.
Usando as funcões de min, avg e max; o CloudWatch
pode fornecer limites superiores e inferiores
da latência.
Pode investigar tempos de requisições individuais
usando os logs de acesso do ELB.
Latência
Quantidade de requisições que não puderam ser enviadas para as
instâncias back-end.
Cada nó do ELB consegue enfileirar até 1024 requisições, depois disso vai
retornar erro 503
Muitas vezes pode ser causado por não conseguir
abrir conexões com a instância de back-end.
Normalmente, é um sinal de uma aplicação
com poucos recursos (baixa escala)
SurgeQueue e Spillovers
Qualquer métrica do balanceador de carga pode ser usada para disparar
eventos do AutoScaling
Permitem remidensionar a capacidade dinamicamente, baseando-se na
visão do ELB da aplicação
Importante considerar todas as métricas ao usar
Autoscaling. Pode não estar ciente de outros
recursos que estão no limite
CloudWatch e AutoScaling
Fornecem informações detalhadas sobre cada requisição processada pelo
balanceador de carga.
Inclui o tempo da requisição, o endereço IP do cliente, latências,
caminho (request path), e as respostas do servidor.
São entregues em um bucket do Amazon S3 a
cada 5 ou 60 minutos.
Access Logs
ELB VPC
ELB
ELB
ELB Amazon S3
Os logs são indexados
por data, mas também
incluem o endereço IP
do nó do ELB
Access Logs
• timestamp
• elb name
• client:port
• backend:port
• request_processing_time
• backend_processing_time
• response_processing_time
• elb_status_code
• backend_state_code
• received_bytes
• sent_bytes
• “request”
2014-02-15T23:39:43.945958Z my-test-loadbalancer
192.168.131.39:2817 10.0.0.0.1 0.000073 0.001048 0.000057
200 200 0 29 "GET http://www.example.com:80/HTTP/1.1"
Access Logs
“Everything fails all the time”
Werner Vogels, CTO, Amazon.com
Esteja preparado para fazer nada!
Mitigação Isolamento
Restaurar a
redundância
Todos os balanceadores de carga estão dimensionados para lidar com a
perda de uma única zona de disponibilidade.
Os Health Checks do Amazon Route 53 desviam o tráfego
da Zona de disponibilidade que esteja falhando
O desvio é concluído dentro de 150 segundos.
Não existem outras dependências externas
Mitigação
Outras zonas não devem ser afeitadas pela falha
Evite dependências entre zonas.
Tenha cuidado com o trabalho gerado como resultado
do evento.
Nesse ponto, deveria estar operando com
capacidade reduzida, mas estável.
Isolamento
Os responsáveis pelos Healths Checks
executam o mesmo volume de atividade se
os endpoints estiverem operantes ou não.
Constant Work
tim
e
System activity
Time to react
Quando nada estiver falhando, o volume
de chamadas de API é zero. Quando a
falha ocorre, o volume de chamadas de
API tem picos.
tim
e
System activity
Time to react
Work on Failure
Restaurar o sistema de volta a plena capacidade.
Evite colocar carga adicional no sistema, apressando esta etapa.
Certifique-se que os recursos recuperados são
deixados em um estado consistente.
Recuperação completa quando terminar.
Restaurar a redundância
“Ajudamos os clientes AWS a cortar custos,
automatizar tarefas repetitivas, backup e a
melhorar a segurança.”
• Cloud8 é parceiro de tecnologia
e possui um produto que ajuda
na gestão do AWS estendendo
as funcionalidades
“O AWS é uma
plataforma completa
capaz de trazer ganhos
significativos de capital
e produtividade.”
- Renato Weiner,
CIO/Founder Cloud8
Os Desafios
• Monitorar custos do LB
• Automatizar tarefas para desligar infraestrutura ociosa
• Diagnóstico de melhores práticas para o LB
Solução
• Custos:
– relatórios detalhados e alertas;
• Automatizar tarefas:
– Agendamento de conexão e desconexão de instância ao LB;
– Desligamento ou downgrade de infra ociosa fora do horário comercial;
• Diagnóstico de melhores práticas para o LB:
– CrossZone habilitado
– Connection Draining
– Protocolos e Cyphers inseguros
Obrigado!!
São Paulo

Mais conteúdo relacionado

Mais procurados

Arquitetura Serverless e AWS Lambda - Demo Session
Arquitetura Serverless e AWS Lambda - Demo SessionArquitetura Serverless e AWS Lambda - Demo Session
Arquitetura Serverless e AWS Lambda - Demo SessionAmazon Web Services LATAM
 
Webinar Melhores práticas e lições aprendidas com aplicações sem servidor
Webinar Melhores práticas e lições aprendidas com aplicações sem servidorWebinar Melhores práticas e lições aprendidas com aplicações sem servidor
Webinar Melhores práticas e lições aprendidas com aplicações sem servidorAmazon Web Services LATAM
 
AWS Virtual Private Cloud (VPC): Isolando seus Recursos na Nuvem
AWS Virtual Private Cloud (VPC): Isolando seus Recursos na Nuvem AWS Virtual Private Cloud (VPC): Isolando seus Recursos na Nuvem
AWS Virtual Private Cloud (VPC): Isolando seus Recursos na Nuvem Amazon Web Services LATAM
 
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 BackupAmazon Web Services LATAM
 
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.Amazon Web Services LATAM
 
DevOps, Chef, Puppet, Ansible e como vender milhões na Black Friday com 100% ...
DevOps, Chef, Puppet, Ansible e como vender milhões na Black Friday com 100% ...DevOps, Chef, Puppet, Ansible e como vender milhões na Black Friday com 100% ...
DevOps, Chef, Puppet, Ansible e como vender milhões na Black Friday com 100% ...Bruno Luiz Pereira da Silva
 

Mais procurados (19)

Escalando sua aplicação Web com Beanstalk
Escalando sua aplicação Web com BeanstalkEscalando sua aplicação Web com Beanstalk
Escalando sua aplicação Web com Beanstalk
 
Arquitetura Serverless e AWS Lambda - Demo Session
Arquitetura Serverless e AWS Lambda - Demo SessionArquitetura Serverless e AWS Lambda - Demo Session
Arquitetura Serverless e AWS Lambda - Demo Session
 
Primeiros Passos na AWS
Primeiros Passos na AWSPrimeiros Passos na AWS
Primeiros Passos na AWS
 
Iniciando com Docker na AWS
Iniciando com Docker na AWSIniciando com Docker na AWS
Iniciando com Docker na AWS
 
Primeiros Passos na AWS
Primeiros Passos na AWSPrimeiros Passos na AWS
Primeiros Passos na AWS
 
Webinar Melhores práticas e lições aprendidas com aplicações sem servidor
Webinar Melhores práticas e lições aprendidas com aplicações sem servidorWebinar Melhores práticas e lições aprendidas com aplicações sem servidor
Webinar Melhores práticas e lições aprendidas com aplicações sem servidor
 
AWS Virtual Private Cloud (VPC): Isolando seus Recursos na Nuvem
AWS Virtual Private Cloud (VPC): Isolando seus Recursos na Nuvem AWS Virtual Private Cloud (VPC): Isolando seus Recursos na Nuvem
AWS Virtual Private Cloud (VPC): Isolando seus Recursos na Nuvem
 
Como começar com Amazon EKS
Como começar com Amazon EKSComo começar com Amazon EKS
Como começar com Amazon EKS
 
Road to serverless
Road to serverlessRoad to serverless
Road to serverless
 
JavaEE
JavaEEJavaEE
JavaEE
 
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.
 
Criando e conectando seu datacenter virtual
Criando e conectando seu datacenter virtualCriando e conectando seu datacenter virtual
Criando e conectando seu datacenter virtual
 
Infraestrutura como código
Infraestrutura como códigoInfraestrutura como código
Infraestrutura como código
 
DevOps, Chef, Puppet, Ansible e como vender milhões na Black Friday com 100% ...
DevOps, Chef, Puppet, Ansible e como vender milhões na Black Friday com 100% ...DevOps, Chef, Puppet, Ansible e como vender milhões na Black Friday com 100% ...
DevOps, Chef, Puppet, Ansible e como vender milhões na Black Friday com 100% ...
 
Amazon EC2 avançado
Amazon EC2 avançadoAmazon EC2 avançado
Amazon EC2 avançado
 
JavaME - Aula 1
JavaME - Aula 1JavaME - Aula 1
JavaME - Aula 1
 
Fazendo seu DR na AWS
Fazendo seu DR na AWSFazendo seu DR na AWS
Fazendo seu DR na AWS
 
Fazendo seu DR na AWS de maneira prática
Fazendo seu DR na AWS de maneira práticaFazendo seu DR na AWS de maneira prática
Fazendo seu DR na AWS de maneira prática
 

Semelhante a Melhores práticas para o Elastic Load Balancing na AWS

1º Meetup - Amazon AWS BH
1º Meetup - Amazon AWS BH1º Meetup - Amazon AWS BH
1º Meetup - Amazon AWS BHWallison Marra
 
Aula 6 - EC2, ELB, Auto Scaling, Cloud Watch
Aula 6 - EC2, ELB, Auto Scaling, Cloud WatchAula 6 - EC2, ELB, Auto Scaling, Cloud Watch
Aula 6 - EC2, ELB, Auto Scaling, Cloud WatchEduardo de Lucena Falcão
 
AWS Experience Fortaleza: Escalando sua aplicação Web com Beanstalk
AWS Experience Fortaleza: Escalando sua aplicação Web com BeanstalkAWS Experience Fortaleza: Escalando sua aplicação Web com Beanstalk
AWS Experience Fortaleza: Escalando sua aplicação Web com BeanstalkAmazon Web Services LATAM
 
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áriosAmazon Web Services LATAM
 
Desmistificando a Amazon AWS
Desmistificando a Amazon AWSDesmistificando a Amazon AWS
Desmistificando a Amazon AWSMatheus Fidelis
 
ALM e Operações - Workshop - Como Diagnosticar um Incidente
ALM e Operações - Workshop - Como Diagnosticar um IncidenteALM e Operações - Workshop - Como Diagnosticar um Incidente
ALM e Operações - Workshop - Como Diagnosticar um IncidenteAlan Carlos
 
Construindo APIs com Amazon API Gateway e AWS Lambda
Construindo APIs com Amazon API Gateway e AWS LambdaConstruindo APIs com Amazon API Gateway e AWS Lambda
Construindo APIs com Amazon API Gateway e AWS LambdaAmazon Web Services LATAM
 
Migrando seu banco de dados para a AWS - Deep Dive em Amazon RDS e AWS Databa...
Migrando seu banco de dados para a AWS - Deep Dive em Amazon RDS e AWS Databa...Migrando seu banco de dados para a AWS - Deep Dive em Amazon RDS e AWS Databa...
Migrando seu banco de dados para a AWS - Deep Dive em Amazon RDS e AWS Databa...Amazon Web Services LATAM
 
Cloud Computing & Amazon AWS - PUCMINAS 2015
Cloud Computing & Amazon AWS - PUCMINAS 2015Cloud Computing & Amazon AWS - PUCMINAS 2015
Cloud Computing & Amazon AWS - PUCMINAS 2015Wallison Marra
 
Dicas para Turbinar o servidor de Aplicações JBoss 7
Dicas para Turbinar o servidor de Aplicações JBoss 7Dicas para Turbinar o servidor de Aplicações JBoss 7
Dicas para Turbinar o servidor de Aplicações JBoss 7Claudio Miranda
 
AWS Auto Scaling #Parte1
AWS Auto Scaling #Parte1AWS Auto Scaling #Parte1
AWS Auto Scaling #Parte1Guilherme Elias
 
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 cloudAmazon Web Services LATAM
 
DevOps - melhores práticas e integração contínua
DevOps - melhores práticas e integração contínuaDevOps - melhores práticas e integração contínua
DevOps - melhores práticas e integração contínuaAmazon Web Services LATAM
 
Medindo e Modelando o Desempenho de Aplicações em um Ambiente Virtual
Medindo e Modelando o Desempenho de Aplicações em um Ambiente VirtualMedindo e Modelando o Desempenho de Aplicações em um Ambiente Virtual
Medindo e Modelando o Desempenho de Aplicações em um Ambiente VirtualRafael Reis
 
Webinar: Criando e conectando seu Datacenter Virtual
Webinar: Criando e conectando seu Datacenter VirtualWebinar: Criando e conectando seu Datacenter Virtual
Webinar: Criando e conectando seu Datacenter VirtualAmazon Web Services LATAM
 
Melhores práticas de CI/CD na construção de aplicações modernas
Melhores práticas de CI/CD na construção de aplicações modernasMelhores práticas de CI/CD na construção de aplicações modernas
Melhores práticas de CI/CD na construção de aplicações modernasAmazon Web Services LATAM
 
2 Ads
2 Ads2 Ads
2 Adslcbj
 

Semelhante a Melhores práticas para o Elastic Load Balancing na AWS (20)

1º Meetup - Amazon AWS BH
1º Meetup - Amazon AWS BH1º Meetup - Amazon AWS BH
1º Meetup - Amazon AWS BH
 
Aula 6 - EC2, ELB, Auto Scaling, Cloud Watch
Aula 6 - EC2, ELB, Auto Scaling, Cloud WatchAula 6 - EC2, ELB, Auto Scaling, Cloud Watch
Aula 6 - EC2, ELB, Auto Scaling, Cloud Watch
 
AWS Experience Fortaleza: Escalando sua aplicação Web com Beanstalk
AWS Experience Fortaleza: Escalando sua aplicação Web com BeanstalkAWS Experience Fortaleza: Escalando sua aplicação Web com Beanstalk
AWS Experience Fortaleza: Escalando sua aplicação Web com Beanstalk
 
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
 
Desmistificando a Amazon AWS
Desmistificando a Amazon AWSDesmistificando a Amazon AWS
Desmistificando a Amazon AWS
 
ALM e Operações - Workshop - Como Diagnosticar um Incidente
ALM e Operações - Workshop - Como Diagnosticar um IncidenteALM e Operações - Workshop - Como Diagnosticar um Incidente
ALM e Operações - Workshop - Como Diagnosticar um Incidente
 
Construindo APIs com Amazon API Gateway e AWS Lambda
Construindo APIs com Amazon API Gateway e AWS LambdaConstruindo APIs com Amazon API Gateway e AWS Lambda
Construindo APIs com Amazon API Gateway e AWS Lambda
 
Migrando seu banco de dados para a AWS - Deep Dive em Amazon RDS e AWS Databa...
Migrando seu banco de dados para a AWS - Deep Dive em Amazon RDS e AWS Databa...Migrando seu banco de dados para a AWS - Deep Dive em Amazon RDS e AWS Databa...
Migrando seu banco de dados para a AWS - Deep Dive em Amazon RDS e AWS Databa...
 
Cloud Computing & Amazon AWS - PUCMINAS 2015
Cloud Computing & Amazon AWS - PUCMINAS 2015Cloud Computing & Amazon AWS - PUCMINAS 2015
Cloud Computing & Amazon AWS - PUCMINAS 2015
 
DevTalk 08/2019
DevTalk 08/2019DevTalk 08/2019
DevTalk 08/2019
 
Dicas para Turbinar o servidor de Aplicações JBoss 7
Dicas para Turbinar o servidor de Aplicações JBoss 7Dicas para Turbinar o servidor de Aplicações JBoss 7
Dicas para Turbinar o servidor de Aplicações JBoss 7
 
AWS Auto Scaling #Parte1
AWS Auto Scaling #Parte1AWS Auto Scaling #Parte1
AWS Auto Scaling #Parte1
 
Introdução ao Amazon EKS
Introdução ao Amazon EKSIntrodução ao Amazon EKS
Introdução ao Amazon EKS
 
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
 
DevOps - melhores práticas e integração contínua
DevOps - melhores práticas e integração contínuaDevOps - melhores práticas e integração contínua
DevOps - melhores práticas e integração contínua
 
Medindo e Modelando o Desempenho de Aplicações em um Ambiente Virtual
Medindo e Modelando o Desempenho de Aplicações em um Ambiente VirtualMedindo e Modelando o Desempenho de Aplicações em um Ambiente Virtual
Medindo e Modelando o Desempenho de Aplicações em um Ambiente Virtual
 
Webinar: Criando e conectando seu Datacenter Virtual
Webinar: Criando e conectando seu Datacenter VirtualWebinar: Criando e conectando seu Datacenter Virtual
Webinar: Criando e conectando seu Datacenter Virtual
 
Melhores práticas de CI/CD na construção de aplicações modernas
Melhores práticas de CI/CD na construção de aplicações modernasMelhores práticas de CI/CD na construção de aplicações modernas
Melhores práticas de CI/CD na construção de aplicações modernas
 
Auto scaling
Auto scalingAuto scaling
Auto scaling
 
2 Ads
2 Ads2 Ads
2 Ads
 

Mais de Amazon Web Services LATAM

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 à nuvemAmazon Web Services LATAM
 
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 BackupAmazon Web Services LATAM
 
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.Amazon Web Services LATAM
 
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 à nuvemAmazon Web Services LATAM
 
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 AWSAmazon Web Services LATAM
 
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 AWSAmazon Web Services LATAM
 
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 AWSAmazon Web Services LATAM
 
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 AWSAmazon Web Services LATAM
 
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 AWSAmazon Web Services LATAM
 
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 AWSAmazon Web Services LATAM
 
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 administradosAmazon Web Services LATAM
 
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 AWSAmazon Web Services LATAM
 
Los beneficios de migrar sus cargas de trabajo de big data a AWS
Los beneficios de migrar sus cargas de trabajo de big data a AWSLos beneficios de migrar sus cargas de trabajo de big data a AWS
Los beneficios de migrar sus cargas de trabajo de big data a AWSAmazon Web Services LATAM
 

Mais de 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
 
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
 
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
 
Los beneficios de migrar sus cargas de trabajo de big data a AWS
Los beneficios de migrar sus cargas de trabajo de big data a AWSLos beneficios de migrar sus cargas de trabajo de big data a AWS
Los beneficios de migrar sus cargas de trabajo de big data a AWS
 
Bases de datos NoSQL en AWS
Bases de datos NoSQL en AWSBases de datos NoSQL en AWS
Bases de datos NoSQL en AWS
 
Bancos de dados NoSQL na AWS
Bancos de dados NoSQL na AWSBancos de dados NoSQL na AWS
Bancos de dados NoSQL na AWS
 

Melhores práticas para o Elastic Load Balancing na AWS

  • 2. Elastic Load Balancing: Melhores Práticas Damian Traverso - Solutions Architect 28 Maio, 2015 | São Paulo
  • 3. O Elastic Load Balancing distribui automaticamente o tráfego de entrada dos aplicativos em várias instâncias do Amazon EC2
  • 4. Elástico Seguro Integrado Custo-benefício
  • 6. ELB Instância EC2 Instância EC2 Instância EC2 Um Balanceador de Carga é utilizado para distribuir requisições entrantes entre múltiplas instâncias EC2
  • 7. EC2-Classic • Distribui a carga entre instâncias no EC2 clássico • Suporta únicamente endereços IP públicos • Não é possível controlar o Security Group (firewall) EC2-VPC • Distribui a carga entre instâncias dentro duma VPC • Suporta endereços IPs privados e públicos • Controle total sobre o Security Group do ELB • Fortemente integrado com a VPC e as subnets onde foi criado
  • 9. us-west-1b Amazon Route 53 VPC ELB VPC Cliente Instância EC2 Instância EC2 ELB ELB sa-east-1asa-east-1b
  • 11. TCP/SSL • Cada conexão entrante do cliente está associada a uma conexão do backend • Não ocorrem modificações nos cabeçalhos • O Proxy Protocol acrescenta o endereço IP de origem, junto com o endereço IP de destino e porta da requisição • O algoritmo Round Robin é utilizado para o encaminhamento das requisições HTTP/HTTPS • A conexão cliente é terminada no balanceador de carga, mas é servida de um pool de conexões com o back-end • Os cabeçalhos HTTP podem ser modificados • O cabeçalho X-Forwarded-For contém o endereço IP do cliente • O algoritmo Least Outstanding Requests é utilizado para o encaminhamento das requisições • Suporte de Sticky Session disponível
  • 12. Os Health Checks evitam encaminhar tráfego para instâncias com falhas
  • 13. Health Checks Instância EC2 Instância EC2 Instância EC2 Os Health Checks garantem que o tráfego seja deslocado da instância que não esteja respondendo ELB
  • 14. Health Checks Suporta checks TCP e HTTP Capacidade de personalizar a frequência e o tempo máximo de espera Servidor back-end precisa retornar 2xx É muito importante considerar a profundidade e a precisão das checagens
  • 15. O Idle Timeout permite fechar as conexões inativas no balanceador de carga
  • 16. Idle Timeouts Período de tempo que uma conexão ociosa/inativa deve ser mantida aberta. Essa propiedade se aplica para ambas as conexões: do cliente e do back-end. Padrão é de 60 segundos, mas pode ser definido entre 1 e 3,600 segundos. Os tempos de espera devem diminuir à medida que se aprofunda nas camadas da aplicação
  • 19. us-west-1b VPC ELB VPC Cliente Instância EC2 Instância EC2 ELB ELB sa-east-1asa-east-1b Amazon Route 53 Múltiplas Zonas de Disponibilidade
  • 20. us-west-1b VPC ELB VPC Cliente Instância EC2 ELB ELB sa-east-1asa-east-1b Amazon Route 53 Múltiplas Zonas de Disponibilidade
  • 21. Sempre associe duas ou mais subnets em differentes zonas com o seu balanceador de carga
  • 22. Usar múltiplas Zonas de Disponibilidade pode introduzir alguns desafios
  • 24. VPC ELB VPC Cliente Instância EC2 Instâncias EC2 ELB ELB sa-east-1asa-east-1b Amazon Route 53 Capacidade das instâncias mal equilibrada
  • 25. VPC ELB VPC Cliente Instância EC2 Instâncias EC2 ELB ELB sa-east-1asa-east-1b Amazon Route 53 Cross-Zone
  • 27. Cross-Zone O ELB absorve o impacto do cache de DNS nos clientes. Elimina os desequilíbrios na utilização das instâncias back- end. As requisições são distribuídas uniformemente entre as Zonas de Disponibilidade Verifique os limites de conexão nos servidores backend antes de ativá-lo Não é cobrado o tráfego entre AZs efetuado pelo ELB
  • 28. Cada balanceador de carga pode possuir múltiples registros DNS O algoritmo Round Robin é utilizado para distribuir carga entre Zonas de Disponibilidade Os registros DNS podem mudar ao longo do tempo, nunca utilice endereços IP Depois de ser removido do DNS, os endereços IP são drenados e colocado em quarentena até por 7 dias. Comprendendo os DNS
  • 29. Otimização de DNS // Create a wildcard CNAME or ALIAS in Route 53. *.example.com ALIAS … elb-12345.us-east-1.elb.amazon.com *.example.com CNAME elb-12345.us-east-1.elb.amazon.com // prepend random content for each lookup made by the application. PROMPT> dig +short 25a8ade5-6557-4a54-a60e-8f51f3b195d1.example.com 192.0.2.1 192.0.2.2 O cache de DNS nos clientes e nos ISPs pode fazer com que os mesmos acessem sempre um único endereço IP Registre um ‘wildcard’ CNAME ou ALIAS no Amazon Route 53
  • 30. Suporte para SSL e HTTPS. Suporte para os mais recentes ciphers e protocolos, incluindo Elliptical Curve Ciphers e Perfect Forward Secrecy. Capacidade de personalizar totalmente os ciphers e protocolos a serem utilizados por cada balanceador de carga. SSL Negotiation Suites são fornecidas para remover a complexidade de seleção de ciphers e protocolos. Offloading de SSL
  • 31.
  • 32. Fornecem uma seleção de ciphers e protocolos que aderem às mais recentes e melhores práticas da indústria. Permite equilibrar as melhores práticas de segurança com a capacidade do cliente para negociar uma conexão. Foram geradas usando o tráfego da própria Amazon.com. Lançado em uma cadência regular ou quando novas vulnerabilidades são publicados. Padrão para todos os novos balanceadores de carga. SSL Negotiation Policies
  • 33. Em 24 horas, 62% dos balanceadores de carga foram migrados para a última SSL Negotiation Policy, desativando o protocolo SSLv3. Mitigação da vulnerabilidade POODLE
  • 34. @awscloud thank-you #AWS for making it so easy to prevent #sslv3 #poodleattack Only took about 3 clicks of my mouse.“ ”@granticini
  • 35. Para cada balanceador de carga são fornecidas 13 métricas de CloudWatch Fornece uma visão detalhada sobre a saúde do balanceador de carga e da pilha de aplicações. Alarmes de CloudWatch podem ser configurados para notificar, ou tomar medidas, no caso de qualquer métrica sair do padrão Todas as métricas são fornecidas com granularidade de 1 minuto. Métricas do Amazon CloudWatch
  • 36. Contagem da quantidade de instâncias operantes em cada zona de disponibilidade. A causa mais comum são os Health Checks excedendo o tempo limite de espera. Pode testar fazendo repetidas requisições contra a instância back-end a partir de outra instância EC2. Sempre procure a dimensão por Zona de Disponibilidade. HealthyHostCount
  • 37. Mede o tempo decorrido em segundos após uma requisição deixar o balanceador de carga, até que a resposta seja recebida. Usando as funcões de min, avg e max; o CloudWatch pode fornecer limites superiores e inferiores da latência. Pode investigar tempos de requisições individuais usando os logs de acesso do ELB. Latência
  • 38. Quantidade de requisições que não puderam ser enviadas para as instâncias back-end. Cada nó do ELB consegue enfileirar até 1024 requisições, depois disso vai retornar erro 503 Muitas vezes pode ser causado por não conseguir abrir conexões com a instância de back-end. Normalmente, é um sinal de uma aplicação com poucos recursos (baixa escala) SurgeQueue e Spillovers
  • 39. Qualquer métrica do balanceador de carga pode ser usada para disparar eventos do AutoScaling Permitem remidensionar a capacidade dinamicamente, baseando-se na visão do ELB da aplicação Importante considerar todas as métricas ao usar Autoscaling. Pode não estar ciente de outros recursos que estão no limite CloudWatch e AutoScaling
  • 40. Fornecem informações detalhadas sobre cada requisição processada pelo balanceador de carga. Inclui o tempo da requisição, o endereço IP do cliente, latências, caminho (request path), e as respostas do servidor. São entregues em um bucket do Amazon S3 a cada 5 ou 60 minutos. Access Logs
  • 41. ELB VPC ELB ELB ELB Amazon S3 Os logs são indexados por data, mas também incluem o endereço IP do nó do ELB Access Logs
  • 42. • timestamp • elb name • client:port • backend:port • request_processing_time • backend_processing_time • response_processing_time • elb_status_code • backend_state_code • received_bytes • sent_bytes • “request” 2014-02-15T23:39:43.945958Z my-test-loadbalancer 192.168.131.39:2817 10.0.0.0.1 0.000073 0.001048 0.000057 200 200 0 29 "GET http://www.example.com:80/HTTP/1.1" Access Logs
  • 43. “Everything fails all the time” Werner Vogels, CTO, Amazon.com
  • 44. Esteja preparado para fazer nada!
  • 46. Todos os balanceadores de carga estão dimensionados para lidar com a perda de uma única zona de disponibilidade. Os Health Checks do Amazon Route 53 desviam o tráfego da Zona de disponibilidade que esteja falhando O desvio é concluído dentro de 150 segundos. Não existem outras dependências externas Mitigação
  • 47. Outras zonas não devem ser afeitadas pela falha Evite dependências entre zonas. Tenha cuidado com o trabalho gerado como resultado do evento. Nesse ponto, deveria estar operando com capacidade reduzida, mas estável. Isolamento
  • 48. Os responsáveis pelos Healths Checks executam o mesmo volume de atividade se os endpoints estiverem operantes ou não. Constant Work tim e System activity Time to react Quando nada estiver falhando, o volume de chamadas de API é zero. Quando a falha ocorre, o volume de chamadas de API tem picos. tim e System activity Time to react Work on Failure
  • 49. Restaurar o sistema de volta a plena capacidade. Evite colocar carga adicional no sistema, apressando esta etapa. Certifique-se que os recursos recuperados são deixados em um estado consistente. Recuperação completa quando terminar. Restaurar a redundância
  • 50.
  • 51. “Ajudamos os clientes AWS a cortar custos, automatizar tarefas repetitivas, backup e a melhorar a segurança.” • Cloud8 é parceiro de tecnologia e possui um produto que ajuda na gestão do AWS estendendo as funcionalidades “O AWS é uma plataforma completa capaz de trazer ganhos significativos de capital e produtividade.” - Renato Weiner, CIO/Founder Cloud8
  • 52. Os Desafios • Monitorar custos do LB • Automatizar tarefas para desligar infraestrutura ociosa • Diagnóstico de melhores práticas para o LB
  • 53. Solução • Custos: – relatórios detalhados e alertas; • Automatizar tarefas: – Agendamento de conexão e desconexão de instância ao LB; – Desligamento ou downgrade de infra ociosa fora do horário comercial; • Diagnóstico de melhores práticas para o LB: – CrossZone habilitado – Connection Draining – Protocolos e Cyphers inseguros