Introdução ao Auto Scaling

37
Introdução ao Auto-Scaling Hands-on: “Como utilizar o auto-scaling passo-a-passo” Eduardo Horai AWS Solutions Architect [email protected]

description

Deck de slides do webinar mão na massa sobre a funcionalidade de Auto-Scaling da Nuvem da AWS. Vídeo do webinar disponível em http://vimeo.com/55379828

Transcript of Introdução ao Auto Scaling

Page 1: Introdução ao Auto Scaling

Introdução ao Auto-Scaling Hands-on:

“Como utilizar o auto-scaling passo-a-passo”

Eduardo Horai AWS Solutions Architect [email protected]

Page 2: Introdução ao Auto Scaling

Amazon  Cloud  Sessions  -­‐  Dezembro  

07/12  @  2PMVisão  Geral  dos  serviços  da  Nuvem  da  AWS  e  como  es6mar  sua  conta  |  Parte  1    18/12  @  3PM  Visão  Geral  dos  serviços  da  Nuvem  da  AWS  e  como  es6mar  sua  conta  |  Parte  2  

11/12  @  2PM  Introdução  ao  Auto-­‐Scaling  |  Hands-­‐on:  “Como  u6lizar  o  auto-­‐scaling  passo-­‐a-­‐passo”      20/12  @  2PM  –  Introdução  AWS  Elas6c  Beanstalk  |  Hands-­‐on:  “Implantação  fácil  e  rápida  da  sua  aplicação  web”  

Page 3: Introdução ao Auto Scaling

Agenda  Auto-­‐Scaling  

Regiões  e  Zonas  de  disponibilidade    Auto-­‐Scaling    Serviços  relacionados    Instalando  e  uIlizando  as  linhas  de  comando    GaranIndo  disponibilidade  com  Auto-­‐Scaling    Escalando  automaIcamente  com  Auto-­‐Scaling    Perguntas  e  respostas  

Page 4: Introdução ao Auto Scaling

Regiões

Page 5: Introdução ao Auto Scaling

Compute   Storage  

AWS  Global  Infrastructure  

Database  

App  Services  

Deployment  &  AdministraIon  

Networking  

Infraestrutura Global

Regiões Um conjunto isolado de data centers em uma determinada geografia

Page 6: Introdução ao Auto Scaling

Compute   Storage  

AWS  Global  Infrastructure  

Database  

App  Services  

Deployment  &  AdministraIon  

Networking  

Infraestrutura Global

Zonas de Disponibilidade Projetadas para serem independentes. Separadas fisicamente, porém com conectividade rápida dentro da mesma região

Page 7: Introdução ao Auto Scaling

Auto-Scaling

Page 8: Introdução ao Auto Scaling

Compute   Storage  

AWS  Global  Infrastructure  

Database  

App  Services  

Deployment  &  AdministraIon  

Networking  

Compute

Recurso   Detalhes  

Controle   Define  tamanhos  máximo  e  mínimo  e  parâmetros  para  aumento  e  diminuição  

Integrado  ao  CloudWatch  

Usa  métricas  do  CloudWatch  para  gerenciar  a  escalabilidade  

Integrado  ao  ELB  

Permite  distribuir  carga  automaIcamente  

Disponível   Instâncias  em  múlIplas  zonas  de  disponibilidade  

as-create-auto-scaling-group MyGroup --launch-configuration MyConfig --availability-zones sa-east-1a,sa-east-1b --min-size 4 --max-size 200

Auto-scaling Escala automaticamente as instâncias de acordo com métricas configuráveis

Alarme

Page 9: Introdução ao Auto Scaling

Capacidade Tradicional

Capacidade  ElásIca  

Capacidade

Tempo Suas necessidades de TI

Page 10: Introdução ao Auto Scaling

Capacidade  ElásIca  

Liga  e  Desliga   Crescimento  Rápido  

Picos  Previsíveis  Picos  Variáveis  

Desperdício

Cliente Insatisfeito

Page 11: Introdução ao Auto Scaling

Capacidade  ElásIca  

Crescimento  Rápido  Liga  e  Desliga  

Picos  Previsíveis  Picos  Variáveis  

Page 12: Introdução ao Auto Scaling

Serviços relacionados

Page 13: Introdução ao Auto Scaling

Compute   Storage  

AWS  Global  Infrastructure  

Database  

App  Services  

Deployment  &  AdministraIon  

Networking  

Compute

Várias Opções A partir de $0,02/hora

Elastic Compute Cloud (EC2) Servidores com recursos computacionais 15 tipos de instâncias(servidores) disponíveis, de micro a cluster compute Configurações de CPU, memória disco local

Recurso   Detalhes  

