SlideShare ist ein Scribd-Unternehmen logo
1 von 42
Downloaden Sie, um offline zu lesen
© 2016, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Rubens Devito Filho | Arquiteto de Soluções
Amazon EC2: Economize Utilizando
Instâncias Spot
Agenda
• Conceito de instâncias Spot
• Tipos de requisições de instâncias Spot
• Spot
• Spot Blocks
• Spot Fleet
• Escalando com instâncias Spot
• Quando usar Spot x Spot Blocks x Spot Fleet
O que é Amazon EC2 Spot
$1
• São instâncias EC2 que você pode aplicar uma oferta de preço. Como
instâncias Spot estão geralmente disponíveis a preços baixos, você pode
reduzir significamente os custos com Amazon EC2.
As Regras são Simples
Mercados onde o preço muda
baseado na oferta e procura
Você nunca pagará mais do que o
valor da sua oferta. Quando o preço
de mercado exceder o valor da sua
oferta, você recebe 2 minutos para
concluir suas tarefas
$0.27 $0.29$0.50
1b 1c1a
8XL
$0.30 $0.16$0.214XL
$0.07 $0.08$0.082XL
$0.05 $0.04$0.04XL
$0.01 $0.04$0.01L
C3
$1.76
On
Demand
$0.88
$0.44
$.22
$0.11
Cada família de instância
Cada tamanho de instância
Cada Zona de Disponibilidade
Em cada região
É um Spot Market separado
Quais são os mercados de Spot
Spot Bid Advisor
https://aws.amazon.com/ec2/spot/bid-advisor/
Exemplo
Vamos às contas
• m3.2xlarge em São Paulo = $0.761/hr
• $0.0853/hr = ~11%
• ~11% < t2.medium ($0.108/hr)
• Por 3 meses ou mais
• Ao invés de $1671.18 seu custo será de $184.24
• Redução de quase $1500!
Spot CLI
#Lança instâncias Spot
aws ec2 request-spot-instances --spot-price "0.0200" --instance-count 2 --
region us-west-2 --launch-specification file:///Users/user/Folder/spot.json
spot.json
{
"ImageId": "ami-f0091d91",
"KeyName": "EC2",
"SecurityGroupIds": [ "sg-c0c188a5" ],
"InstanceType": "m3.medium",
"Placement": {
"AvailabilityZone": "us-west-2c”
},
"SubnetId": "subnet-0694685f”
}
Determine o tipo e a validade da sua oferta
• Única ou persistente
• Se a oferta for persistente, uma nova requisição será
feita automaticamente após a instância ser terminada
• Possibilidade de configurar o prazo da sua oferta
Use instâncias Spot para escalar
1. Crie um Auto Scaling só de Spot
2. Crie outro Auto Scaling com On-Demand
3. Ambos no mesmo Elastic Load Balancing
4. Configure métricas mais agressivas no Auto Scaling de
Spot e seja mais conservador no Auto Scaling de On-
Demand
5. Instâncias Spot serão lançadas primeiro e desligadas
por último
6. Instâncias On-Demand serão lançadas por último e
desligadas primeiro
Aplicação Web com Spot
Dados de
Sessão
Zona de Disponibilidade A
Zona de Disponibilidade B
ASG Spot
Elastic Load
Balancing
ASG On-
Demand
Use instâncias Spot para escalar
1. Crie um Auto Scaling só de Spot
a) Via Console, crie um Launch Configuration que faça a
requisição de Spot
b) Crie o Auto Scaling Group com esse Launch Configuration
Auto Scaling Spot CLI
#Cria Launch Configuration com Spot
aws autoscaling create-launch-configuration --launch-configuration-name LC_Spot --
image-id ami-d0f506b0 –-key-name EC2 --instance-type m3.medium --spot-price 0.0140 –-
region us-west-2
#Cria Auto Scaling com Spot
aws autoscaling create-auto-scaling-group --region us-west-2 --auto-scaling-group-name
ASG_Spot --launch-configuration-name LC_Spot --availability-zones "us-west-2a" "us-
west-2b" "us-west-2c" --max-size 4 --min-size 1 --desired-capacity 2 --vpc-zone-
identifier subnet-bbd906cc,subnet-569e2733,subnet-0694685f
Use instâncias Spot para escalar
2. Crie um Auto Scaling de On-Demand
a. Via Console, crie um Launch Configuration sem requisitar
Spot
b. Via CLI, utilize os mesmos comandos removendo apenas o
parâmetro --spot-price
c. Crie o Auto Scaling Group da mesma maneira que o Spot
Use instâncias Spot para escalar
3. Ambos no mesmo Elastic Load Balancing
a. Via Console, vá no Auto Scaling e edite o campo Load
Balancers
b. Via CLI, adicione o parâmetro --load-balancer-names
c. Faça isso para os dois Auto Scaling Groups
Auto Scaling Spot CLI
#Cria Auto Scaling anexado à um Load Balancer
aws autoscaling create-auto-scaling-group --region us-west-2 --auto-scaling-group-name
ASG_Spot --launch-configuration-name LC_Spot --availability-zones "us-west-2a" "us-
west-2b" "us-west-2c" --max-size 4 --min-size 1 --desired-capacity 2 --vpc-zone-
identifier subnet-bbd906cc,subnet-569e2733,subnet-0694685f --load-balancer-names MyELB
Use instâncias Spot para escalar
4. Configure métricas mais agressivas no Auto Scaling de
Spot e seja mais conservador no Auto Scaling de On-
Demand. Exemplo:
a) Se CPU >= 40% lance Spot
b) Se CPU >= 70% lance On-Demand
c) Se CPU <= 40% remova On-Demand
d) Se CPU <= 20% remova Spot
5. Instâncias Spot serão lançadas primeiro e desligadas
por último
6. Instâncias On-Demand serão lançadas por último e
desligadas primeiro
Fique atento com o alerta de 2 minutos
$ if curl -s http://169.254.169.254/latest/meta-
data/spot/termination-time | 
grep -q .*T.*Z; then instance_id=$(curl -s
http://169.254.169.254/latest/meta-data/instance-id); 
aws elb deregister-instances-from-load-balancer 
--load-balancer-name my-load-balancer 
--instances $instance_id; 
/env/bin/flushsessiontoDBonterminationscript.sh; fi
1) Verifica o alerta de 2
minutos
2) Se SIM, remove a
instâncias do ELB
3) Caso contrário, não faça
nada
4) Aguarda por 5 segundos
Spot Blocks
Amazon EC2 Spot Block
$1
Rode sem
interrupções por até
6 horas
Reduza até 50% do
preço On-Demand
Spot Block CLI
#Lança instâncias Spot
aws ec2 request-spot-instances --spot-price "0.0200" --instance-count 1 –-
block-duration-minutes 120 --region us-west-2 --launch-specification
file:///Users/user/Folder/spot.json
Spot Fleet
Amazon EC2 Spot Fleet
• Lance centenas de instâncias Spot com uma única chamada
RequestSpotFleet
• Lowest Price
• Encontre o melhor preço que funcione para você
• Diversified
• Diversifique sua frota. Amplie sua disponibilidade
• Custom Weighting
• Crie sua própria unidade de capacidade baseado nas necessidades da
sua aplicação
Flexibilidade do Spot Fleet
2. Entre famílias EC2
3. Entre AZs
1. Dentro da família EC2
Spot Fleet CLI
#Lança instâncias Spot
aws ec2 request-spot-fleet –-spot-fleet-request-config
file:///Users/user/Folder/spot_fleet.json
spot_fleet.json
{
"SpotPrice": "0.04",
"TargetCapacity": 3,
"IamFleetRole": "arn:aws:iam::109434434086:role/aws-ec2-spot-fleet-role",
"LaunchSpecifications": [
{
"ImageId": "ami-f0091d91",
"KeyName": "EC2",
"SecurityGroups": [
{
"GroupId": "sg-c0c188a5”
}
],
"InstanceType": "c3.large",
"Placement": {
"AvailabilityZone": "us-west-2c"
},
"SubnetId": "subnet-0694685f",
"IamInstanceProfile": {
"Arn": "arn:aws:iam::109434434086:role/aws-ec2-spot-fleet-role”
}
},
{
"ImageId": "ami-f0091d91",
"KeyName": "EC2",
"SecurityGroups": [
{
"GroupId": "sg-c0c188a5"
}
],
"InstanceType": "m3.medium",
"Placement": {
"AvailabilityZone": "us-west-2b”
},
"SubnetId": "subnet-569e2733",
"IamInstanceProfile": {
"Arn": "arn:aws:iam::109434434086:role/aws-ec2-spot-fleet-role”
}
}
]
}
Spot Fleet
Dependendo da quantidade e variação do seu Spot Fleet,
utilizar o CLI pode ser complicado.
Dica:
Aplicação Web sem Estado (Stateless)
Elastic Load
Balancing
Stateless
Web Servers
(Spot)
Stateless
Web Servers
(Spot)
Dados de
Sessão
Spot fleet
Zona de Disponibilidade A
Stateless
Web Servers
(Spot)
Stateless
Web Servers
(Spot)
Zona de Disponibilidade B
Cenário
Spot Fleet mantém a Capacidade Desejada
Escale seu Spot Fleet
Elastic Load
Balancing
Stateless
Web Servers
(Spot)
Stateless
Web Servers
(Spot)
Zona de Disponibilidade A
Zona de Disponibilidade B
Stateless
Web Servers
(Spot)
Stateless
Web Servers
(Spot)
Alarme
Amazon
CloudWatch
Contagem de
Requisições
AWS
Lambda
ModifySpotFleetRequest API
“A flexibilidade que a AWS oferece para adequar nosso
ambiente à variação de audiência, aliada a performance,
robsutez e segurança são os pilares onde nos apoiamos
para desenvolver nossa parceria com a AWS.”
 O ZAP tem sede em São Paulo, conta
