Solicitações de instância Spot - Amazon Elastic Compute Cloud

Solicitações de instância Spot

Para usar instâncias spot, você cria uma solicitação de instância spot que inclua o número de instâncias desejado, o tipo de instância, a zona de disponibilidade e o preço máximo que você está disposto a pagar por hora de instância. Se seu preço máximo exceder o preço spot atual, o Amazon EC2 atenderá à sua solicitação imediatamente mediante a disponibilidade de capacidade. 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á exibida novamente quando o Amazon EC2 ou você interromper 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ê interromper a instância spot, a solicitação será exibida somente depois que você iniciar a instância spot.


				Como as requisições de instância spot funcionam

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ê interrompeu 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).


					Estados da solicitação de instância spot

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 o preço spot exceder seu preço máximo ou a capacidade não estiver 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 o preço spot exceder seu preço máximo ou a capacidade não estiver disponível, sua instância spot será interrompida. Depois que sua instância é interrompida, quando o preço máximo excede o preço spot ou a capacidade se torna disponível novamente, a instância spot será iniciada, se estiver parada, ou retomada, se estiver em hibernação. Você pode interromper uma instância spot e iniciá-la novamente mediante a disponibilidade de capacidade e se o preço máximo exceder o preço spot. Se a instância spot for encerrada (independentemente da instância spot estar interrompida ou estar em execução), a solicitação de instância spot será aberta novamente e o Amazon EC2 executará uma nova instância spot. Para obter mais informações, consulte Interromper uma instância spot, Iniciar uma instância spot e Encerrar uma instância spot.

Você pode acompanhar o status das solicitações de instância spot, bem como o status das instâncias spot executadas, pelo status. Para mais informações, consulte Status da solicitação spot.

Definir uma duração para suas Instâncias spot

As instâncias spot com duração definida (também conhecidas como blocos spot) não estarão mais disponíveis para novos clientes a partir de 1.º de julho de 2021. Aos clientes que utilizaram o recurso anteriormente, continuaremos a oferecer suporte a instâncias spot com duração definida até 31 de dezembro de 2022.

Especificar uma locação para suas Instâncias spot

Você pode 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 Dedicated Instances 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 – Interromper 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

  1. Abra o console do IAM em https://console.aws.amazon.com/iam/.

  2. No painel de navegação, selecione Roles.

  3. Selecione Create role.

  4. 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).

  5. Na próxima página, escolha Next:Review (Próximo: revisar).

  6. 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 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/AWSServiceRoleForEC2Spot \ --operations "Decrypt" "Encrypt" "GenerateDataKey" "GenerateDataKeyWithoutPlaintext" "CreateGrant" "DescribeKey" "ReEncryptFrom" "ReEncryptTo"

Criar uma solicitação de instância spot

O procedimento para solicitação de instância spot é semelhante ao procedimento de execução de uma instância sob demanda. Você pode solicitar uma instância spot das seguintes maneiras:

Depois de enviar sua solicitação de instância spot, não é possível alterar os parâmetros da solicitação. Isso significa que você não poderá fazer alterações no preço máximo que está disposto a pagar.

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.

Para executar uma frota que inclui Instâncias spot e Instâncias on-demand, consulte Criar uma solicitação de frota spot.

nota

Não é possível executar uma instância spot e uma instância sob demanda na mesma chamada usando o assistente de execução de instância ou o comando run-instances.

Pré-requisitos

Antes de iniciar, decida seu preço máximo, quantas Instâncias spot deseja e qual tipo de instância usar. Para analisar as tendências de preços spot, consulte Histórico de definição de preço da instância spot.

Para criar uma solicitação de instância spot (console)

  1. Abra o console do Amazon EC2 em https://console.aws.amazon.com/ec2/.

  2. Na barra de navegação na parte superior da tela, selecione uma região.

  3. No painel do console do Amazon EC2, selecione Launch Instance (Executar instância).

  4. Na página Escolher imagem de máquina da Amazon (AMI), escolha uma AMI. Para mais informações, consulte Etapa 1: Escolher uma imagem de máquina da Amazon (AMI).

  5. Na página Escolher um tipo de instância, selecione a configuração de hardware e o tamanho da instância a ser executada e Próximo: configurar detalhes da instância. Para mais informações, consulte Etapa 2: escolher um tipo de instância.

  6. 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.

      nota

      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: você pode deixar o campo vazio ou especificar o valor máximo que está disposto a pagar.

      • Se você deixar o campo vazio, o preço máximo assumirá como padrão o preço sob demanda atual. A instância spot será executada no preço spot atual, não excedendo o preço sob demanda.

      • 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.

      • Se você especificar um preço máximo inferior ao preço spot, a instância spot não será executada.

    • 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, você poderá especificar que o serviço spot interrompa ou hiberne a instância spot quando ela for interrompida. Para mais informações, consulte Comportamento de interrupção.

    • (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.

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

  8. 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.

  9. 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 instâncias do Linux.) Selecione ou crie um grupo de segurança e escolha Revisar e executar. Para mais informações, consulte Etapa 6: configurar o grupo de segurança.

  10. 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 mais informações, consulte Etapa 7: Revisar a execução da instância e selecionar o par de chaves.

  11. 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), você poderá 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 mais informações, consulte Pares de chaves do Amazon EC2 e instâncias do Linux.

    Importante

    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.

  12. 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.