Flexível   Linux  e  Windows  

Escalável   Várias  configurações  de  servidor  

Imagens   Modificações  podem  ser  salvas  como  imagens  (AMIs)  e  novas  instancias  criadas  a  parIr  destas  

Controle  total   Controle  de  root  e  administrador  

Segura   Controle  total  do  Firewall  via  Security  Groups  

Barata   On-­‐demand,  Reservada  e  Spot  

Page 14: Introdução ao Auto Scaling

Compute   Storage  

AWS  Global  Infrastructure  

Database  

App  Services  

Deployment  &  AdministraIon  

Networking  

Compute

Elastic Load Balancing Permite criar aplicações escaláveis Distribui carga entre instancias EC2 em múltiplas zonas de disponibilidade

Recurso   Detalhes  

Auto-­‐scaling   Escalabilidade  automáIca  pode  ser  configurada  

Disponível   Balanceamento  de  carga  em  múlIplas  zonas  de  disp.  

Verificações  de  Saúde  

Verifica  automaIcamente  saúde  das  instancias  e  Ira  as  inoperantes  do  serviço  

Controle  de  Sessão  

Uso  de  sIcky  sessions  é  configurável  

Page 15: Introdução ao Auto Scaling

Compute   Storage  

AWS  Global  Infrastructure  

Database  

App  Services  

Deployment  &  AdministraIon  

Networking  

Monitoring

CloudWatch Ferramenta de monitoramento de recursos AWS como EC2, RDS e outros serviços. Possui métricas padrões e permite métricas customizadas.

Recurso   Detalhes  

Integrado   Funciona  com  diversos  serviços  AWS  como  EC2,  RDS,  Auto-­‐Scaling,  DynamoDB,  etc  

Customizável   Permite  criação  de  métricas  próprias  

Alerta   Permite  configuração  de  alarmes  

Acesso  fácil   Via  console  com  gráficos  ou  API  

Page 16: Introdução ao Auto Scaling

Ferramentas

Page 17: Introdução ao Auto Scaling

SDKs  do  Auto-­‐Scaling  para  as  principais  linguagens  Linguagens e Bibliotecas

REST  SOAP  

Linha  de  comando  (CLI)  

ElasIc  Wolf  hhp://www.elasIcwolf.com/  

Nejlix  Asgard  hhps://github.com/Nejlix/asgard  

Page 18: Introdução ao Auto Scaling

Instalando linhas de comando

Page 19: Introdução ao Auto Scaling

Links  para  instalação  

[1]  Ferramentas  de  desenvolvimento:  hhp://aws.amazon.com/developertools    [2]  Auto  Scaling  Command  Line  Tool    [3]  Amazon  CloudWatch  Command  Line  Tool    [4]  Guia  de  instalação:  hhp://docs.amazonwebservices.com/AutoScaling/latest/DeveloperGuide/astools.html#UsingTheCommandLineTools          

Page 20: Introdução ao Auto Scaling

Instalação  1.  Download  das  ferramentas  2.  Configurar  variáveis  de  ambientes      

   3.  AuthenIcação  

4.  Testar      

JAVA_HOME=/Library/Java/Home/ AWS_AUTO_SCALING_HOME=/tools/AutoScaling-1.0.61.2 PATH=$PATH:$AWS_AUTO_SCALING_HOME/bin AWS_AUTO_SCALING_URL=https://autoscaling.sa-east-1.amazonaws.com AWS_CLOUDWATCH_HOME=/tools/CloudWatch-1.0.13.4 PATH=$PATH:$AWS_CLOUDWATCH_HOME/bin AWS_CREDENTIAL_FILE=/keys/access_keys.cred

cat /keys/access_keys.cred AWSAccessKeyId=AAAAA64BBBBBCCCCDDD AWSSecretKey=XXXXXXXkkkkkkKkkkkkkKkkkkKKKkkkkKKkkkk

>> as-cmd >> mon-cmd

Page 21: Introdução ao Auto Scaling

Utilizando linhas de comando

Page 22: Introdução ao Auto Scaling

UIlizando  

as-create-launch-config <lc-name> --image-id <imageid> --instance-type <instance-type>

as-create-auto-scaling-group <name> --availability-zones <zones,> --launch-configuration <lc-name> --max-size <max> --min-size <min> --desired-capacity <desired> --load-balancers <elb>

Page 23: Introdução ao Auto Scaling

UIlizando  

as-create-auto-scaling-group GroupWebinar --availability-zones sa-east-1a,sa-east-1b --launch-configuration LcWebinar --max-size 6 --min-size 1 --desired-capacity 1 --load-balancers ElbWebinar

as-describe-auto-scaling-groups --headers

