Post on 29-Jun-2015
Uma introdução ao AWS Auto Scaling
ESCALABILIDADE
@guilhermelias
github.com/gelias
guilherme.elias@gmail.com
http://guilhermelias.wordpress.com
ESCALABILIDADEWikipedia:
Característica desejável em todo o sistema, em uma rede ou em um processo, que indica sua habilidade de
manipular uma porção crescente de trabalho de forma uniforme, ou simplesmente
Estar preparado para crescer
http://pt.wikipedia.org/wiki/Escalabilidade
ESCALAR DE QUE FORMA?
• Vertical
• Horizontal
ESCALAR VERTICALMENTE
• Otimização/Distribuição de rotinas
• Paralelismo• Concorrência
ESCALAR VERTICALMENTE
• Processamento(CPU)
ESCALAR VERTICALMENTE
• Disco(IO/Espaço)
• Discos SSD ao invés de IDE/SATA
ESCALAR VERTICALMENTE
• Memória
ESCALAR HORIZONTALMENTE
• Adicionar/Multiplicar nós(VM, Roteador)• Abordagem Master x Slave - Ativo x Ativo• Filas
ESCALAR HORIZONTALMENTE
• Redundancia (Failover)• Alta disponibilidade• Eliminar pontos únicos de falha• Réplica de dados• Load Balancer• Monitoramento
AWS AUTO SCALING
• Escalabilidade HorizontalScale Up
ESTRATÉGIAS DE ESCALABILIDADE
Escalar de forma automática:• Através de monitoramento
• EC2• ELB
Escalar de forma programada:• Agendar horários
• Criar VMs em horário comercial• Remover VMs fora do horário comercial
ESTRATÉGIAS DE ESCALABILIDADE
Escalar de forma manual:
• Criar / Remover VMs sob demanda
ESTRATÉGIAS DE ESCALABILIDADE
AWS AUTO SCALING
Principais benefícios?
• Custo!!
•Experiência do usuário
AWS AUTO SCALING
Ferramentas?
• Command Line Interface (CLI)• Auto Scale Command Line Tools• SDK (Java, .Net, Ruby, PHP, Node.JS,
Android, iOS)
AUTO SCALE COMMAND LINE TOOLS
Documentação
• QRC – Quick Reference Card• Developer Guide• Instalação Command Line Tools
AUTO SCALE COMMAND LINE TOOLS
Pré-Requisitos
• Possuir uma AMI da VM a ser replicada
Ex.: ami-vmautoscale• Possuir ELB criado *
Ex.: elb-myapp
AUTO SCALE COMMAND LINE TOOLS
Passo#1• Criar “launch-config”
as-create-launch-config my_asconfig
--image-id ami-vmautoscale
--instance-type m1.micro
AUTO SCALE COMMAND LINE TOOLS
Passo#2• Criar “auto-scale-group” as-create-auto-scaling-group my_as_group
--launch-configuration my_asconfig
--availability-zones us-east-1a us-east-1b
--min-size 2 --max-size 20
--load-balancers MyLB
AUTO SCALE COMMAND LINE TOOLS
Passo#3• Criar “scaling-policy” para criar novas VMsas-put-scaling-policy scale_up
--auto-scaling-group my_as_group
--adjustment=1
--type ChangeInCapacity
--cooldown 300
AUTO SCALE COMMAND LINE TOOLS
Passo#4• Criar “scaling-policy” para remover VMsas-put-scaling-policy scale_down
--auto-scaling-group my_as_group
--adjustment=-1
--type ChangeInCapacity
--cooldown 300
AUTO SCALE COMMAND LINE TOOLS
Passo#5• Let’s Test :-)•Criar VMs Manualmente
as-execute-policy
--name scale_up
--auto-scaling-group my_as_group
AUTO SCALE COMMAND LINE TOOLS
Passo#6•Remover VMs Manualmente
as-execute-policy
--name scale_down
--auto-scaling-group my_as_group
Uma introdução ao AWS Auto Scaling
ESCALABILIDADE
@guilhermelias
github.com/gelias
guilherme.elias@gmail.com
http://guilhermelias.wordpress.com
BÔNUS
AUTO SCALE COMMAND LINE TOOLS
Bônus:•Criando VMs usando Cloud Watchmon-put-metric-alarm MyHighCPUAlarm --comparison-operator GreaterThanThreshold --evaluation-periods 1 --metric-name CPUUtilization --namespace "AWS/EC2" --period 600 --statistic Average --threshold 80 --alarm-actions <ARN_policy_scale_up> --dimensions "AutoScalingGroupName=my_as_group "
AUTO SCALE COMMAND LINE TOOLS
Bônus:•Criando VMs usando Cloud Watchmon-put-metric-alarm MyHighCPUAlarm --comparison-operator LessThanThreshold --evaluation-periods 1 --metric-name CPUUtilization --namespace "AWS/EC2" --period 600 --statistic Average --threshold 20 --alarm-actions <ARN_policy_scale_down> --dimensions "AutoScalingGroupName=my_as_group "
LINKSEscalabilidade: http://pt.wikipedia.org/wiki/EscalabilidadeAmazon Web Services: http://aws.amazon.com/pt Amazon Auto Scaling: http://aws.amazon.com/autoscaling Amazon EC2: http://aws.amazon.com/ec2 Auto Scaling Quick Reference Card: http://awsdocs.s3.amazonaws.com/AutoScaling/latest/as-qrc.pdf s.com/Developer Guide: http://docs.aws.amazon.com/AutoScaling/latest/DeveloperGuide/
astools.html Elastic Load Balancer: http://aws.amazon.com/elasticloadbalancing Command Line Tools: http://docs.aws.amazon.com/AutoScaling/latest/DeveloperGuide/UsingTheCommandLineTools.html
Amazon Machine Images: https://aws.amazon.com/amis