com 400 funcionários e possui 25
escritórios regionais distribuídos pelo
Brasil. Nossos principais polos de
tecnologia estão localizados em São
Paulo, Porto Alegre e Maringá.
 Oferecemos as ferramentas de
buscas com os mais adequados filtros
de pesquisa através de website ou por
meio de um moderno aplicativo para
celulares e tablets das plataformas
Android e iOS, com mais de 14
milhões de visitas/mês.
“Redução de
custos é chave para
o momento sócio
econômico que estamos
atravessando no Brasil e
a AWS tem o suporte
tecnológico ideal para
nos ajudar a atingir esta
meta.”
- Eduardo Perez, CTO
Desafio
 Otimização de Uso / Custo
 Volatilidade Cambial
 Automatização + DevOps
 Escalabilidade + HA
Ambiente ZAP
Economia para instâncias Linux
63.50%
95.70% 95.50%
c3.8xlarge c3.xlarge m3.xlarge
Economia para instâncias Windows
78.50%
85.30%
c3.xlarge m3.large
Requisitos para usar Spot
• Não persista nada na instância Spot
• Para sessões, Amazon ElastiCache ou Amazon DynamoDB
• Para logs, Amazon S3
• …
• Use para aplicações escaláveis e automatizadas
• Evite para aplicações monolíticas caso ela seja crítica
Qual tipo de Spot devo usar?
• Spot
• Escalar (integrado com Auto Scaling)
• Processamento em batch com tempo indeterminado
• Task Nodes do EMR
• Ambientes de DEV e Homologação, instância de CI
• Workers em geral
• Spot Blocks
• Qualquer job que tem limite de até 6 horas para ser executado
• Processamento em batch
• HDFS de um cluster EMR
• Spot Fleet
• Aplicações Web estáveis usando Diversified em diferentes AZs
• Task Nodes do EMR
• Cluster de containers
Qual tipo de Spot devo usar?
• Na dúvida, use Spot Fleet
Obrigado!

