auto scaling aws

29
Auto-Scaling no AWS Thiago Rondon, [email protected] Encontro Técnico b-datum.com Friday, November 29, 13

Upload: thiago-rondon

Post on 30-Nov-2014

415 views

Category:

Technology


2 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Auto Scaling AWS

Auto-Scaling no AWSThiago Rondon, [email protected]

Encontro Técnico b-datum.com

Friday, November 29, 13

Page 2: Auto Scaling AWS

termostato“manter constante a temperatura de um determinado ambiente”

Friday, November 29, 13

Page 3: Auto Scaling AWS

capacidade

tempo

tradicional

necessidade

desperdício

problemas

desperdício

Friday, November 29, 13

Page 4: Auto Scaling AWS

Elastic Load Balacing

ELB

sticky sessions*default disable

múltiplas regiões

saúde do EC2ro

und-

robi

n

Friday, November 29, 13

Page 5: Auto Scaling AWS

CloudWatch

métricas próprias

alarmes

console ou API

Friday, November 29, 13

Page 6: Auto Scaling AWS

EC2 & AMI

Amazon Machine Image

Elastic Compute Cloud

Friday, November 29, 13

Page 7: Auto Scaling AWS

aws.amazon.com/developertools

Friday, November 29, 13

Page 8: Auto Scaling AWS

$  aws  configureX

vim  secrets.txt

AWSAccessKeyId=0000000AWSSecretKey=222222+33333333

export  AWS_CREDENTIAL_FILE=secrets.txt

Friday, November 29, 13

Page 9: Auto Scaling AWS

Friday, November 29, 13

Page 10: Auto Scaling AWS

#  as-­‐as-­‐cmd                                                                              as-­‐describe-­‐auto-­‐scaling-­‐instances                      as-­‐enable-­‐metrics-­‐collectionas-­‐create-­‐auto-­‐scaling-­‐group                                  as-­‐describe-­‐auto-­‐scaling-­‐notification-­‐types    as-­‐execute-­‐policyas-­‐create-­‐launch-­‐config                                            as-­‐describe-­‐launch-­‐configs                                      as-­‐put-­‐notification-­‐configurationas-­‐create-­‐or-­‐update-­‐tags                                          as-­‐describe-­‐metric-­‐collection-­‐types                    as-­‐put-­‐scaling-­‐policyas-­‐delete-­‐auto-­‐scaling-­‐group                                  as-­‐describe-­‐notification-­‐configurations            as-­‐put-­‐scheduled-­‐update-­‐group-­‐actionas-­‐delete-­‐launch-­‐config                                            as-­‐describe-­‐policies                                                  as-­‐resume-­‐processesas-­‐delete-­‐notification-­‐configuration                  as-­‐describe-­‐process-­‐types                                        as-­‐set-­‐desired-­‐capacityas-­‐delete-­‐policy                                                          as-­‐describe-­‐scaling-­‐activities                              as-­‐set-­‐instance-­‐healthas-­‐delete-­‐scheduled-­‐action                                      as-­‐describe-­‐scheduled-­‐actions                                as-­‐suspend-­‐processesas-­‐delete-­‐tags                                                              as-­‐describe-­‐tags                                                          as-­‐terminate-­‐instance-­‐in-­‐auto-­‐scaling-­‐groupas-­‐describe-­‐adjustment-­‐types                                  as-­‐describe-­‐termination-­‐policy-­‐types                  as-­‐update-­‐auto-­‐scaling-­‐groupas-­‐describe-­‐auto-­‐scaling-­‐groups                            as-­‐disable-­‐metrics-­‐collection                                as-­‐version

Friday, November 29, 13

Page 11: Auto Scaling AWS

#  as-­‐create-­‐launch-­‐config  -­‐-­‐image-­‐id  ami-­‐43e0c12a  \   -­‐-­‐instance-­‐type  t1.micro  -­‐-­‐key  "thiago-­‐teste"  \   -­‐-­‐group  "default"  -­‐-­‐launch-­‐config  bdatum-­‐config

