Trabalhar com Instâncias spot
Para usar instâncias spot, crie uma solicitação de instância spot que inclua o número de instâncias desejado, o tipo de instância e a zona de disponibilidade. Se houver capacidade disponível, o Amazon EC2 atenderá à solicitação imediatamente. Caso contrário, o Amazon EC2 esperará até a sua solicitação puder ser atendida ou até você cancelar a solicitação.
A ilustração a seguir mostra como as solicitações de instância spot funcionam. Observe que o tipo de solicitação (única ou persistente) determina se a solicitação será reaberta ou quando o Amazon EC2 parar uma instância spot, ou você parar uma instância spot. Se a requisição for persistente, ela será aberta novamente depois que a instância spot for interrompida. Se a solicitação for persistente e você parar a instância spot, a solicitação só será reaberta depois que você reiniciar a instância spot.
Estados da solicitação de instância spot
Uma solicitação de instância spot pode estar em um dos seguintes estados:
-
open
– A solicitação está esperando para ser atendida.
-
active
– A solicitação foi atendida e tem uma instância spot associada.
-
failed
– A solicitação tem um ou mais parâmetros inválidos.
-
closed
– A instância spot foi interrompida ou encerrada.
-
disabled
– Você parou a instância spot.
-
cancelled
– Você cancelou a solicitação ou ela expirou.
A ilustração a seguir representa as transições entre os estados da solicitação. Observe que as transições dependem do tipo de solicitação (única ou persistente).
Uma solicitação de instância spot única permanece ativa até o Amazon EC2 executar a instância spot, a solicitação expirar ou você cancelar a solicitação. Se não houver capacidade disponível, sua instância spot será encerrada e a solicitação de instância spot será fechada.
Uma solicitação de instância spot persistente permanecerá ativa até expirar ou até que você a cancele, mesmo se a solicitação tiver sido atendida. Se não houver capacidade disponível, sua instância spot será interrompida. Depois que a instância é interrompida, quando houver novamente capacidade disponível, a instância spot será iniciada (se estiver parada) ou retomada (se estiver hibernada). É possível parar uma instância spot e reiniciá-la quando houver capacidade disponível. Se a instância spot for encerrada (independentemente de estar parada ou em execução), a solicitação de instância spot será reaberta e o Amazon EC2 iniciará uma nova instância spot. Para mais informações, consulte Parar uma instância spot, Iniciar uma instância spot e Encerrar uma instância spot.
É possível acompanhar o status das solicitações de instância spot, bem como o status das instâncias spot executadas, pelo status. Para ter mais informações, consulte Status da solicitação spot.
Especificar uma locação para suas Instâncias spot
É possível executar uma instância spot no hardware de ocupante único. As instâncias spot dedicadas são fisicamente isoladas de instâncias que pertencem a outras contas da AWS. Para obter mais informações, consulte Instâncias dedicadas do Amazon EC2 e a página do produto Instâncias dedicadas do Amazon EC2.
Para executar uma instância spot dedicada, execute um dos seguintes procedimentos:
Todas as famílias de instâncias são compatíveis com Instâncias spot dedicadas, exceto instâncias T. Para cada família de instâncias compatíveis, apenas o maior tamanho de instância ou tamanho de metal é compatível com Instâncias spot dedicadas.
Função vinculada ao serviço para solicitações de instâncias spot
O Amazon EC2 usa funções vinculadas ao serviço para as permissões necessárias para chamar outros produtos da AWS em seu nome. Uma função vinculada ao serviço é um tipo exclusivo de função do IAM vinculado diretamente a um serviço da AWS. As funções vinculadas a serviços oferecem uma maneira segura de delegar permissões a serviços da AWS, pois somente o serviço vinculado pode assumir uma função vinculada ao serviço. Para obter mais informações, consulteUso de funções vinculadas ao serviço no Guia do usuário do IAM.
O Amazon EC2 usa a função vinculada ao serviço denominada AWSServiceRoleForEC2Spot para executar e gerenciar Instâncias spot em seu nome.
Permissões concedidas pelo AWSServiceRoleForEC2Spot
O Amazon EC2 usa AWSServiceRoleForEC2Spot para concluir as ações a seguir:
-
ec2:DescribeInstances
– Descrever instâncias spot
-
ec2:StopInstances
– Parar instâncias spot
-
ec2:StartInstances
– Iniciar instâncias spot
Criar a função vinculada ao serviço
Na maioria das circunstâncias, você não precisa criar manualmente uma função vinculada ao serviço. O Amazon EC2 cria a função AWSServiceRoleForEC2Spot vinculada ao serviço na primeira vez que você solicita uma instância spot usando o console.
Se você tinha uma solicitação de instância spot ativa antes de outubro de 2017, quando o Amazon EC2 começou a oferecer suporte a essa função vinculada ao serviço, o Amazon EC2 criou a função AWSServiceRoleForEC2Spot em sua conta da AWS. Para obter mais informações, consulte Uma nova função apareceu na minha conta no Guia do usuário do IAM.
Se você usar a AWS CLI ou uma API para solicitar uma instância spot, deverá assegurar que essa função existe.
Para criar AWSServiceRoleForEC2Spot usando o console
Abra o console do IAM em https://console.aws.amazon.com/iam/.
-
No painel de navegação, selecione Roles.
-
Selecione Create role.
-
Na página Select type of trusted entity (Selecionar tipo de entidade confiável), escolha EC2, EC2 - Spot Instances (EC2 - instâncias spot), Next: Permissions (Próximo: permissões).
-
Na próxima página, escolha Next:Review (Próximo: revisar).
-
Na página Review (Revisar), selecione Create role (Criar função).
Para criar AWSServiceRoleForEC2Spot usando a AWS CLI
Use o comando create-service-linked-role da seguinte forma.
aws iam create-service-linked-role --aws-service-name spot.amazonaws.com
Se você não precisar mais usar Instâncias spot, é recomendável excluir a função AWSServiceRoleForEC2Spot. Depois que essa função for excluída da sua conta, o Amazon EC2 criará a função novamente se você solicitar Instâncias spot.
Conceder acesso às chaves gerenciadas pelo cliente para uso com AMIs criptografadas e snapshots do EBS
Se você especificar uma AMI criptografada ou um snapshot do Amazon EBS criptografado para suas instâncias spot e usar uma chave gerenciada pelo cliente para criptografia, deverá conceder à função AWSServiceRoleForEC2Spot permissão para usar a chave gerenciada pelo cliente de forma que o Amazon EC2 consiga executar instâncias spot em seu nome. Para isso, adicione uma concessão à chave gerenciada pelo cliente, conforme exibido no procedimento a seguir.
Durante a definição de permissões, as concessões são uma alternativa às políticas de chave. Para obter mais informações, consulte Uso de concessões e Uso de políticas de chave no AWS KMS, no Guia do desenvolvedor do AWS Key Management Service.
Para conceder as permissões para a função AWSServiceRoleForEC2Spot para usar a chave gerenciada pelo cliente
-
Use o comando create-grant para adicionar uma concessão à chave gerenciada pelo cliente e especificar a entidade principal (a função vinculada ao serviço AWSServiceRoleForEC2) que recebe permissão para executar as operações permitidas pela concessão. A chave gerenciada pelo cliente é especificada pelo parâmetro key-id
e o ARN da chave gerenciada pelo cliente. A entidade principal é especificada pelo parâmetro grantee-principal
e pelo ARN da função vinculada ao serviço AWSServiceRoleForEC2Spot.
aws kms create-grant \
--region us-east-1
\
--key-id arn:aws:kms:us-east-1
:444455556666
:key/1234abcd-12ab-34cd-56ef-1234567890ab
\
--grantee-principal arn:aws:iam::111122223333
:role/aws-service-role/spot.amazonaws.com/AWSServiceRoleForEC2Spot \
--operations "Decrypt" "Encrypt" "GenerateDataKey" "GenerateDataKeyWithoutPlaintext" "CreateGrant" "DescribeKey" "ReEncryptFrom" "ReEncryptTo"
Criar uma solicitação de instância spot
Você pode usar o assistente de execução de instância no console do Amazon EC2 ou no comando da AWS CLI run-instances para solicitar uma instância spot da mesma forma que você pode executar uma instância sob demanda. Este método é recomendado apenas pelos seguintes motivos:
-
Você já está usando o assistente de execução de instância ou o comando run-instances para executar instâncias sob demanda e quer mudar para a execução de instâncias spot alterando um único parâmetro.
-
Você não precisa de várias instâncias com diferentes tipos de instância.
Esse método geralmente não é recomendado para executar instâncias spot porque você não pode especificar vários tipos de instância e não é possível executar instâncias spot e instâncias sob demanda na mesma solicitação. Para os métodos preferidos de execução de instâncias spot, que incluem a execução de uma frota que inclui instâncias spot e instâncias sob demanda com vários tipos de instância, consulte Qual é o melhor método de solicitação spot para usar?
Se você solicitar várias instâncias spot ao mesmo tempo, o Amazon EC2 criará solicitações de instância spot separadas para que você possa acompanhar o status de cada uma separadamente. Para obter mais informações sobre como monitorar solicitações de instâncias spot, consulte Status da solicitação spot.
- New console
-
Para criar uma solicitação de instância spot usando o assistente de execução de instâncias
As etapas de 1 a 9 são as mesmas que você usaria para executar uma instância sob demanda. Na Etapa 10, você configura a solicitação da instância spot.
Abra o console do Amazon EC2 em https://console.aws.amazon.com/ec2/.
-
Na barra de navegação na parte superior da tela, selecione uma região.
-
No painel do console do Amazon EC2, selecione Launch instance (Executar instância).
-
(Opcional) Em Name and tags (Nome e etiquetas), é possível nomear a instância e marcar a solicitação de instância spot, a instância, os volumes e os gráficos elásticos. Para obter mais informações sobre tags, consulte Marcar com tag os recursos do Amazon EC2.
-
Em Name (Nome), insira um nome descritivo para a instância.
O nome da instância é uma tag em que a chave é Name (Nome) e o valor é o nome que você especificar. Se você não especificar um nome, a instância poderá ser identificada por seu ID, que é gerado automaticamente quando você inicia a instância.
-
Para marcar a solicitação de instância spot, a instância, os volumes e os elementos gráficos elásticos, escolha Add additional tags (Adicionar outras etiquetas). Escolha Add tag (Adicionar tag), insira uma chave e um valor, e selecione o tipo de recurso a aplicar a tag. Escolha Add tag (Adicionar tag) para cada tag adicional a acrescentar.
-
Em Application and OS Images (Amazon Machine Image), (Imagens de aplicações e sistemas operacionais (imagem de máquina da Amazon), escolha o sistema operacional da instância e selecione uma AMI. Para ter mais informações, consulte Imagens de aplicações e sistemas operacionais (imagem de máquina da Amazon).
-
Em Instance type (Tipo de instância), selecione o tipo de instância que atende aos requisitos para a configuração do hardware e o tamanho da instância. Para ter mais informações, consulte Tipo de instância.
-
Em Key pair (login) (Par de chaves: login) escolha um par de chaves existente ou selecione Create new key pair (Criar um novo par de chaves) para criar um novo. Para ter mais informações, consulte Pares de chaves do Amazon EC2 e instâncias do Amazon EC2.
Se você escolher a opção Proceed without key pair (Not recommended) (Prosseguir sem par de chaves, não recomendado), não conseguirá se conectar à instância a menos que escolha uma AMI configurada para permitir que os usuários façam login de outro modo.
-
Em Network settings (Configurações de rede), use as configurações padrão ou escolha Edit (Editar) para definir as configurações de rede, conforme necessário.
Os grupos de segurança fazem parte das configurações de rede e definem regras de firewall para a instância. Essas regras especificam qual tráfego de rede de entrada será fornecido para sua instância.
Para ter mais informações, consulte Configurações de rede.
-
A AMI que você selecionou inclui um ou mais volumes de armazenamento, incluindo o volume de dispositivo raiz. Na página Configure storage (Configurar armazenamento), especifique os volumes adicionais para anexar à instância escolhendo Add New Volume (Adicionar novo volume). Para ter mais informações, consulte Configurar armazenamento.
-
Em Advanced details (Detalhes avançados), configure a solicitação de instância spot da seguinte maneira:
-
Em Purchasing option (Opção de compra), selecione Request Spot Instances (Solicitar instâncias spot).
-
Você pode manter a configuração padrão para a solicitação de instância spot ou escolher Customize (Personalizar), à direita, para especificar configurações personalizadas para a solicitação da instância spot.
Ao escolher a opção Customize (Personalizar), os campos a seguir serão exibidos.
-
Preço máximo: e possível solicitar instâncias spot pelo preço spot, limitado ao preço sob demanda ou especificar o valor máximo que você está disposto a pagar.
Se você especificar um preço máximo, as instâncias serão interrompidas com mais frequência do que se você escolher No maximum price (Sem preço máximo).
-
Sem preço máximo: a instância spot será executada pelo preço spot atual. O preço nunca excederá o preço sob demanda. (Recomendado)
-
Defina seu preço máximo (por instância/hora): você pode especificar o valor máximo que estiver disposto a pagar.
-
Se você especificar um preço máximo inferior ao preço spot atual, a instância spot não será executada.
-
Se você especificar um preço máximo superior ao preço spot atual, a instância spot será executada e cobrada de acordo com o preço spot atual. Depois que a instância spot estiver em execução, se o preço spot subir acima do preço máximo, o Amazon EC2 interromperá a instância spot.
-
Independentemente do preço máximo especificado, você sempre será cobrado o preço Spot atual.
Para analisar as tendências de preços spot, consulte Histórico de definição de preço da instância spot.
-
Tipos de solicitação: o tipo de solicitação de instância spot escolhido determina o que acontece se a instância spot for interrompida.
-
Única: o Amazon EC2 faz uma solicitação única para a instância spot. Se a instância spot for interrompida, a solicitação não será reenviada.
-
Solicitação persistente: o Amazon EC2 faz uma solicitação persistente para a instância spot. Se a instância spot for interrompida, a solicitação será reenviada para reabastecer a instância spot interrompida.
Se você não especificar um valor, o padrão é uma solicitação única.
-
Valid to (Válido para): a data de expiração de uma solicitação de instância spot persistente.
Esse campo não é compatível com solicitações únicas. Uma solicitação única permanece ativa até que todas as instâncias da solicitação expirem ou você cancele a solicitação.
-
Nenhuma data de expiração da solicitação: a solicitação permanecerá ativa até você cancelá-la.
-
Defina a data de validade da solicitação: a solicitação persistente permanece ativa até a data especificada ou até que você a cancele.
-
Comportamento de interrupção: o comportamento escolhido determina o que acontece quando uma instância spot é interrompida.
-
Em solicitações persistentes, os valores válidos são Parar e Hibernar. Quando uma instância é parada ocorrem cobranças pelo armazenamento do volume EBS.
As instâncias spot agora usam a mesma funcionalidade de hibernação que as instâncias sob demanda. Para habilitar a hibernação, você pode escolher Hibernar aqui ou Habilitar no campo Comportamento de parar - hibernar, que aparece mais abaixo no assistente de inicialização de instância. Para conhecer os pré-requisitos de hibernação, consulte Pré-requisitos para a hibernação de instâncias do Amazon EC2.
-
Para as solicitações únicas, somente Terminate (Encerrar) é válido.
Se você não especificar um valor, o padrão é Terminate (Encerrar) que não é válido para uma solicitação de instância spot persistente. Se você mantiver o padrão e tentar executar uma solicitação de instância spot persistente, receberá um erro.
Para ter mais informações, consulte Comportamento das interrupções de instâncias spot.
-
No painel Summary (Resumo), para Number of instances (Número de instâncias), insira o número de instâncias a serem executadas.
O Amazon EC2 cria uma solicitação distinta para cada instância spot.
-
No painel Summary (Resumo), revise os detalhes da instância e faça as alterações necessárias. Depois de enviar sua solicitação de instância spot, não é possível alterar os parâmetros da solicitação. É possível navegar diretamente para uma seção no assistente de execução de instância, escolhendo seu link no painel Summary (Resumo). Para ter mais informações, consulte Resumo.
-
Quando estiver pronto para iniciar a instância, escolha Launch instance (Iniciar instância).
Se a instância não executar ou o estado passar imediatamente para terminated
, em vez de running
, consulte Solucionar problemas de execução de instâncias.
- Old console
-
Para criar uma solicitação de instância spot usando o assistente de execução de instâncias
Abra o console do Amazon EC2 em https://console.aws.amazon.com/ec2/.
-
Na barra de navegação na parte superior da tela, selecione uma região.
-
No painel do console do Amazon EC2, selecione Launch Instance (Executar instância).
-
Na página Escolher imagem de máquina da Amazon (AMI), escolha uma AMI. Para ter mais informações, consulte Etapa 1: Escolher uma imagem de máquina da Amazon (AMI).
-
Na página Choose an Instance Type (Escolher um tipo de instância), selecione a configuração de hardware e o tamanho da instância a ser executada e Next: Configure Instance Details (Próximo: configurar detalhes da instância). Para ter mais informações, consulte Etapa 2: escolher um tipo de instância.
-
Na página Configure Instance Details (Configurar os detalhes da instância) configure a solicitação de instância spot da seguinte maneira:
-
Number of instances (Número de instâncias): Digite o número de instâncias para executar.
O Amazon EC2 cria uma solicitação distinta para cada instância spot.
-
(Opcional) Para ajudar a assegurar que você mantenha o número de instâncias para lidar com a demanda da aplicação, escolha Launch into Auto Scaling Group (Executar no grupo de Auto Scaling) para criar uma configuração de execução e um grupo de Auto Scaling. O Auto Scaling escala o número de instâncias no grupo de acordo com suas especificações. Para mais informações, consulte o Guia do usuário do Amazon EC2 Auto Scaling.
-
Purchasing option (Opção de compra): escolha Request Spot instances (Solicitar instâncias spot) para executar uma instância Spot. Ao escolher essa opção, os campos a seguir são exibidos.
-
Preço atual: o preço spot atual em cada zona de disponibilidade é exibido para o tipo de instância selecionada.
-
(Opcional) Preço máximo: é possível deixar o campo vazio ou especificar o valor máximo que está disposto a pagar.
Se você especificar um preço máximo, suas instâncias serão interrompidas com mais frequência do que se você deixar esse campo vazio.
-
Se você especificar um preço máximo inferior ao preço spot, a instância spot não será iniciada.
-
Se você especificar um preço máximo superior ao preço spot atual, a instância spot será executada e cobrada de acordo com o preço spot atual. Depois que a instância spot estiver em execução, se o preço spot subir acima do preço máximo, o Amazon EC2 interromperá a instância spot.
-
Independentemente do preço máximo especificado, você sempre será cobrado o preço Spot atual.
-
Se você deixar o campo vazio, pagará o preço spot atual.
-
Persistent request (Solicitação persistente): escolha Solicitação persistente para reenviar a solicitação de instância spot se a instância spot for interrompida.
-
Interruption behavior (Comportamento de interrupção): por padrão, o serviço spot encerra uma instância spot quando ela é interrompida. Se escolher Solicitação persistente, será possível especificar que o serviço spot interrompa ou hiberne a instância spot quando ela for interrompida. Para ter mais informações, consulte Comportamento das interrupções de instâncias spot.
-
(Opcional) Request valid to (Solicitação válida até): escolha Edit (Editar) para especificar a expiração da solicitação de instância spot.
Para obter mais informações sobre como configurar sua instância spot, consulte Etapa 3: configurar detalhes da instância.
-
A AMI que você selecionou inclui um ou mais volumes de armazenamento, incluindo o volume de dispositivo raiz. Na página Add Storage (Adicionar armazenamento), especifique os volumes adicionais para anexar à instância escolhendo Add New Volume (Adicionar novo volume). Para obter mais informações, consulte Etapa 4: adicionar armazenamento.
-
Na página Add Tags (Adicionar tags), especifique as tags fornecendo combinações de chave e valor. Para obter mais informações, consulte Etapa 5: Adicionar tags.
-
Na página Configurar grupo de segurança, use um grupo de segurança para definir regras do firewall para sua instância. Essas regras especificam qual tráfego de rede de entrada será fornecido para sua instância. Todo o tráfego é ignorado. (Para mais informações sobre grupos de segurança, consulte Grupos de segurança do Amazon EC2 para as instâncias do EC2.) Selecione ou crie um grupo de segurança e escolha Revisar e executar. Para ter mais informações, consulte Etapa 6: configurar o grupo de segurança.
-
Na página Review Instance Launch (Revisar execução da instância), verifique os detalhes da sua instância e faça qualquer alteração necessária selecionando o link Edit (Editar) apropriado. Quando estiver pronto, escolha Launch (Executar). Para ter mais informações, consulte Etapa 7: Revisar a execução da instância e selecionar o par de chaves.
-
Na caixa de diálogo Select an existing key pair or create a new key pair (Selecionar um par de chaves existente ou criar um novo par de chaves), será possível escolher um par de chaves existente ou poderá criar um novo. Por exemplo, Escolha um par de chaves existente e selecione o par de chaves que você criou para a configuração. Para ter mais informações, consulte Pares de chaves do Amazon EC2 e instâncias do Amazon EC2.
Se você escolher a opção Proceed without key pair (Continuar sem par de chaves), não conseguirá se conectar à instância a menos que escolha uma AMI configurada para permitir aos usuários uma maneira efetuar login.
-
Para executar uma instância, selecione a caixa de confirmação e escolha Launch Instances (Executar instâncias).
Se a instância não executar ou o estado passar imediatamente para terminated
, em vez de running
, consulte Solucionar problemas de execução de instâncias.
- AWS CLI
-
Para criar uma solicitação de instância spot usando run-instances
Use o comando run-instances e especifique as opções da instância spot no parâmetro --instance-market-options
.
aws ec2 run-instances \
--image-id ami-0abcdef1234567890
\
--instance-type t2.micro
\
--count 5
\
--subnet-id subnet-08fc749671b2d077c
\
--key-name MyKeyPair
\
--security-group-ids sg-0b0384b66d7d692f9
\
--instance-market-options file://spot-options.json
Veja a seguir a estrutura de dados a ser especificada no arquivo JSON --instance-market-options
. Também é possível especificar ValidUntil
e InstanceInterruptionBehavior
. Se você não especificar um campo na estrutura de dados, será usado o valor padrão.
O exemplo a seguir cria uma solicitação persistent
.
{
"MarketType": "spot",
"SpotOptions": {
"SpotInstanceType": "persistent
"
}
}
Para criar uma solicitação de instância spot usando request-spot-instances
Use o comando request-spot-instances para criar uma solicitação única:
aws ec2 request-spot-instances \
--instance-count 5
\
--type "one-time" \
--launch-specification file://specification.json
Use o comando request-spot-instances para criar uma requisição persistente:
aws ec2 request-spot-instances \
--instance-count 5
\
--type "persistent" \
--launch-specification file://specification.json
Para que os arquivos de especificação de execução de exemplo sejam usados com esses comandos, consulte Exemplo de especificações de execução de solicitações de instância spot. Se você baixar um arquivo de especificação de execução no console de solicitações de spot, use o comando request-spot-fleet (o console de solicitações spot especifica uma solicitação de instância spot usando uma frota spot).
Encontrar as instâncias spot
O Amazon EC2 inicia uma instância spot quando há capacidade disponível. A instância spot será executada até ser interrompida ou até você a encerrar.
Uma instância spot aparece na página Instâncias no console junto com as instâncias sob demanda. Use o procedimento a seguir para encontrar as instâncias spot.
- Console
-
Para registrar as instâncias spot usando o console
-
Abra o console do Amazon EC2 em https://console.aws.amazon.com/ec2/.
-
No painel de navegação, escolha Instances (Instâncias).
-
Para encontrar todas as instâncias spot, no painel de pesquisa, escolha Ciclo de vida da instância = spot.
-
Para confirmar que uma instância é uma instância spot, selecione a instância, escolha a guia Detalhes e verifique o valor de Ciclo de vida. O valor de uma instância spot é spot
e o valor de uma instância sob demanda é normal
.
- AWS CLI
-
Para encontrar as instâncias spot usando a AWS CLI
Use o comando describe-instante com a opção --filters
.
aws ec2 describe-instances \
--filters "Name=instance-lifecycle,Values=spot"
Para determinar se uma instância é uma instância spot
Use o comando describe-instances, usando a opção --query
para verificar o valor do ciclo de vida.
aws ec2 describe-instances \
--instance-ids i-0123a456700123456 \
--query "Reservations[*].Instances[*].InstanceLifecycle" \
--output text
Se a saída for spot
, a instância será uma instância spot. Se não houver saída, a instância será uma instância sob demanda.
Use o procedimento a seguir para encontrar as instâncias spot iniciadas por uma solicitação específica de instância spot ou frota spot.
- Console
-
Para encontrar as instâncias spot para uma solicitação usando o console
-
Abra o console do Amazon EC2 em https://console.aws.amazon.com/ec2/.
-
No painel de navegação, selecione Solicitações spot. A lista contém tanto as solicitações de instância spot quanto as solicitações de frota spot.
-
Se uma solicitação de instância spot for atendida, Capacidade será o ID da instância spot. Em uma frota spot, a Capacity (Capacidade) indica quanto da capacidade solicitada foi atendida. Para visualizar os IDs das instâncias em uma frota spot, escolha a seta de expansão ou selecione a frota e escolha Instances (Instâncias).
-
Em uma frota spot, Capacidade indica quanto da capacidade solicitada foi fornecida. Para visualizar os IDs das instâncias em uma frota spot, escolha o ID da frota para abrir sua página de detalhes e localize o painel Instâncias.
- AWS CLI
-
Para encontrar as instâncias spot para uma solicitação usando a AWS CLI
Use o comando describe-spot-instance-requests com a opção --query
.
aws ec2 describe-spot-instance-requests \
--query "SpotInstanceRequests[*].{ID:InstanceId}"
A seguir está um exemplo de saída:
[
{
"ID": "i-1234567890abcdef0"
},
{
"ID": "i-0598c7d356eba48d7"
}
]
Para categorizar e gerenciar as solicitações de instância spot, é possível marcá-las com metadados personalizados. É possível atribuir uma tag a uma solicitação de instância spot ao criá-la ou posteriormente. É possível atribuir tags usando o console do Amazon EC2 ou uma ferramenta da linha de comando.
Quando você marca uma solicitação de instância spot, as instâncias e os volumes executados pela solicitação de instância spot não são marcados automaticamente. É necessário marcar explicitamente as instâncias e os volumes executados pela solicitação de instância spot. É possível atribuir volumes e uma tag a uma instância spot durante a execução ou posteriormente.
Para obter mais informações sobre como as tags funcionam, consulte Marcar com tag os recursos do Amazon EC2.
Pré-requisitos
Conceda ao usuário permissão para marcar recursos. Para obter mais informações sobre políticas do IAM e políticas de exemplo, consulte Exemplo: marcar recursos.
A política do IAM criada é determinada pelo método usado para criação de uma solicitação de instância spot.
Para conceder a um usuário do IAM permissão para marcar recursos ao usar o assistente de inicialização ou run-instances
Crie uma política do IAM que inclua o seguinte:
-
A ação ec2:RunInstances
. Essa ação concede ao usuário permissão para iniciar uma instância.
-
Em Resource
, especifique spot-instances-request
. Essa ação permite que os usuários criem solicitações de instância spot, que solicitam instâncias spot.
-
A ação ec2:CreateTags
. Essa ação concede ao usuário permissão para criar tags.
-
Em Resource
, especifique *
. Isso permite que os usuários marquem todos os recursos criados durante a execução da instância.
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AllowLaunchInstances",
"Effect": "Allow",
"Action": [
"ec2:RunInstances"
],
"Resource": [
"arn:aws:ec2:us-east-1::image/*",
"arn:aws:ec2:us-east-1:*:subnet/*",
"arn:aws:ec2:us-east-1:*:network-interface/*",
"arn:aws:ec2:us-east-1:*:security-group/*",
"arn:aws:ec2:us-east-1:*:key-pair/*",
"arn:aws:ec2:us-east-1:*:volume/*",
"arn:aws:ec2:us-east-1:*:instance/*",
"arn:aws:ec2:us-east-1:*:spot-instances-request/*"
]
},
{
"Sid": "TagSpotInstanceRequests",
"Effect": "Allow",
"Action": "ec2:CreateTags",
"Resource": "*"
}
]
}
Quando você usa a ação RunInstances para criar solicitações de instância spot e marcar as solicitações de instância spot ao criá-las, deve estar ciente de que o Amazon EC2 avalia o recurso spot-instances-request
na instrução RunInstances segundo a política do IAM, como se segue:
-
Se você não marcar uma solicitação de instância spot na criação, o Amazon EC2 não avaliará o recurso spot-instances-request
na instrução RunInstances.
-
Se você marcar uma solicitação de instância spot na criação, o Amazon EC2 avaliará o recurso spot-instances-request
na instrução RunInstances.
Portanto, para o recurso spot-instances-request
, as seguintes regras se aplicam à diretiva do IAM:
-
Caso você use RunInstances para criar uma solicitação de instância spot e não pretenda marcar a solicitação de instância spot na criação, não será necessário permitir explicitamente o recurso spot-instances-request
. A chamada terá êxito.
-
Caso use RunInstances para criar uma solicitação de instância spot e pretenda marcar a solicitação de instância spot na criação, você deverá incluir o recurso spot-instances-request
na instrução de permissão RunInstances, caso contrário, a chamada falhará.
-
Caso você use RunInstances para criar uma solicitação de instância spot e pretenda marcar a solicitação de instância spot na criação, especifique o recurso spot-instances-request
ou inclua um curinga *
na instrução de permissão CreateTags, caso contrário, a chamada falhará.
Por exemplo, políticas do IAM, incluindo políticas que não são compatíveis com solicitações de instância spot, consulte Trabalhar com Instâncias spot.
Para conceder a um usuário permissão para marcar recursos ao usar request-spot-instances
Crie uma política do IAM que inclua o seguinte:
-
A ação ec2:RequestSpotInstances
. Isso concede ao usuário permissão para criar uma solicitação de instância spot.
-
A ação ec2:CreateTags
. Essa ação concede ao usuário permissão para criar tags.
-
Em Resource
, especifique spot-instances-request
. Isso permite que os usuários marquem somente a solicitação de instância spot.
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "TagSpotInstanceRequest",
"Effect": "Allow",
"Action": [
"ec2:RequestSpotInstances",
"ec2:CreateTags"
],
"Resource": "arn:aws:ec2:us-east-1
:111122223333
:spot-instances-request/*"
}
Marcar uma nova solicitação de instância spot
- Console
-
Para marcar uma nova solicitação de instância spot usando o console
-
Siga o procedimento do Criar uma solicitação de instância spot.
-
Para adicionar uma tag, na página Adicionar tags, escolha Adicionar tag e insira a chave e o valor da tag. Escolha Adicionar outra tag para cada tag adicional.
Para cada tag, é possível marcar a solicitação de instância spot, as instâncias spot e os volumes com a mesma tag. Para marcar os três, verifique se as opções Instances (Instâncias), Volumes e Spot Instance Requests (Solicitações de instâncias spot) estão selecionadas. Para marcar apenas um ou dois, verifique se os recursos que deseja marcar estão selecionados e os outros recursos estão limpos.
-
Preencha os campos obrigatórios para criar uma solicitação de instância spot e escolha Launch (Executar). Para ter mais informações, consulte Criar uma solicitação de instância spot.
- AWS CLI
-
Para marcar uma nova solicitação de instância spot usando a AWS CLI
Para marcar uma solicitação de instância spot ao criá-la, defina-a da seguinte maneira:
-
Especifique as tags para a solicitação de instância spot usando o parâmetro --tag-specification
.
-
Para ResourceType
, especifique spot-instances-request
. Se você especificar outro valor, ocorrerá falha na solicitação de instância spot.
-
Em Tags
, especifique o par de chave/valor. É possível especificar mais de um par de chave/valor.
No exemplo a seguir, a solicitação de instância spot é marcada com duas tags: Key=Environment e Value=Production, e Key=Cost-Center e Value=123.
aws ec2 request-spot-instances \
--instance-count 5
\
--type "one-time" \
--launch-specification file://specification.json
\
--tag-specification 'ResourceType=spot-instances-request,Tags=[{Key=Environment
,Value=Production
},{Key=Cost-Center
,Value=123
}]'
Marcar uma solicitação de instância spot existente
- Console
-
Para marcar uma solicitação de instância spot existente usando o console
Depois de criar uma solicitação de instância spot, é possível adicionar tags à solicitação de instância spot usando o console.
Abra o console do Amazon EC2 em https://console.aws.amazon.com/ec2/.
-
No painel de navegação, selecione Solicitações spot.
-
Selecione sua solicitação de instância spot.
-
Escolha a guia Tags e Create Tag (Criar tag).
Para marcar uma solicitação de instância spot existente usando o console
Depois que sua solicitação de instância spot tiver executado a instância spot, será possível adicionar tags à instância usando o console. Para ter mais informações, consulte Adicionar e excluir tags em um recurso individual.
- AWS CLI
-
Para marcar uma solicitação de instância spot existente ou instância spot usando a AWS CLI
Use o comando create-tags para marcar os recursos existentes. No exemplo a seguir, a solicitação de instância spot e a instância spot existentes são marcadas com Key=purpose e Value=test.
aws ec2 create-tags \
--resources sir-08b93456
i-1234567890abcdef0
\
--tags Key=purpose
,Value=test
- Console
-
Para visualizar tags de solicitação de instância spot usando o console
Abra o console do Amazon EC2 em https://console.aws.amazon.com/ec2/.
-
No painel de navegação, selecione Solicitações spot.
-
Selecione sua solicitação de instância spot e escolha a guia Tags.
- AWS CLI
-
Para descrever as tags de solicitação de instância spot
Também é possível visualizar as tags de uma solicitação de instância spot descrevendo a solicitação de instância spot. Use o comando describe-spot-instance-requests para visualizar a configuração da solicitação de instância spot especificada, que inclui todas as tags especificadas para a solicitação.
aws ec2 describe-spot-instance-requests \
--spot-instance-request-ids sir-EXAMPLE1
\
--query "SpotInstanceRequests[*].Tags"
O seguinte é um exemplo de saída.
[
[
{
"Key": "Environment",
"Value": "Production"
},
{
"Key": "Department",
"Value": "101"
}
]
]
Cancelar uma solicitação de instância spot
Se você não quiser mais sua solicitação de instância spot, poderá cancelá-la. Você só pode cancelar solicitações de instância spot que estão open
, active
ou disabled
.
-
A solicitação de instância spot é open
quando sua requisição não ainda não foi atendida e nenhuma instância foi iniciada.
-
A solicitação de instância spot é active
quando ela foi atendida e as instâncias spot foram inicializadas como resultado.
-
Sua solicitação de instância spot consta como disabled
quando você para a instância spot..
Se a solicitação de instância spot estiver active
e tiver uma instância spot associada em execução, o cancelamento da solicitação não encerrará a instância. Para obter mais informações sobre como encerrar uma instância spot, consulte Encerrar uma instância spot.
- Console
-
Para cancelar uma solicitação de instância spot usando o console
-
Abra o console do Amazon EC2 em https://console.aws.amazon.com/ec2/.
-
No painel de navegação, selecione Solicitações spot.
-
Selecione a solicitação de instância spot.
-
Escolha Ações, Cancelar solicitação.
-
(Opcional) Ao terminar de trabalhar com as Instâncias spot associadas, será possível encerrá-las. Na caixa de diálogo Cancelar solicitação spot, selecione Encerrar instâncias e escolha Confirmar.
- AWS CLI
-
Para cancelar uma solicitação de instância spot usando a AWS CLI
Use o comando cancel-spot-instance-requests para cancelar a solicitação de instância spot especificada.
aws ec2 cancel-spot-instance-requests --spot-instance-request-ids sir-08b93456
Parar uma instância spot
Caso não precise das instâncias spot no moento, mas quiser reiniciá-las posteriormente sem perder os dados persistentes no volume do Amazon EBS, você pode pará-las. As etapas para parar uma instância spot são semelhantes às etapas para parar uma instância sob demanda.
Ao parar uma instância spot, será possível modificar alguns atributos da instância, mas não o tipo dela.
Não cobramos pelo uso de uma instância spot parada nem por taxas de transferência de dados, mas cobramos pelo armazenamento nos volumes do Amazon EBS.
Limitações
-
Você só pode parar uma instância spot se ela foi iniciada a partir de uma solicitação de instância spot persistente
.
-
Não é possível parar uma instância spot se a solicitação de instância spot associada foi cancelada. Quando a solicitação de instância spot é cancelada, você só pode encerrar a instância spot.
-
Também não é possível parar as instâncias spot em um grupo de frota, grupo de lançamento ou grupo de zonas de disponibilidade.
- Console
-
Se quiser parar uma instância spot usando o console
Abra o console do Amazon EC2 em https://console.aws.amazon.com/ec2/.
-
No painel de navegação, escolha Instances (Instâncias).
-
Selecione a instância spot. Se você não salvou o ID da instância spot, consulte Encontrar as instâncias spot.
-
Escolha Estado da instância e Parar instância.
-
Quando a confirmação for solicitada, escolha Parar.
- AWS CLI
-
Para parar uma instância spot usando a AWS CLI
Use o comando stop-instances para interromper manualmente as Instâncias spot.
aws ec2 stop-instances --instance-ids i-1234567890abcdef0
Iniciar uma instância spot
Você pode iniciar uma instância spot que havia parado.
Pré-requisitos
É possível iniciar uma instância spot somente se:
-
Você parou manualmente a instância spot.
-
A instância spot é uma instância com EBS.
-
A capacidade da instância spot está disponível.
-
O preço spot é inferior ao preço máximo.
As etapas para iniciar uma instância spot são semelhantes às etapas para iniciar uma instância sob demanda.
- Console
-
Para iniciar uma instância spot usando o console
Abra o console do Amazon EC2 em https://console.aws.amazon.com/ec2/.
-
No painel de navegação, escolha Instances (Instâncias).
-
Selecione a instância spot. Se você não salvou o ID da instância spot, consulte Encontrar as instâncias spot.
-
Escolha Instance state (Estado da instância) e Start instance (Iniciar instância).
- AWS CLI
-
Para iniciar uma instância spot usando a AWS CLI
Use o comando start-instances para iniciar manualmente as Instâncias spot.
aws ec2 start-instances --instance-ids i-1234567890abcdef0
Encerrar uma instância spot
Se você encerrar uma instância spot em execução ou parada que foi iniciada por uma solicitação de instância spot persistente, a solicitação de instância spot fará a transição para o estado open
para que a nova instância spot seja iniciada.
Se você cancelar uma solicitação de instância spot active
com uma instância spot em execução, a instância spot em execução não será automaticamente terminada, e você deverá terminá-la manualmente.
Se você cancelar uma solicitação de instância spot disabled
com uma instância spot parada, a instância spot parada será automaticamente encerrada pelo serviço spot do Amazon EC2. Pode haver um pequeno atraso entre o momento em que você cancelar a solicitação de instância spot e o momento em que o serviço spot terminar a instância spot.
Para ter mais informações, consulte Cancelar uma solicitação de instância spot.
- Console
-
Para encerrar manualmente uma instância spot usando o console
-
Antes de encerrar a instância, confirme que não perderá dados verificando se seus volumes do Amazon EBS não serão excluídos no encerramento e se você copiou todos os dados de que precisa dos volumes de armazenamento persistente de instância, como o Amazon EBS ou o Amazon S3.
-
Abra o console do Amazon EC2 em https://console.aws.amazon.com/ec2/.
-
No painel de navegação, escolha Instances (Instâncias).
-
Selecione a instância spot. Se você não salvou o ID da instância spot, consulte Encontrar as instâncias spot.
-
Escolha Instance state (Estado da instância) e Terminate instance (Encerrar instância).
-
Quando a confirmação for solicitada, escolha Terminate (Encerrar).
- AWS CLI
-
Para encerrar manualmente uma instância spot usando a AWS CLI
Use o comando terminate-instances para encerrar manualmente as Instâncias spot.
aws ec2 terminate-instances --instance-ids i-1234567890abcdef0
i-0598c7d356eba48d7