Weitere ähnliche Inhalte

Mehr von Amazon Web Services LATAM

Automatize seu processo de entrega de software com CI/CD na AWS
Automatize seu processo de entrega de software com CI/CD na AWSAutomatize seu processo de entrega de software com CI/CD na AWS
Automatize seu processo de entrega de software com CI/CD na AWSAmazon Web Services LATAM
 
Ransomware: como recuperar os seus dados na nuvem AWS
Ransomware: como recuperar os seus dados na nuvem AWSRansomware: como recuperar os seus dados na nuvem AWS
Ransomware: como recuperar os seus dados na nuvem AWSAmazon Web Services LATAM
 
Ransomware: cómo recuperar sus datos en la nube de AWS
Ransomware: cómo recuperar sus datos en la nube de AWSRansomware: cómo recuperar sus datos en la nube de AWS
Ransomware: cómo recuperar sus datos en la nube de AWSAmazon Web Services LATAM
 
Aprenda a migrar y transferir datos al usar la nube de AWS
Aprenda a migrar y transferir datos al usar la nube de AWSAprenda a migrar y transferir datos al usar la nube de AWS
Aprenda a migrar y transferir datos al usar la nube de AWSAmazon Web Services LATAM
 
Aprenda como migrar e transferir dados ao utilizar a nuvem da AWS
Aprenda como migrar e transferir dados ao utilizar a nuvem da AWSAprenda como migrar e transferir dados ao utilizar a nuvem da AWS
Aprenda como migrar e transferir dados ao utilizar a nuvem da AWSAmazon Web Services LATAM
 