Para criar uma solicitação de instância spot usando request-spot-instances(AWS CLI)

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ê fizer download de um arquivo de especificação de execução no console, use o comando request-spot-fleet (o console especifica uma solicitação de instância spot usando uma frota spot).

Para criar uma solicitação de instância spot usando request-spot-instances(AWS CLI)

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. Esse exemplo cria uma solicitação one-time e especifica 0.02 como preço máximo que você está disposto a pagar pela instância spot.

{ "MarketType": "spot", "SpotOptions": { "MaxPrice": "0.02", "SpotInstanceType": "one-time" } }

Encontrar Instâncias spot em execução

O Amazon EC2 executará uma instância spot quando o preço máximo exceder o preço spot e a capacidade estiver disponível. A instância spot será executada até ser interrompida ou até você a encerrar. Se seu preço máximo for exatamente igual ao preço spot, haverá uma possibilidade de a instância spot permanecer em execução, dependendo da demanda.

Para localizar Instâncias spot em execução (console)

  1. Abra o console do Amazon EC2 em https://console.aws.amazon.com/ec2/.

  2. No painel de navegação, selecione Solicitações spot. Você pode ver solicitações de instância Spot e solicitações de frota spot. Se uma solicitação de instância spot tiver sido atendida, a Capacity (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).

    nota

    Para solicitações de instância spot criadas por uma frota spot, as solicitações não são marcadas instantaneamente com a tag do sistema que indica a frota spot a qual pertencem, e por um período podem parecer estarem separadas da solicitação de frota spot.

    Como alternativa, no painel de navegação, escolha Instâncias. No canto superior direito, escolha o ícone ( ) e em Attribute columns (Colunas de atributo), selecione Instance lifecycle (Ciclo de vida da instância). Para cada instância, o Instance lifecycle (Ciclo de vida da instância) é normal, spot ou scheduled.

Para encontrar instâncias spot em execução (AWS CLI)

Para enumerar as Instâncias spot, 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" } ]

Como alternativa, você pode enumerar as Instâncias spot usando o comando describe-instances com a opção --filters.

aws ec2 describe-instances \ --filters "Name=instance-lifecycle,Values=spot"

Para descrever uma instância spot única, use o comando describe-spot-instance-requests com a opção --spot-instance-request-ids.

aws ec2 describe-spot-instance-requests \ --spot-instance-request-ids sir-08b93456

Marcar solicitações de instância spot

Para categorizar e gerenciar as solicitações de instância spot, você pode marcá-las com metadados personalizados. Você pode atribuir uma tag a uma solicitação de instância spot ao criá-la ou posteriormente. Você pode 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 do IAM 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 execução ou run-instances

Crie uma política do IAM que inclua o seguinte:

  • A ação ec2:RunInstances. Concede ao usuário do IAM permissão para executar uma instância.

  • Para Resource, especifique spot-instances-request. Isso permite que os usuários criem solicitações de instância spot, que solicitam instâncias spot.

  • A ação ec2:CreateTags. Concede ao usuário do IAM permissão para criar tags.

  • Para 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": "*" } ] }
nota

Ao usar a ação RunInstances para criar solicitações de instância spot e marcar as solicitações de instância spot na criação, você precisa estar ciente de como o Amazon EC2 avalia o recurso spot-instances-request na instrução RunInstances.

O recurso spot-instances-request é avaliado na política do IAM da seguinte forma:

  • 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 do IAM 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. Concede ao usuário do IAM permissão para criar uma solicitação de instância spot.

  • A ação ec2:CreateTags. Concede ao usuário do IAM permissão para criar tags.

  • Para 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