OK-­‐Created  launch  config

Friday, November 29, 13

Page 12: Auto Scaling AWS

#  as-­‐describe-­‐scaling-­‐activitiesNo  activities  found

Friday, November 29, 13

Page 13: Auto Scaling AWS

#  as-­‐create-­‐auto-­‐scaling-­‐group  bdatum-­‐scaling  \   -­‐-­‐launch-­‐configuration  bdatum-­‐config  \   -­‐-­‐availability-­‐zones  us-­‐east-­‐1d  -­‐-­‐min-­‐size  2  \   -­‐-­‐max-­‐size  10  -­‐-­‐load-­‐balancers  bdatum-­‐elb  \   -­‐-­‐health-­‐check-­‐type  ELB  -­‐-­‐grace-­‐period  300

OK-­‐Created  AutoScalingGroup

Friday, November 29, 13

Page 14: Auto Scaling AWS

#  as-­‐put-­‐scaling-­‐policy  \   -­‐-­‐auto-­‐scaling-­‐group  bdatum-­‐scaling  \   -­‐-­‐name  scale-­‐up  -­‐-­‐adjustment  1  \   -­‐-­‐type  ChangeInCapacity  -­‐-­‐cooldown  300

arn:aws:autoscaling:us-­‐east-­‐1:838846897022:scalingPolicy:c1016b4a-­‐8e2d-­‐43b5-­‐aa0c-­‐fdc701ffd362:autoScalingGroupName/bdatum-­‐scaling:policyName/scale-­‐up

Friday, November 29, 13

Page 15: Auto Scaling AWS

#  as-­‐put-­‐scaling-­‐policy  \   -­‐-­‐auto-­‐scaling-­‐group  bdatum-­‐scaling  \   -­‐-­‐name  scale-­‐dn  "-­‐-­‐adjustment=-­‐1"  \   -­‐-­‐type  ChangeInCapacity  -­‐-­‐cooldown  300

arn:aws:autoscaling:us-­‐east-­‐1:838846897022:scalingPolicy:4b514a9a-­‐e89c-­‐4a65-­‐a288-­‐98ad7accbdec:autoScalingGroupName/bdatum-­‐scaling:policyName/scale-­‐dn

Friday, November 29, 13

Page 16: Auto Scaling AWS

#  mon-­‐put-­‐metric-­‐alarm  -­‐-­‐alarm-­‐name  sample-­‐scale-­‐up  \   -­‐-­‐alarm-­‐description  "Scale  up  at  80%  load"  \   -­‐-­‐metric-­‐name  CPUUtilization  -­‐-­‐namespace  AWS/EC2  \   -­‐-­‐statistic  Average  -­‐-­‐period  60  -­‐-­‐threshold  80  \   -­‐-­‐comparison-­‐operator  GreaterThanThreshold  \   -­‐-­‐dimensions  InstanceId=i-­‐37b12752  -­‐-­‐evaluation-­‐periods  3  \   -­‐-­‐unit  Percent  -­‐-­‐alarm-­‐actions

OK-­‐Created  Alarm

Friday, November 29, 13

Page 17: Auto Scaling AWS

#  mon-­‐put-­‐metric-­‐alarm  -­‐-­‐alarm-­‐name  sample-­‐scale-­‐dn  \   -­‐-­‐alarm-­‐description  "Scale  down  at  20%  load"  \   -­‐-­‐metric-­‐name  CPUUtilization  -­‐-­‐namespace  AWS/EC2  \   -­‐-­‐statistic  Average  -­‐-­‐period  60  -­‐-­‐threshold  20  \   -­‐-­‐comparison-­‐operator  LessThanThreshold  \   -­‐-­‐dimensions  InstanceId=i-­‐37b12752  -­‐-­‐evaluation-­‐periods  3  \   -­‐-­‐unit  Percent  -­‐-­‐alarm-­‐actions