Cómo mover a un almacenamiento de archivos administrados
Cómo mover a un almacenamiento de archivos administradosCómo mover a un almacenamiento de archivos administrados
Cómo mover a un almacenamiento de archivos administradosAmazon Web Services LATAM
 
Os benefícios de migrar seus workloads de Big Data para a AWS
Os benefícios de migrar seus workloads de Big Data para a AWSOs benefícios de migrar seus workloads de Big Data para a AWS
Os benefícios de migrar seus workloads de Big Data para a AWSAmazon Web Services LATAM
 
Los beneficios de migrar sus cargas de trabajo de big data a AWS
Los beneficios de migrar sus cargas de trabajo de big data a AWSLos beneficios de migrar sus cargas de trabajo de big data a AWS
Los beneficios de migrar sus cargas de trabajo de big data a AWSAmazon Web Services LATAM
 
AWS Webinar Series Latinoamérica: Cómo salir de su datacenter y modernizar la...
AWS Webinar Series Latinoamérica: Cómo salir de su datacenter y modernizar la...AWS Webinar Series Latinoamérica: Cómo salir de su datacenter y modernizar la...
AWS Webinar Series Latinoamérica: Cómo salir de su datacenter y modernizar la...Amazon Web Services LATAM
 
AWS Webinar Series Brasil: Como sair de seu datacenter e modernizar cargas de...
AWS Webinar Series Brasil: Como sair de seu datacenter e modernizar cargas de...AWS Webinar Series Brasil: Como sair de seu datacenter e modernizar cargas de...
AWS Webinar Series Brasil: Como sair de seu datacenter e modernizar cargas de...Amazon Web Services LATAM
 

Mehr von Amazon Web Services LATAM (20)

Automatize seu processo de entrega de software com CI/CD na AWS
Automatize seu processo de entrega de software com CI/CD na AWSAutomatize seu processo de entrega de software com CI/CD na AWS
Automatize seu processo de entrega de software com CI/CD na AWS
 
Cómo empezar con Amazon EKS
Cómo empezar con Amazon EKSCómo empezar con Amazon EKS
Cómo empezar con Amazon EKS
 