as-create-launch-config LcWebinar --image-id ami-4ecf1753 --instance-type m1.small --key ehoraisp

as-describe-launch-configs --headers

Page 24: Introdução ao Auto Scaling

Garantindo Disponibilidade

Page 25: Introdução ao Auto Scaling

Disponibilidade  

E  se  um  servidor  morrer....  

as-create-auto-scaling-group GroupWebinar --availability-zones sa-east-1a,sa-east-1b --launch-configuration LcWebinar --max-size 6 --min-size 1 --desired-capacity 1 --load-balancers ElbWebinar

Page 26: Introdução ao Auto Scaling

Escalando Automaticamente

Page 27: Introdução ao Auto Scaling

Escalando  

1.  Eventos  2.  Monitoramento  (CloudWatch)  3.  Triggers    

a.  Horário  b.  Manual  c.  Métricas  

4.  PolíIcas  de  escalonamento  a.  Adicionar/Remover  capacidade  b.  Capacidade  exata  c.  Percentual  

Page 28: Introdução ao Auto Scaling

Scaling  UP  

as-put-scaling-policy add-two-policy --type ChangeInCapacity --auto-scaling-group GroupWebinar --adjustment=2

mon-put-metric-alarm MyHighCPUAlarm --comparison-operator GreaterThanThreshold --evaluation-periods 1 --metric-name CPUUtilization --namespace "AWS/EC2" --period 120 --statistic Average --threshold 60 --alarm-actions policy-arn --dimensions "AutoScalingGroupName=GroupWebinar " --region sa-east-1

Polí6ca  de  adicionar  dois  servidores  

Trigger:  acima  de  60%  de  CPU  médio,  executar  polí6ca  

Page 29: Introdução ao Auto Scaling

Scaling  DOWN  

as-put-scaling-policy remove-one-policy --type ChangeInCapacity --auto-scaling-group GroupWebinar --adjustment=-1

mon-put-metric-alarm MyLowCPUAlarm --comparison-operator LessThanThreshold --evaluation-periods 1 --metric-name CPUUtilization --namespace "AWS/EC2" --period 60 --statistic Average --threshold 20 --alarm-actions policy-arn --dimensions "AutoScalingGroupName=GroupWebinar" --region sa-east-1

Polí6ca  de  remover  um  servidor  

Trigger:  abaixo  de  20%  de  CPU  médio,  executar  polí6ca  

as-describe-policies --headers mon-describe-alarms --region sa-east-1

Page 30: Introdução ao Auto Scaling

Simulando

Page 31: Introdução ao Auto Scaling

Simulando  

as-describe-scaling-activities --show-long

bc 2^12222222

Simulando  u6lização  de  CPU  

Simulando  baixa  de  CPU  

ps –ef | grep bc kill -9 <pid>

Page 32: Introdução ao Auto Scaling

Documentação

Page 33: Introdução ao Auto Scaling

Links  

[1]  Auto-­‐Scaling  -­‐  Guia  do  desenvolvedor  hhp://docs.amazonwebservices.com/AutoScaling/latest/DeveloperGuide/Welcome.html  

 [2]  Auto-­‐Scaling  –  Cartão  de  referência  (API)  hhp://awsdocs.s3.amazonaws.com/AutoScaling/latest/as-­‐qrc.pdf  

 [3]  Auto-­‐Scaling  –  UIlizando  (cenários)  hhp://docs.amazonwebservices.com/AutoScaling/latest/DeveloperGuide/ProgrammingGuide.html  

 [4]  CloudWatch  –  Guia  do  desenvolvedor  hhp://docs.amazonwebservices.com/AmazonCloudWatch/latest/DeveloperGuide/Welcome.html  

 [5]  CloudWatch  –  Cartão  de  referência  (API)  hhp://awsdocs.s3.amazonaws.com/AmazonCloudWatch/latest/acw-­‐qrc.pdf  

       

Page 34: Introdução ao Auto Scaling

Perguntas e respostas

Page 35: Introdução ao Auto Scaling

OFERTA GRATUITA!

aws.amazon.com/pt/free

Page 36: Introdução ao Auto Scaling

Documentações  em  Português  

E-book gratuito em português com passo a passo para criar e configurar um servidor na Amazon Guia de Conceitos básicos da oferta gratuita da AWS Guia de Conceitos básicos do EC2 Guia de Conceitos básicos do S3 Guia de Conceitos básicos do RDS Guia de Conceitos básicos do VPC

Page 37: Introdução ao Auto Scaling

OBRIGADO! http://aws.typepad.com/brasil

http://slideshare.net/AmazonWebServicesLATAM

Eduardo Horai AWS Solutions Architect [email protected]