OK-­‐Created  Alarm

Friday, November 29, 13

Page 18: Auto Scaling AWS

#  as-­‐describe-­‐scaling-­‐activities

ACTIVITY    1a823de6-­‐e5a8-­‐4a6c-­‐b8a2-­‐1abf4eb03f97    2013-­‐11-­‐25T18:08:28Z    bdatum-­‐scaling    Failed    Cannot  find  Load  Balancer  bdatum-­‐elb.  Validating  load  balancer  configuration  failed.

Friday, November 29, 13

Page 19: Auto Scaling AWS

Friday, November 29, 13

Page 20: Auto Scaling AWS

#  as-­‐describe-­‐scaling-­‐activities

ACTIVITY    949ac330-­‐17d3-­‐4ec5-­‐b98b-­‐810faf4b6067                                                bdatum-­‐scaling    PreInServiceACTIVITY    ff225cbe-­‐38e8-­‐43f7-­‐bb4a-­‐d2a350472776    2013-­‐11-­‐25T18:17:02Z    bdatum-­‐scaling    Successful

Friday, November 29, 13

Page 21: Auto Scaling AWS

Friday, November 29, 13

Page 22: Auto Scaling AWS

#  shutdown

#  siege  -­‐c25  -­‐t10M  host

Friday, November 29, 13

Page 23: Auto Scaling AWS

Friday, November 29, 13

Page 24: Auto Scaling AWS

Friday, November 29, 13

Page 25: Auto Scaling AWS

#  as-­‐describe-­‐auto-­‐scaling-­‐groups  bdatum-­‐scaling

AUTO-­‐SCALING-­‐GROUP    bdatum-­‐scaling    bdatum-­‐config    us-­‐east-­‐1d    bdatum-­‐elb    2    10    2    DefaultINSTANCE    i-­‐2cba484a    us-­‐east-­‐1d    InService    Healthy    bdatum-­‐configINSTANCE    i-­‐2934164c    us-­‐east-­‐1d    InService    Healthy    bdatum-­‐config

#  as-­‐delete-­‐auto-­‐scaling-­‐group  bdatum-­‐scaling  -­‐-­‐force-­‐delete

       Are  you  sure  you  want  to  delete  this  AutoScalingGroup?  [Ny]y

OK-­‐Deleted  AutoScalingGroup

Friday, November 29, 13

Page 26: Auto Scaling AWS

#  as-­‐describe-­‐launch-­‐configsLAUNCH-­‐CONFIG    bdatum-­‐config    ami-­‐43e0c12a    t1.micro

#  as-­‐delete-­‐launch-­‐config  bdatum-­‐config

       Are  you  sure  you  want  to  delete  this  launch  configuration?  [Ny]y

OK-­‐Deleted  launch  configuration

Friday, November 29, 13

Page 27: Auto Scaling AWS

Disclaimer

AWS cobra por hora.

Friday, November 29, 13

Page 28: Auto Scaling AWS

Disclaimer

Faça corretamente a desinstalação !

as-delete-auto-scaling-group <group> --force-deleteas-delete-launch-config <group>

Friday, November 29, 13

Page 29: Auto Scaling AWS

Disclaimer

• Neste exemplo a regra define uma condição particular de no mínimo 2 minutos.• CloudWatch é um conjunto de coleções de dados que monitora as estatisticas como

por exemplo a utilização de CPU. É um conjunto de protocolos, e em geral leva cerca de 60 segundos para agregar todas as informações.

• Autoscaling também leva outros 60 segundos.• Então temos o tempo de boot do servidor. Um servidor grande e complexo pode levar

alguns minutos para iniciar.• Finalmente, o load balancer precisa monitorar esse servidor por algum tempo antes que

ele se sinta confortável e seguro para direcionar os requests para a nova instancia.

Friday, November 29, 13