O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.
© 2016, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Rubens Devito Filho | Arquiteto de Soluções
Amaz...
Agenda
• Conceito de instâncias Spot
• Tipos de requisições de instâncias Spot
• Spot
• Spot Blocks
• Spot Fleet
• Escalan...
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 gera...
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 ...
$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
Dema...
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 ...
Spot CLI
#Lança instâncias Spot
aws ec2 request-spot-instances --spot-price "0.0200" --instance-count 2 --
region us-west-...
spot.json
{
"ImageId": "ami-f0091d91",
"KeyName": "EC2",
"SecurityGroupIds": [ "sg-c0c188a5" ],
"InstanceType": "m3.medium...
Determine o tipo e a validade da sua oferta
• Única ou persistente
• Se a oferta for persistente, uma nova requisição será...
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 m...
Aplicação Web com Spot
Dados de
Sessão
Zona de Disponibilidade A
Zona de Disponibilidade B
ASG Spot
Elastic Load
Balancing...
Use instâncias Spot para escalar
1. Crie um Auto Scaling só de Spot
a) Via Console, crie um Launch Configuration que faça ...
Auto Scaling Spot CLI
#Cria Launch Configuration com Spot
aws autoscaling create-launch-configuration --launch-configurati...
Use instâncias Spot para escalar
2. Crie um Auto Scaling de On-Demand
a. Via Console, crie um Launch Configuration sem req...
Use instâncias Spot para escalar
3. Ambos no mesmo Elastic Load Balancing
a. Via Console, vá no Auto Scaling e edite o cam...
Auto Scaling Spot CLI
#Cria Auto Scaling anexado à um Load Balancer
aws autoscaling create-auto-scaling-group --region us-...
Use instâncias Spot para escalar
4. Configure métricas mais agressivas no Auto Scaling de
Spot e seja mais conservador no ...
Fique atento com o alerta de 2 minutos
$ if curl -s http://169.254.169.254/latest/meta-
data/spot/termination-time | 
grep...
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-dur...
Spot Fleet
Amazon EC2 Spot Fleet
• Lance centenas de instâncias Spot com uma única chamada
RequestSpotFleet
• Lowest Price
• Encontre...
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/spo...
spot_fleet.json
{
"SpotPrice": "0.04",
"TargetCapacity": 3,
"IamFleetRole": "arn:aws:iam::109434434086:role/aws-ec2-spot-f...
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)
Dado...
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 Disponibili...
“A flexibilidade que a AWS oferece para adequar nosso
ambiente à variação de audiência, aliada a performance,
robsutez e s...
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
• Pa...
Qual tipo de Spot devo usar?
• Spot
• Escalar (integrado com Auto Scaling)
• Processamento em batch com tempo indeterminad...
Qual tipo de Spot devo usar?
• Na dúvida, use Spot Fleet
Obrigado!
Próximos SlideShares
Carregando em…5
×

Amazon EC2: Economize utilizando Instancias Spot

2.517 visualizações

Publicada em

O Amazon EC2 permite que você obtenha capacidade computacional de uma forma econômica usando instâncias spot. Este recurso permite uma redução de até 90% no custo em relação ao valor on demand. Nesta sessão, os participantes aprenderão as boas práticas deste modelo e alguns casos de uso em que as instâncias spot podem ser utilizadas com sucesso.

Publicada em: Tecnologia

Amazon EC2: Economize utilizando Instancias Spot

  1. 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. 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. 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. 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. 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
  6. 6. Spot Bid Advisor https://aws.amazon.com/ec2/spot/bid-advisor/
  7. 7. Exemplo
  8. 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. 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. 10. spot.json { "ImageId": "ami-f0091d91", "KeyName": "EC2", "SecurityGroupIds": [ "sg-c0c188a5" ], "InstanceType": "m3.medium", "Placement": { "AvailabilityZone": "us-west-2c” }, "SubnetId": "subnet-0694685f” }
  11. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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
  21. 21. Spot Blocks
  22. 22. Amazon EC2 Spot Block $1 Rode sem interrupções por até 6 horas Reduza até 50% do preço On-Demand
  23. 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
  24. 24. Spot Fleet
  25. 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. 26. Flexibilidade do Spot Fleet 2. Entre famílias EC2 3. Entre AZs 1. Dentro da família EC2
  27. 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. 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. 29. Spot Fleet Dependendo da quantidade e variação do seu Spot Fleet, utilizar o CLI pode ser complicado. Dica:
  30. 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
  31. 31. Cenário
  32. 32. Spot Fleet mantém a Capacidade Desejada
  33. 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. 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. 35. Desafio  Otimização de Uso / Custo  Volatilidade Cambial  Automatização + DevOps  Escalabilidade + HA
  36. 36. Ambiente ZAP
  37. 37. Economia para instâncias Linux 63.50% 95.70% 95.50% c3.8xlarge c3.xlarge m3.xlarge
  38. 38. Economia para instâncias Windows 78.50% 85.30% c3.xlarge m3.large
  39. 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. 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. 41. Qual tipo de Spot devo usar? • Na dúvida, use Spot Fleet
  42. 42. Obrigado!

×