Como começar com Amazon EKS
Como começar com Amazon EKSComo começar com Amazon EKS
Como começar com Amazon EKS
 
Ransomware: como recuperar os seus dados na nuvem AWS
Ransomware: como recuperar os seus dados na nuvem AWSRansomware: como recuperar os seus dados na nuvem AWS
Ransomware: como recuperar os seus dados na nuvem AWS
 
Ransomware: cómo recuperar sus datos en la nube de AWS
Ransomware: cómo recuperar sus datos en la nube de AWSRansomware: cómo recuperar sus datos en la nube de AWS
Ransomware: cómo recuperar sus datos en la nube de AWS
 
Ransomware: Estratégias de Mitigação
Ransomware: Estratégias de MitigaçãoRansomware: Estratégias de Mitigação
Ransomware: Estratégias de Mitigação
 
Ransomware: Estratégias de Mitigación
Ransomware: Estratégias de MitigaciónRansomware: Estratégias de Mitigación
Ransomware: Estratégias de Mitigación
 
Aprenda a migrar y transferir datos al usar la nube de AWS
Aprenda a migrar y transferir datos al usar la nube de AWSAprenda a migrar y transferir datos al usar la nube de AWS
Aprenda a migrar y transferir datos al usar la nube de AWS
 
Aprenda como migrar e transferir dados ao utilizar a nuvem da AWS
Aprenda como migrar e transferir dados ao utilizar a nuvem da AWSAprenda como migrar e transferir dados ao utilizar a nuvem da AWS
Aprenda como migrar e transferir dados ao utilizar a nuvem da AWS
 
Cómo mover a un almacenamiento de archivos administrados
Cómo mover a un almacenamiento de archivos administradosCómo mover a un almacenamiento de archivos administrados
Cómo mover a un almacenamiento de archivos administrados
 
Simplifique su BI con AWS
Simplifique su BI con AWSSimplifique su BI con AWS
Simplifique su BI con AWS
 
Simplifique o seu BI com a AWS
Simplifique o seu BI com a AWSSimplifique o seu BI com a AWS
Simplifique o seu BI com a AWS
 
Os benefícios de migrar seus workloads de Big Data para a AWS
Os benefícios de migrar seus workloads de Big Data para a AWSOs benefícios de migrar seus workloads de Big Data para a AWS
Os benefícios de migrar seus workloads de Big Data para a AWS
 
Los beneficios de migrar sus cargas de trabajo de big data a AWS
Los beneficios de migrar sus cargas de trabajo de big data a AWSLos beneficios de migrar sus cargas de trabajo de big data a AWS
Los beneficios de migrar sus cargas de trabajo de big data a AWS
 
Bases de datos NoSQL en AWS
Bases de datos NoSQL en AWSBases de datos NoSQL en AWS
Bases de datos NoSQL en AWS
 
Bancos de dados NoSQL na AWS
Bancos de dados NoSQL na AWSBancos de dados NoSQL na AWS
Bancos de dados NoSQL na AWS
 
Construyendo un data lake en la nube aws
Construyendo un data lake en la nube awsConstruyendo un data lake en la nube aws
Construyendo un data lake en la nube aws
 
Construindo um data lake na nuvem aws
Construindo um data lake na nuvem awsConstruindo um data lake na nuvem aws
Construindo um data lake na nuvem aws
 
AWS Webinar Series Latinoamérica: Cómo salir de su datacenter y modernizar la...
AWS Webinar Series Latinoamérica: Cómo salir de su datacenter y modernizar la...AWS Webinar Series Latinoamérica: Cómo salir de su datacenter y modernizar la...
AWS Webinar Series Latinoamérica: Cómo salir de su datacenter y modernizar la...
 