Para marcar uma nova solicitação de instância spot usando o console

  1. Siga o procedimento do Criar uma solicitação de instância spot.

  2. 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, você pode 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.

  3. Preencha os campos obrigatórios para criar uma solicitação de instância spot e escolha Launch (Executar). Para mais informações, consulte Criar uma solicitação de instância spot.

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. Você pode 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

Para marcar uma solicitação de instância spot existente usando o console

Depois de criar uma solicitação de instância spot, você pode adicionar tags à solicitação de instância spot usando o console.

  1. Abra o console Spot em https://console.aws.amazon.com/ec2spot.

  2. Selecione sua solicitação de instância spot.

  3. 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, você poderá adicionar tags à instância usando o console. Para mais informações, consulte Adicionar e excluir tags em um recurso individual.

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

Exibir tags de solicitação de instância spot

Para visualizar tags de solicitação de instância spot usando o console

  1. Abra o console Spot em https://console.aws.amazon.com/ec2spot.

  2. Selecione sua solicitação de instância spot e escolha a guia Tags.

Para descrever as tags de solicitação de instância spot

Use o comando describe-tags para visualizar as tags para o recurso especificado. No exemplo a seguir, você descreve as tags da solicitação especificada.

aws ec2 describe-tags \ --filters "Name=resource-id,Values=sir-11112222-3333-4444-5555-66666EXAMPLE"
{ "Tags": [ { "Key": "Environment", "ResourceId": "sir-11112222-3333-4444-5555-66666EXAMPLE", "ResourceType": "spot-instances-request", "Value": "Production" }, { "Key": "Another key", "ResourceId": "sir-11112222-3333-4444-5555-66666EXAMPLE", "ResourceType": "spot-instances-request", "Value": "Another value" } ] }

Você também pode 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-11112222-3333-4444-5555-66666EXAMPLE
{ "SpotInstanceRequests": [ { "CreateTime": "2020-06-24T14:22:11+00:00", "InstanceId": "i-1234567890EXAMPLE", "LaunchSpecification": { "SecurityGroups": [ { "GroupName": "launch-wizard-6", "GroupId": "sg-1234567890EXAMPLE" } ], "BlockDeviceMappings": [ { "DeviceName": "/dev/xvda", "Ebs": { "DeleteOnTermination": true, "VolumeSize": 8, "VolumeType": "gp2" } } ], "ImageId": "ami-1234567890EXAMPLE", "InstanceType": "t2.micro", "KeyName": "my-key-pair", "NetworkInterfaces": [ { "DeleteOnTermination": true, "DeviceIndex": 0, "SubnetId": "subnet-11122233" } ], "Placement": { "AvailabilityZone": "eu-west-1c", "Tenancy": "default" }, "Monitoring": { "Enabled": false } }, "LaunchedAvailabilityZone": "eu-west-1c", "ProductDescription": "Linux/UNIX", "SpotInstanceRequestId": "sir-1234567890EXAMPLE", "SpotPrice": "0.012600", "State": "active", "Status": { "Code": "fulfilled", "Message": "Your spot request is fulfilled.", "UpdateTime": "2020-06-25T18:30:21+00:00" }, "Tags": [ { "Key": "Environment", "Value": "Production" }, { "Key": "Another key", "Value": "Another value" } ], "Type": "one-time", "InstanceInterruptionBehavior": "terminate" } ] }

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 é disabled quando você interrompe 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.

Para cancelar uma solicitação de instância spot (console)

  1. Abra o console do Amazon EC2 em https://console.aws.amazon.com/ec2/.

  2. No painel de navegação, escolha Spot Requests (Solicitações spot) e selecione a solicitação da instância spot.

  3. Escolha Ações, Cancelar solicitação.

  4. (Opcional) Ao terminar de trabalhar com as Instâncias spot associadas, você poderá encerrá-las. Na caixa de diálogo Cancelar solicitação spot, selecione Encerrar instâncias e escolha Confirmar.

