28
Uma introdução ao AWS Auto Scaling ESCALABILIDADE @guilhermelias github.com/gelias g [email protected] http://guilhermelias.wordpress.com

AWS Auto Scaling #Parte1

Embed Size (px)

Citation preview

Page 1: AWS Auto Scaling #Parte1

Uma introdução ao AWS Auto Scaling

ESCALABILIDADE

@guilhermelias

github.com/gelias

[email protected]

http://guilhermelias.wordpress.com

Page 2: AWS Auto Scaling #Parte1

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

Page 3: AWS Auto Scaling #Parte1

ESCALAR DE QUE FORMA?

• Vertical

• Horizontal

Page 4: AWS Auto Scaling #Parte1

ESCALAR VERTICALMENTE

• Otimização/Distribuição de rotinas

• Paralelismo• Concorrência

Page 5: AWS Auto Scaling #Parte1

ESCALAR VERTICALMENTE

• Processamento(CPU)

Page 6: AWS Auto Scaling #Parte1

ESCALAR VERTICALMENTE

• Disco(IO/Espaço)

• Discos SSD ao invés de IDE/SATA

Page 7: AWS Auto Scaling #Parte1

ESCALAR VERTICALMENTE

• Memória

Page 8: AWS Auto Scaling #Parte1

ESCALAR HORIZONTALMENTE

• Adicionar/Multiplicar nós(VM, Roteador)• Abordagem Master x Slave - Ativo x Ativo• Filas

Page 9: AWS Auto Scaling #Parte1

ESCALAR HORIZONTALMENTE

• Redundancia (Failover)• Alta disponibilidade• Eliminar pontos únicos de falha• Réplica de dados• Load Balancer• Monitoramento

Page 10: AWS Auto Scaling #Parte1

AWS AUTO SCALING

• Escalabilidade HorizontalScale Up

Page 11: AWS Auto Scaling #Parte1

ESTRATÉGIAS DE ESCALABILIDADE

Escalar de forma automática:• Através de monitoramento

• EC2• ELB

Page 12: AWS Auto Scaling #Parte1

Escalar de forma programada:• Agendar horários

• Criar VMs em horário comercial• Remover VMs fora do horário comercial

ESTRATÉGIAS DE ESCALABILIDADE

Page 13: AWS Auto Scaling #Parte1

Escalar de forma manual:

• Criar / Remover VMs sob demanda

ESTRATÉGIAS DE ESCALABILIDADE

Page 14: AWS Auto Scaling #Parte1

AWS AUTO SCALING

Principais benefícios?

• Custo!!

•Experiência do usuário

Page 15: AWS Auto Scaling #Parte1

AWS AUTO SCALING

Ferramentas?

• Command Line Interface (CLI)• Auto Scale Command Line Tools• SDK (Java, .Net, Ruby, PHP, Node.JS,

Android, iOS)

Page 17: AWS Auto Scaling #Parte1

AUTO SCALE COMMAND LINE TOOLS

Pré-Requisitos

• Possuir uma AMI da VM a ser replicada

Ex.: ami-vmautoscale• Possuir ELB criado *

Ex.: elb-myapp

Page 18: AWS Auto Scaling #Parte1

AUTO SCALE COMMAND LINE TOOLS

Passo#1• Criar “launch-config”

as-create-launch-config my_asconfig

--image-id ami-vmautoscale

--instance-type m1.micro

Page 19: AWS Auto Scaling #Parte1

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

Page 20: AWS Auto Scaling #Parte1

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

Page 21: AWS Auto Scaling #Parte1

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

Page 22: AWS Auto Scaling #Parte1

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

Page 23: AWS Auto Scaling #Parte1

AUTO SCALE COMMAND LINE TOOLS

Passo#6•Remover VMs Manualmente

as-execute-policy

--name scale_down

--auto-scaling-group my_as_group

Page 24: AWS Auto Scaling #Parte1

Uma introdução ao AWS Auto Scaling

ESCALABILIDADE

@guilhermelias

github.com/gelias

[email protected]

http://guilhermelias.wordpress.com

Page 25: AWS Auto Scaling #Parte1

BÔNUS

Page 26: AWS Auto Scaling #Parte1

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 "

Page 27: AWS Auto Scaling #Parte1

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 "

Page 28: AWS Auto Scaling #Parte1

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