AWS Webinar Series Brasil: Como sair de seu datacenter e modernizar cargas de...
AWS Webinar Series Brasil: Como sair de seu datacenter e modernizar cargas de...AWS Webinar Series Brasil: Como sair de seu datacenter e modernizar cargas de...
AWS Webinar Series Brasil: Como sair de seu datacenter e modernizar cargas de...
 

Amazon EC2: Economize utilizando Instancias Spot

  • 1. © 2016, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Rubens Devito Filho | Arquiteto de Soluções Amazon EC2: Economize Utilizando Instâncias Spot
  • 2. Agenda • Conceito de instâncias Spot • Tipos de requisições de instâncias Spot • Spot • Spot Blocks • Spot Fleet • Escalando com instâncias Spot • Quando usar Spot x Spot Blocks x Spot Fleet
  • 3. O que é Amazon EC2 Spot $1 • São instâncias EC2 que você pode aplicar uma oferta de preço. Como instâncias Spot estão geralmente disponíveis a preços baixos, você pode reduzir significamente os custos com Amazon EC2.
  • 4. As Regras são Simples Mercados onde o preço muda baseado na oferta e procura Você nunca pagará mais do que o valor da sua oferta. Quando o preço de mercado exceder o valor da sua oferta, você recebe 2 minutos para concluir suas tarefas
  • 5. $0.27 $0.29$0.50 1b 1c1a 8XL $0.30 $0.16$0.214XL $0.07 $0.08$0.082XL $0.05 $0.04$0.04XL $0.01 $0.04$0.01L C3 $1.76 On Demand $0.88 $0.44 $.22 $0.11 Cada família de instância Cada tamanho de instância Cada Zona de Disponibilidade Em cada região É um Spot Market separado Quais são os mercados de Spot
  • 8. Vamos às contas • m3.2xlarge em São Paulo = $0.761/hr • $0.0853/hr = ~11% • ~11% < t2.medium ($0.108/hr) • Por 3 meses ou mais • Ao invés de $1671.18 seu custo será de $184.24 • Redução de quase $1500!
  • 9. Spot CLI #Lança instâncias Spot aws ec2 request-spot-instances --spot-price "0.0200" --instance-count 2 -- region us-west-2 --launch-specification file:///Users/user/Folder/spot.json
  • 10. spot.json { "ImageId": "ami-f0091d91", "KeyName": "EC2", "SecurityGroupIds": [ "sg-c0c188a5" ], "InstanceType": "m3.medium", "Placement": { "AvailabilityZone": "us-west-2c” }, "SubnetId": "subnet-0694685f” }
  • 11. Determine o tipo e a validade da sua oferta • Única ou persistente • Se a oferta for persistente, uma nova requisição será feita automaticamente após a instância ser terminada • Possibilidade de configurar o prazo da sua oferta
  • 12. Use instâncias Spot para escalar 1. Crie um Auto Scaling só de Spot 2. Crie outro Auto Scaling com On-Demand 3. Ambos no mesmo Elastic Load Balancing 4. Configure métricas mais agressivas no Auto Scaling de Spot e seja mais conservador no Auto Scaling de On- Demand 5. Instâncias Spot serão lançadas primeiro e desligadas por último 6. Instâncias On-Demand serão lançadas por último e desligadas primeiro
  • 13. Aplicação Web com Spot Dados de Sessão Zona de Disponibilidade A Zona de Disponibilidade B ASG Spot Elastic Load Balancing ASG On- Demand
  • 14. Use instâncias Spot para escalar 1. Crie um Auto Scaling só de Spot a) Via Console, crie um Launch Configuration que faça a requisição de Spot b) Crie o Auto Scaling Group com esse Launch Configuration
  • 15. Auto Scaling Spot CLI #Cria Launch Configuration com Spot aws autoscaling create-launch-configuration --launch-configuration-name LC_Spot -- image-id ami-d0f506b0 –-key-name EC2 --instance-type m3.medium --spot-price 0.0140 –- region us-west-2 #Cria Auto Scaling com Spot aws autoscaling create-auto-scaling-group --region us-west-2 --auto-scaling-group-name ASG_Spot --launch-configuration-name LC_Spot --availability-zones "us-west-2a" "us- west-2b" "us-west-2c" --max-size 4 --min-size 1 --desired-capacity 2 --vpc-zone- identifier subnet-bbd906cc,subnet-569e2733,subnet-0694685f
  • 16. Use instâncias Spot para escalar 2. Crie um Auto Scaling de On-Demand a. Via Console, crie um Launch Configuration sem requisitar Spot b. Via CLI, utilize os mesmos comandos removendo apenas o parâmetro --spot-price c. Crie o Auto Scaling Group da mesma maneira que o Spot
  • 17. Use instâncias Spot para escalar 3. Ambos no mesmo Elastic Load Balancing a. Via Console, vá no Auto Scaling e edite o campo Load Balancers b. Via CLI, adicione o parâmetro --load-balancer-names c. Faça isso para os dois Auto Scaling Groups
  • 18. Auto Scaling Spot CLI #Cria Auto Scaling anexado à um Load Balancer aws autoscaling create-auto-scaling-group --region us-west-2 --auto-scaling-group-name ASG_Spot --launch-configuration-name LC_Spot --availability-zones "us-west-2a" "us- west-2b" "us-west-2c" --max-size 4 --min-size 1 --desired-capacity 2 --vpc-zone- identifier subnet-bbd906cc,subnet-569e2733,subnet-0694685f --load-balancer-names MyELB
  • 19. Use instâncias Spot para escalar 4. Configure métricas mais agressivas no Auto Scaling de Spot e seja mais conservador no Auto Scaling de On- Demand. Exemplo: a) Se CPU >= 40% lance Spot b) Se CPU >= 70% lance On-Demand c) Se CPU <= 40% remova On-Demand d) Se CPU <= 20% remova Spot 5. Instâncias Spot serão lançadas primeiro e desligadas por último 6. Instâncias On-Demand serão lançadas por último e desligadas primeiro
  • 20. Fique atento com o alerta de 2 minutos $ if curl -s http://169.254.169.254/latest/meta- data/spot/termination-time | grep -q .*T.*Z; then instance_id=$(curl -s http://169.254.169.254/latest/meta-data/instance-id); aws elb deregister-instances-from-load-balancer --load-balancer-name my-load-balancer --instances $instance_id; /env/bin/flushsessiontoDBonterminationscript.sh; fi 1) Verifica o alerta de 2 minutos 2) Se SIM, remove a instâncias do ELB 3) Caso contrário, não faça nada 4) Aguarda por 5 segundos
  • 22. Amazon EC2 Spot Block $1 Rode sem interrupções por até 6 horas Reduza até 50% do preço On-Demand
  • 23. Spot Block CLI #Lança instâncias Spot aws ec2 request-spot-instances --spot-price "0.0200" --instance-count 1 –- block-duration-minutes 120 --region us-west-2 --launch-specification file:///Users/user/Folder/spot.json
  • 25. Amazon EC2 Spot Fleet • Lance centenas de instâncias Spot com uma única chamada RequestSpotFleet • Lowest Price • Encontre o melhor preço que funcione para você • Diversified • Diversifique sua frota. Amplie sua disponibilidade • Custom Weighting • Crie sua própria unidade de capacidade baseado nas necessidades da sua aplicação
  • 26. Flexibilidade do Spot Fleet 2. Entre famílias EC2 3. Entre AZs 1. Dentro da família EC2
  • 27. Spot Fleet CLI #Lança instâncias Spot aws ec2 request-spot-fleet –-spot-fleet-request-config file:///Users/user/Folder/spot_fleet.json
  • 28. spot_fleet.json { "SpotPrice": "0.04", "TargetCapacity": 3, "IamFleetRole": "arn:aws:iam::109434434086:role/aws-ec2-spot-fleet-role", "LaunchSpecifications": [ { "ImageId": "ami-f0091d91", "KeyName": "EC2", "SecurityGroups": [ { "GroupId": "sg-c0c188a5” } ], "InstanceType": "c3.large", "Placement": { "AvailabilityZone": "us-west-2c" }, "SubnetId": "subnet-0694685f", "IamInstanceProfile": { "Arn": "arn:aws:iam::109434434086:role/aws-ec2-spot-fleet-role” } }, { "ImageId": "ami-f0091d91", "KeyName": "EC2", "SecurityGroups": [ { "GroupId": "sg-c0c188a5" } ], "InstanceType": "m3.medium", "Placement": { "AvailabilityZone": "us-west-2b” }, "SubnetId": "subnet-569e2733", "IamInstanceProfile": { "Arn": "arn:aws:iam::109434434086:role/aws-ec2-spot-fleet-role” } } ] }
  • 29. Spot Fleet Dependendo da quantidade e variação do seu Spot Fleet, utilizar o CLI pode ser complicado. Dica:
  • 30. Aplicação Web sem Estado (Stateless) Elastic Load Balancing Stateless Web Servers (Spot) Stateless Web Servers (Spot) Dados de Sessão Spot fleet Zona de Disponibilidade A Stateless Web Servers (Spot) Stateless Web Servers (Spot) Zona de Disponibilidade B
  • 32. Spot Fleet mantém a Capacidade Desejada
  • 33. Escale seu Spot Fleet Elastic Load Balancing Stateless Web Servers (Spot) Stateless Web Servers (Spot) Zona de Disponibilidade A Zona de Disponibilidade B Stateless Web Servers (Spot) Stateless Web Servers (Spot) Alarme Amazon CloudWatch Contagem de Requisições AWS Lambda ModifySpotFleetRequest API
  • 34. “A flexibilidade que a AWS oferece para adequar nosso ambiente à variação de audiência, aliada a performance, robsutez e segurança são os pilares onde nos apoiamos para desenvolver nossa parceria com a AWS.”  O ZAP tem sede em São Paulo, conta com 400 funcionários e possui 25 escritórios regionais distribuídos pelo Brasil. Nossos principais polos de tecnologia estão localizados em São Paulo, Porto Alegre e Maringá.  Oferecemos as ferramentas de buscas com os mais adequados filtros de pesquisa através de website ou por meio de um moderno aplicativo para celulares e tablets das plataformas Android e iOS, com mais de 14 milhões de visitas/mês. “Redução de custos é chave para o momento sócio econômico que estamos atravessando no Brasil e a AWS tem o suporte tecnológico ideal para nos ajudar a atingir esta meta.” - Eduardo Perez, CTO
  • 35. Desafio  Otimização de Uso / Custo  Volatilidade Cambial  Automatização + DevOps  Escalabilidade + HA
  • 37. Economia para instâncias Linux 63.50% 95.70% 95.50% c3.8xlarge c3.xlarge m3.xlarge
  • 38. Economia para instâncias Windows 78.50% 85.30% c3.xlarge m3.large
  • 39. Requisitos para usar Spot • Não persista nada na instância Spot • Para sessões, Amazon ElastiCache ou Amazon DynamoDB • Para logs, Amazon S3 • … • Use para aplicações escaláveis e automatizadas • Evite para aplicações monolíticas caso ela seja crítica
  • 40. Qual tipo de Spot devo usar? • Spot • Escalar (integrado com Auto Scaling) • Processamento em batch com tempo indeterminado • Task Nodes do EMR • Ambientes de DEV e Homologação, instância de CI • Workers em geral • Spot Blocks • Qualquer job que tem limite de até 6 horas para ser executado • Processamento em batch • HDFS de um cluster EMR • Spot Fleet • Aplicações Web estáveis usando Diversified em diferentes AZs • Task Nodes do EMR • Cluster de containers
  • 41. Qual tipo de Spot devo usar? • Na dúvida, use Spot Fleet