Introdução ao Auto Scaling

AmazonWebServicesLATAM 1,374 views 37 slides Dec 11, 2012
Slide 1
Slide 1 of 37
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24
Slide 25
25
Slide 26
26
Slide 27
27
Slide 28
28
Slide 29
29
Slide 30
30
Slide 31
31
Slide 32
32
Slide 33
33
Slide 34
34
Slide 35
35
Slide 36
36
Slide 37
37

About This Presentation

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


Slide Content

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

Amazon'Cloud'Sessions'0'Dezembro'
07/12'@'2PM
Visã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”'

Agenda'Auto0Scaling'
Regiões'e'Zonas'de'disponibilidade'
'
Auto0Scaling'
'
Serviços'relacionados'
'
Instalando'e'uIlizando'as'linhas'de'comando'
'
GaranIndo'disponibilidade'com'Auto0Scaling'
'
Escalando'automaIcamente'com'Auto0Scaling'
'
Perguntas'e'respostas'

Regiões

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

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

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

Capacidade
Tradicional
Capacidade'ElásIca'
Capacidade
Tempo
Suas necessidades de TI

Capacidade'ElásIca'
Liga'e'Desliga' Crescimento'Rápido'
Picos'Previsíveis'Picos'Variáveis'
Desperdício
Cliente Insatisfeito

Capacidade'ElásIca'
Crescimento'Rápido'Liga'e'Desliga'
Picos'Previsíveis'Picos'Variáveis'

Serviços relacionados

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&On0demand,'Reservada'e'Spot'

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'

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,'Auto0
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'

Ferramentas

SDKs'do'Auto0Scaling'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'

Instalando
linhas de comando

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'
'
''
'

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

Utilizando
linhas de comando

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>

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

Garantindo
Disponibilidade

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

Escalando
Automaticamente

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'

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&

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

Simulando

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>

Documentação

Links'
[1]'Auto0Scaling'0'Guia'do'desenvolvedor'
hhp://docs.amazonwebservices.com/AutoScaling/latest/DeveloperGuide/Welcome.html'
'
[2]'Auto0Scaling'–'Cartão'de'referência'(API)'
hhp://awsdocs.s3.amazonaws.com/AutoScaling/latest/as0qrc.pdf'
'
[3]'Auto0Scaling'–'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/acw0qrc.pdf'
'
''
'

Perguntas
e respostas

OFERTA
GRATUITA!
aws.amazon.com/pt/free

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

OBRIGADO!
http://aws.typepad.com/brasil
http://slideshare.net/AmazonWebServicesLATAM
Eduardo Horai
AWS Solutions Architect
[email protected]