Para cancelar uma solicitação de instância spot (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

Interromper uma instância spot

Caso você não precise da Instâncias spot agora, mas quiser reiniciá-las posteriormente sem perder os dados persistentes no volume do Amazon EBS, você pode interrompê-los. As etapas para interromper uma instância spot são semelhantes às etapas para interromper uma instância sob demanda.

nota

Quando uma instância spot for interrompida, você poderá modificar alguns atributos da instância, mas não o tipo dela.

Não cobramos pelo uso de uma instância spot interrompida nem por taxas de transferência de dados, mas cobramos pelo armazenamento dos volumes do Amazon EBS.

Limitações

  • Você poderá interromper uma instância spot somente se ela tiver sido executada por meio de uma solicitação de instância spot persistent.

  • Não será possível interromper uma instância spot se a solicitação da instância spot associada for cancelada. Quando a solicitação da instância spot for cancelada, você só poderá terminar a instância spot.

  • Não é possível interromper uma instância spot se ela for parte de uma frota ou de um grupo de inicialização ou grupo de zona de disponibilidade.

New console

Para interromper uma instância spot (console)

  1. Abra o console do Amazon EC2 em https://console.aws.amazon.com/ec2/.

  2. No painel de navegação, escolha Instances (Instâncias) e selecione a instância spot.

  3. Escolha Instance state (Estado da instância) e Stop instance (Interromper instância).

  4. Quando a confirmação for solicitada, escolha Parar.

Old console

Para interromper uma instância spot (console)

  1. Abra o console do Amazon EC2 em https://console.aws.amazon.com/ec2/.

  2. No painel de navegação, escolha Instances (Instâncias) e selecione a instância spot.

  3. Escolha Ações, Instance State, Parar.

AWS CLI

Para interromper uma instância Spot (AWS CLI)

  • Use o comando stop-instances para interromper manualmente uma ou mais Instâncias spot.

    aws ec2 stop-instances --instance-ids i-1234567890abcdef0

Iniciar uma instância spot

É possível iniciar uma instância spot que você encerrou anteriormente. As etapas para iniciar uma instância spot são semelhantes às etapas para iniciar uma instância sob demanda.

Pré-requisitos

Você pode iniciar uma instância spot somente se:

  • Você interrompeu 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.

Limitações

  • Não é possível iniciar uma instância spot se ela fizer parte da frota ou do grupo de inicialização ou grupo de zona de disponibilidade.

New console

Para iniciar uma instância Spot (console)

  1. Abra o console do Amazon EC2 em https://console.aws.amazon.com/ec2/.

  2. No painel de navegação, escolha Instances (Instâncias) e selecione a instância spot.

  3. Escolha Instance state (Estado da instância) e Start instance (Iniciar instância).

Old console

Para iniciar uma instância Spot (console)

  1. Abra o console do Amazon EC2 em https://console.aws.amazon.com/ec2/.

  2. No painel de navegação, escolha Instances (Instâncias) e selecione a instância spot.

  3. Escolha Ações, Estado da instância, Iniciar.

AWS CLI

Para iniciar uma instância spot (AWS CLI)

  • Use o comando start-instances para iniciar uma ou mais Instâncias spot manualmente.

    aws ec2 start-instances --instance-ids i-1234567890abcdef0

Encerrar uma instância spot

Se você terminar uma instância spot em execução ou interrompida que foi executada 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. Para garantir que nenhuma instância spot nova seja iniciada, primeiro você deve cancelar a solicitação de instância spot.

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 interrompida, a instância spot interrompida será automaticamente terminada 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 obter informações sobre como cancelar uma solicitação de instância spot, consulte Cancelar uma solicitação de instância spot.

New console

Para encerrar manualmente uma instância spot usando o console

  1. 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.

  2. Abra o console do Amazon EC2 em https://console.aws.amazon.com/ec2/.

  3. No painel de navegação, escolha Instances (Instâncias).

  4. Para confirmar se a instância é uma instância spot, verifique se aparece spot na coluna Instance lifecycle (Ciclo de vida da instância).

  5. Selecione a instância e escolha Actions (Ações), Instance State (Estado da instância) e Terminate (Encerrar).

  6. Quando a confirmação for solicitada, escolha Terminate (Encerrar).

Old console

Para encerrar manualmente uma instância spot usando o console

  1. 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.

  2. Abra o console do Amazon EC2 em https://console.aws.amazon.com/ec2/.

  3. No painel de navegação, escolha Instances (Instâncias).

  4. Para confirmar se a instância é uma instância spot, verifique se aparece spot na coluna Lifecycle (Ciclo de vida).

  5. Selecione a instância e escolha Actions, Instance State e Terminate.

  6. Quando a confirmação for solicitada, escolha Sim, encerrar.

AWS CLI

Para encerrar manualmente uma instância spot usando a AWS CLI

  • Use o comando terminate-instances para encerrar a Instâncias spot manualmente.

    aws ec2 terminate-instances --instance-ids i-1234567890abcdef0 i-0598c7d356eba48d7